diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md deleted file mode 100644 index 6621d59b7c23..000000000000 --- a/.github/copilot-instructions.md +++ /dev/null @@ -1,4 +0,0 @@ -When reviewing code: -* do not review changes in files with `.expected` extension (they are automatically ensured to be correct). -* in `.ql` and `.qll` files, do not try to review the code itself as you don't understand the programming language - well enough to make comments in these languages. You can still check for typos or comment improvements. diff --git a/.github/instructions/expected-files.instructions.md b/.github/instructions/expected-files.instructions.md new file mode 100644 index 000000000000..b76119d70282 --- /dev/null +++ b/.github/instructions/expected-files.instructions.md @@ -0,0 +1,4 @@ +--- +applyTo: "**/*.expected" +--- +Ignore these files. These are generated to be correct by running the tests, and should not be edited manually. diff --git a/.github/instructions/ql-files.instructions.md b/.github/instructions/ql-files.instructions.md new file mode 100644 index 000000000000..4d331807e06e --- /dev/null +++ b/.github/instructions/ql-files.instructions.md @@ -0,0 +1,6 @@ +--- +applyTo: "**/*.ql,**/*.qll" +--- +When reviewing these QL files, do not make any comment on the code itself. You don't understand the QL programming language well enough yet. You can only make comments about the following aspects: +* comments (lines starting with `//` or block comments enclosed in `/* ... */`): you can suggest improvements to the clarity of comments, or point out spelling mistakes +* typos in identifiers diff --git a/CODEOWNERS b/CODEOWNERS index 7233623d4528..ae1506f12a3c 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,3 +1,7 @@ +# Catch-all for anything which isn't matched by a line lower down +* @github/code-scanning-alert-coverage + +# CodeQL language libraries /actions/ @github/codeql-dynamic /cpp/ @github/codeql-c-analysis /csharp/ @github/codeql-csharp @@ -7,8 +11,10 @@ /java/ @github/codeql-java /javascript/ @github/codeql-javascript /python/ @github/codeql-python +/ql/ @github/codeql-ql-for-ql-reviewers /ruby/ @github/codeql-ruby /rust/ @github/codeql-rust +/shared/ @github/codeql-shared-libraries-reviewers /swift/ @github/codeql-swift /misc/codegen/ @github/codeql-swift /java/kotlin-extractor/ @github/codeql-kotlin @@ -25,9 +31,6 @@ /docs/codeql/ql-language-reference/ @github/codeql-frontend-reviewers /docs/query-*-style-guide.md @github/codeql-analysis-reviewers -# QL for QL reviewers -/ql/ @github/codeql-ql-for-ql-reviewers - # Bazel (excluding BUILD.bazel files) MODULE.bazel @github/codeql-ci-reviewers .bazelversion @github/codeql-ci-reviewers diff --git a/Cargo.toml b/Cargo.toml index 7866a65d2094..58a755340b9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,3 @@ members = [ "rust/ast-generator", "rust/autobuild", ] -exclude = ["mad-generation-build"] diff --git a/MODULE.bazel b/MODULE.bazel index 89fdbf86a4dd..58ff750253b2 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -19,8 +19,8 @@ bazel_dep(name = "rules_go", version = "0.56.1") bazel_dep(name = "rules_pkg", version = "1.0.1") bazel_dep(name = "rules_nodejs", version = "6.2.0-codeql.1") bazel_dep(name = "rules_python", version = "0.40.0") -bazel_dep(name = "rules_shell", version = "0.3.0") -bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "rules_shell", version = "0.5.0") +bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "abseil-cpp", version = "20240116.1", repo_name = "absl") bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json") bazel_dep(name = "fmt", version = "10.0.0") @@ -28,7 +28,7 @@ bazel_dep(name = "rules_kotlin", version = "2.1.3-codeql.1") bazel_dep(name = "gazelle", version = "0.40.0") bazel_dep(name = "rules_dotnet", version = "0.19.2-codeql.1") bazel_dep(name = "googletest", version = "1.14.0.bcr.1") -bazel_dep(name = "rules_rust", version = "0.63.0") +bazel_dep(name = "rules_rust", version = "0.66.0") bazel_dep(name = "zstd", version = "1.5.5.bcr.1") bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True) diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index e6ae9a82059e..3de5d186721a 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.19 + +No user-facing changes. + ## 0.4.18 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.19.md b/actions/ql/lib/change-notes/released/0.4.19.md new file mode 100644 index 000000000000..fb592c5a34fe --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.19.md @@ -0,0 +1,3 @@ +## 0.4.19 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 1a848f928999..abf63707906b 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.18 +lastReleaseVersion: 0.4.19 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 80eecfca28d5..6423894239dc 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.19-dev +version: 0.4.20-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 534ba89566b2..4592fbb66da7 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.11 + +No user-facing changes. + ## 0.6.10 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.11.md b/actions/ql/src/change-notes/released/0.6.11.md new file mode 100644 index 000000000000..3c83e3ac1120 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.11.md @@ -0,0 +1,3 @@ +## 0.6.11 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index c2eebb652b05..b73e74898d0f 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.10 +lastReleaseVersion: 0.6.11 diff --git a/actions/ql/src/experimental/Security/CWE-200/SecretExfiltration.ql b/actions/ql/src/experimental/Security/CWE-200/SecretExfiltration.ql index 2e583a989893..2b4ed1a30b45 100644 --- a/actions/ql/src/experimental/Security/CWE-200/SecretExfiltration.ql +++ b/actions/ql/src/experimental/Security/CWE-200/SecretExfiltration.ql @@ -19,5 +19,5 @@ import SecretExfiltrationFlow::PathGraph from SecretExfiltrationFlow::PathNode source, SecretExfiltrationFlow::PathNode sink where SecretExfiltrationFlow::flowPath(source, sink) select sink.getNode(), source, sink, - "Potential secret exfiltration in $@, which may be be leaked to an attacker-controlled resource.", + "Potential secret exfiltration in $@, which may be leaked to an attacker-controlled resource.", sink, sink.getNode().asExpr().(Expression).getRawExpression() diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 2de1276aa82d..553e579ceacf 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.11-dev +version: 0.6.12-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/actions/ql/test/query-tests/Security/CWE-200/SecretExfiltration.expected b/actions/ql/test/query-tests/Security/CWE-200/SecretExfiltration.expected index 259746eaec9a..59b58e03be78 100644 --- a/actions/ql/test/query-tests/Security/CWE-200/SecretExfiltration.expected +++ b/actions/ql/test/query-tests/Security/CWE-200/SecretExfiltration.expected @@ -3,4 +3,4 @@ nodes | .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | semmle.label | github.event.pull_request.title | subpaths #select -| .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | Potential secret exfiltration in $@, which may be be leaked to an attacker-controlled resource. | .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | ${{ github.event.pull_request.title }} | +| .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | Potential secret exfiltration in $@, which may be leaked to an attacker-controlled resource. | .github/workflows/test1.yml:15:11:16:75 | github.event.pull_request.title | ${{ github.event.pull_request.title }} | diff --git a/config/dbscheme-fragments.json b/config/dbscheme-fragments.json index c2a9a5e734b9..a626025de0b4 100644 --- a/config/dbscheme-fragments.json +++ b/config/dbscheme-fragments.json @@ -9,6 +9,7 @@ "fragments": [ "/*- Compilations -*/", "/*- External data -*/", + "/*- Overlay support -*/", "/*- Files and folders -*/", "/*- Diagnostic messages -*/", "/*- Diagnostic messages: severity -*/", diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 0909c8e3c881..093b31078e0c 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 6.0.0 + +### Breaking Changes + +* The "Guards" libraries (`semmle.code.cpp.controlflow.Guards` and `semmle.code.cpp.controlflow.IRGuards`) have been totally rewritten to recognize many more guards. The API remains unchanged, but the `GuardCondition` class now extends `Element` instead of `Expr`. + +### New Features + +* C/C++ `build-mode: none` support is now generally available. + ## 5.6.1 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/2025-10-07-bmn-ga.md b/cpp/ql/lib/change-notes/2025-10-07-bmn-ga.md deleted file mode 100644 index dce0cabc38c0..000000000000 --- a/cpp/ql/lib/change-notes/2025-10-07-bmn-ga.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* The C/C++ "build-mode: none" support is now General Availability (GA). diff --git a/cpp/ql/lib/change-notes/2025-10-16-range-analysis-performance.md b/cpp/ql/lib/change-notes/2025-10-16-range-analysis-performance.md new file mode 100644 index 000000000000..f24ab4b87fec --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-10-16-range-analysis-performance.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Improve performance of the range analysis in cases where it would otherwise take an exorbitant amount of time. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2025-09-18-guards.md b/cpp/ql/lib/change-notes/released/6.0.0.md similarity index 67% rename from cpp/ql/lib/change-notes/2025-09-18-guards.md rename to cpp/ql/lib/change-notes/released/6.0.0.md index a739df714713..574e05442ec4 100644 --- a/cpp/ql/lib/change-notes/2025-09-18-guards.md +++ b/cpp/ql/lib/change-notes/released/6.0.0.md @@ -1,4 +1,9 @@ ---- -category: breaking ---- -* The "Guards" libraries (`semmle.code.cpp.controlflow.Guards` and `semmle.code.cpp.controlflow.IRGuards`) have been totally rewritten to recognize many more guards. The API remains unchanged, but the `GuardCondition` class now extends `Element` instead of `Expr`. \ No newline at end of file +## 6.0.0 + +### Breaking Changes + +* The "Guards" libraries (`semmle.code.cpp.controlflow.Guards` and `semmle.code.cpp.controlflow.IRGuards`) have been totally rewritten to recognize many more guards. The API remains unchanged, but the `GuardCondition` class now extends `Element` instead of `Expr`. + +### New Features + +* C/C++ `build-mode: none` support is now generally available. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 2dcac412aa9c..f8c4fa43ccb7 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.6.1 +lastReleaseVersion: 6.0.0 diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll index ef7186d07a0e..76746eceba4e 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/EllipticCurveAlgorithmInstance.qll @@ -40,7 +40,7 @@ class KnownOpenSslEllipticCurveConstantAlgorithmInstance extends OpenSslAlgorith result = this.(Call).getTarget().getName() } - override Crypto::EllipticCurveFamilyType getEllipticCurveFamilyType() { + override Crypto::EllipticCurveType getEllipticCurveType() { if Crypto::ellipticCurveNameToKnownKeySizeAndFamilyMapping(this.getParsedEllipticCurveName(), _, _) diff --git a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll index 55b2dcd7af4c..0facc99519d7 100644 --- a/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll +++ b/cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/HashAlgorithmInstance.qll @@ -72,7 +72,7 @@ class KnownOpenSslHashConstantAlgorithmInstance extends OpenSslAlgorithmInstance override OpenSslAlgorithmValueConsumer getAvc() { result = getterCall } - override Crypto::THashType getHashFamily() { + override Crypto::THashType getHashType() { knownOpenSslConstantToHashFamilyType(this, result) or not knownOpenSslConstantToHashFamilyType(this, _) and result = Crypto::OtherHashType() diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 435d013c47b6..8712e4008971 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 5.6.2-dev +version: 6.0.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index e9ff5dbf5e48..536e1750fd2f 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -380,18 +380,20 @@ private module LogicInput_v1 implements GuardsImpl::LogicInputSig { GuardsInput::Expr getARead() { result = this.getAUse().getDef() } } - class SsaWriteDefinition extends SsaDefinition instanceof ExplicitDefinition { - GuardsInput::Expr getDefinition() { result = super.getAssignedInstruction() } + class SsaExplicitWrite extends SsaDefinition instanceof ExplicitDefinition { + GuardsInput::Expr getValue() { result = super.getAssignedInstruction() } } - class SsaPhiNode extends SsaDefinition instanceof PhiNode { + class SsaPhiDefinition extends SsaDefinition instanceof PhiNode { predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { super.hasInputFromBlock(inp, bb) } } - predicate parameterDefinition(GuardsInput::Parameter p, SsaDefinition def) { - def.isParameterDefinition(p) + class SsaParameterInit extends SsaDefinition { + SsaParameterInit() { this.isParameterDefinition(_) } + + GuardsInput::Parameter getParameter() { this.isParameterDefinition(result) } } predicate additionalImpliesStep( diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll index 07c6ee1cd2b3..2423a3a71a0a 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll @@ -1,10 +1,10 @@ import cpp /** - * Describes whether a relation is 'strict' (that is, a `<` or `>` + * The strictness of a relation. Either 'strict' (that is, a `<` or `>` * relation) or 'non-strict' (a `<=` or `>=` relation). */ -newtype RelationStrictness = +newtype TRelationStrictness = /** * Represents that a relation is 'strict' (that is, a `<` or `>` relation). */ @@ -14,6 +14,19 @@ newtype RelationStrictness = */ Nonstrict() +/** + * The strictness of a relation. Either 'strict' (that is, a `<` or `>` + * relation) or 'non-strict' (a `<=` or `>=` relation). + */ +class RelationStrictness extends TRelationStrictness { + /** Gets the string representation of this relation strictness. */ + string toString() { + this = Strict() and result = "strict" + or + this = Nonstrict() and result = "non-strict" + } +} + /** * Describes whether a relation is 'greater' (that is, a `>` or `>=` * relation) or 'lesser' (a `<` or `<=` relation). @@ -105,10 +118,10 @@ predicate relOpWithSwap( * * This allows for the relation to be either as written, or with its * arguments reversed; for example, if `rel` is `x < 5` then - * `relOpWithSwapAndNegate(rel, x, 5, Lesser(), Strict(), true)`, - * `relOpWithSwapAndNegate(rel, 5, x, Greater(), Strict(), true)`, - * `relOpWithSwapAndNegate(rel, x, 5, Greater(), Nonstrict(), false)` and - * `relOpWithSwapAndNegate(rel, 5, x, Lesser(), Nonstrict(), false)` hold. + * - `relOpWithSwapAndNegate(rel, x, 5, Lesser(), Strict(), true)`, + * - `relOpWithSwapAndNegate(rel, 5, x, Greater(), Strict(), true)`, + * - `relOpWithSwapAndNegate(rel, x, 5, Greater(), Nonstrict(), false)` and + * - `relOpWithSwapAndNegate(rel, 5, x, Lesser(), Nonstrict(), false)` hold. */ predicate relOpWithSwapAndNegate( RelationalOperation rel, Expr a, Expr b, RelationDirection dir, RelationStrictness strict, diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll index 673d0c3c4eaa..fcb99487d2a3 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll @@ -93,31 +93,42 @@ private float wideningUpperBounds(ArithmeticType t) { result = 1.0 / 0.0 // +Inf } +/** Gets the widened lower bound for a given type and lower bound. */ +bindingset[type, lb] +float widenLowerBound(Type type, float lb) { + result = max(float widenLB | widenLB = wideningLowerBounds(type) and widenLB <= lb | widenLB) +} + +/** Gets the widened upper bound for a given type and upper bound. */ +bindingset[type, ub] +float widenUpperBound(Type type, float ub) { + result = min(float widenUB | widenUB = wideningUpperBounds(type) and widenUB >= ub | widenUB) +} + /** * Gets the value of the expression `e`, if it is a constant. * This predicate also handles the case of constant variables initialized in different * compilation units, which doesn't necessarily have a getValue() result from the extractor. */ private string getValue(Expr e) { - if exists(e.getValue()) - then result = e.getValue() - else - /* - * It should be safe to propagate the initialization value to a variable if: - * The type of v is const, and - * The type of v is not volatile, and - * Either: - * v is a local/global variable, or - * v is a static member variable - */ - - exists(VariableAccess access, StaticStorageDurationVariable v | - not v.getUnderlyingType().isVolatile() and - v.getUnderlyingType().isConst() and - e = access and - v = access.getTarget() and - result = getValue(v.getAnAssignedValue()) - ) + result = e.getValue() + or + not exists(e.getValue()) and + /* + * It should be safe to propagate the initialization value to a variable if: + * The type of v is const, and + * The type of v is not volatile, and + * Either: + * v is a local/global variable, or + * v is a static member variable + */ + + exists(StaticStorageDurationVariable v | + not v.getUnderlyingType().isVolatile() and + v.getUnderlyingType().isConst() and + v = e.(VariableAccess).getTarget() and + result = getValue(v.getAnAssignedValue()) + ) } /** @@ -505,6 +516,328 @@ private predicate isRecursiveExpr(Expr e) { ) } +/** + * Provides predicates that estimate the number of bounds that the range + * analysis might produce. + */ +private module BoundsEstimate { + /** + * Gets the limit beyond which we enable widening. That is, if the estimated + * number of bounds exceeds this limit, we enable widening such that the limit + * will not be reached. + */ + float getBoundsLimit() { + // This limit is arbitrary, but low enough that it prevents timeouts on + // specific observed customer databases (and the in the tests). + result = 2.0.pow(40) + } + + /** Gets the maximum number of bounds possible for `t` when widening is used. */ + private int getNrOfWideningBounds(ArithmeticType t) { + result = strictcount(wideningLowerBounds(t)).maximum(strictcount(wideningUpperBounds(t))) + } + + /** + * Holds if `boundFromGuard(guard, v, _, branch)` holds, but without + * relying on range analysis (which would cause non-monotonic recursion + * elsewhere). + */ + private predicate hasBoundFromGuard(Expr guard, VariableAccess v, boolean branch) { + exists(Expr lhs | linearAccess(lhs, v, _, _) | + relOpWithSwapAndNegate(guard, lhs, _, _, _, branch) + or + eqOpWithSwapAndNegate(guard, lhs, _, true, branch) + or + eqZeroWithNegate(guard, lhs, true, branch) + ) + } + + /** Holds if `def` is a guard phi node for `v` with a bound from a guard. */ + predicate isGuardPhiWithBound(RangeSsaDefinition def, StackVariable v, VariableAccess access) { + exists(Expr guard, boolean branch | + def.isGuardPhi(v, access, guard, branch) and + hasBoundFromGuard(guard, access, branch) + ) + } + + /** + * Gets the number of bounds for `def` when `def` is a guard phi node for the + * variable `v`. + */ + language[monotonicAggregates] + private float nrOfBoundsPhiGuard(RangeSsaDefinition def, StackVariable v) { + // If we have + // + // if (x < c) { e1 } + // e2 + // + // then `e2` is both a guard phi node (guarded by `x < c`) and a normal + // phi node (control is merged after the `if` statement). + // + // Assume `x` has `n` bounds. Then `n` bounds are propagated to the guard + // phi node `{ e1 }` and, since `{ e1 }` is input to `e2` as a normal phi + // node, `n` bounds are propagated to `e2`. If we also propagate the `n` + // bounds to `e2` as a guard phi node, then we square the number of + // bounds. + // + // However in practice `x < c` is going to cut down the number of bounds: + // The tracked bounds can't flow to both branches as that would require + // them to simultaneously be greater and smaller than `c`. To approximate + // this better, the contribution from a guard phi node that is also a + // normal phi node is 1. + exists(def.getAPhiInput(v)) and + isGuardPhiWithBound(def, v, _) and + result = 1 + or + not exists(def.getAPhiInput(v)) and + // If there's different `access`es, then they refer to the same variable + // with the same lower bounds. Hence adding these guards make no sense (the + // implementation will take the union but they'll be removed by + // deduplication). Hence we use `max` as an approximation. + result = + max(VariableAccess access | isGuardPhiWithBound(def, v, access) | nrOfBoundsExpr(access)) + or + def.isPhiNode(v) and + not isGuardPhiWithBound(def, v, _) and + result = 0 + } + + /** + * Gets the number of bounds for `def` when `def` is a normal phi node for the + * variable `v`. + */ + language[monotonicAggregates] + private float nrOfBoundsPhiNormal(RangeSsaDefinition def, StackVariable v) { + result = + strictsum(RangeSsaDefinition inputDef | + inputDef = def.getAPhiInput(v) + | + nrOfBoundsDef(inputDef, v) + ) + or + def.isPhiNode(v) and + not exists(def.getAPhiInput(v)) and + result = 0 + } + + /** + * Gets the number of bounds for `def` when `def` is an NE phi node for the + * variable `v`. + */ + private float nrOfBoundsNEPhi(RangeSsaDefinition def, StackVariable v) { + exists(VariableAccess access | isNEPhi(v, def, access, _) and result = nrOfBoundsExpr(access)) + or + def.isPhiNode(v) and + not isNEPhi(v, def, _, _) and + result = 0 + } + + /** + * Gets the number of bounds for `def` when `def` is an unsupported guard phi + * node for the variable `v`. + */ + private float nrOfBoundsUnsupportedGuardPhi(RangeSsaDefinition def, StackVariable v) { + exists(VariableAccess access | + isUnsupportedGuardPhi(v, def, access) and + result = nrOfBoundsExpr(access) + ) + or + def.isPhiNode(v) and + not isUnsupportedGuardPhi(v, def, _) and + result = 0 + } + + private float nrOfBoundsPhi(RangeSsaDefinition def, StackVariable v) { + // The cases for phi nodes are not mutually exclusive. For instance a phi + // node can be both a guard phi node and a normal phi node. To handle this + // we sum the contributions from the different cases. + result = + nrOfBoundsPhiGuard(def, v) + nrOfBoundsPhiNormal(def, v) + nrOfBoundsNEPhi(def, v) + + nrOfBoundsUnsupportedGuardPhi(def, v) + } + + /** Gets the estimated number of bounds for `def` and `v`. */ + float nrOfBoundsDef(RangeSsaDefinition def, StackVariable v) { + // Recursive definitions are already widened, so we simply estimate them as + // having the number of widening bounds available. This is crucial as it + // ensures that we don't follow recursive cycles when calculating the + // estimate. Had that not been the case the estimate itself would be at risk + // of causing performance issues and being non-functional. + if isRecursiveDef(def, v) + then result = getNrOfWideningBounds(getVariableRangeType(v)) + else ( + // Definitions with a defining value + exists(Expr defExpr | assignmentDef(def, v, defExpr) and result = nrOfBoundsExpr(defExpr)) + or + // Assignment operations with a defining value + exists(AssignOperation assignOp | + def = assignOp and + assignOp.getLValue() = v.getAnAccess() and + result = nrOfBoundsExpr(assignOp) + ) + or + // Phi nodes + result = nrOfBoundsPhi(def, v) + or + unanalyzableDefBounds(def, v, _, _) and result = 1 + ) + } + + /** + * Gets a naive estimate of the number of bounds for `e`. + * + * The estimate is like an abstract interpretation of the range analysis, + * where the abstract value is the number of bounds. For instance, + * `nrOfBoundsExpr(12) = 1` and `nrOfBoundsExpr(x + y) = nrOfBoundsExpr(x) * + * nrOfBoundsExpr(y)`. + * + * The estimated number of bounds will usually be greater than the actual + * number of bounds, as the estimate can not detect cases where bounds are cut + * down when tracked precisely. For instance, in + * ```c + * int x = 1; + * if (cond) { x = 1; } + * int y = x + x; + * ``` + * the actual number of bounds for `y` is 1. However, the estimate will be 4 + * as the conditional assignment to `x` gives two bounds for `x` on the last + * line and the addition gives 2 * 2 bounds. There are two sources of anncuracies: + * + * 1. Without tracking the lower bounds we can't see that `x` is assigned a + * value that is equal to its lower bound. + * 2. Had the conditional assignment been `x = 2` then the estimate of two + * bounds for `x` would have been correct. However, the estimate of 4 for `y` + * would still be incorrect. Summing the actual bounds `{1,2}` with itself + * gives `{2,3,4}` which is only three bounds. Again, we can't realise this + * without tracking the bounds. + * + * Since these inaccuracies compound the estimated number of bounds can often + * be _much_ greater than the actual number of bounds. Do note though that the + * estimate is not _guaranteed_ to be an upper bound. In some cases the + * approximations might underestimate the number of bounds. + * + * This predicate is functional. This is crucial as: + * + * - It ensures that the computing the estimate itself is fast. + * - Our use of monotonic aggregates assumes functionality. + * + * Any non-functional case should be considered a bug. + */ + float nrOfBoundsExpr(Expr e) { + // Similarly to what we do for definitions, we do not attempt to measure the + // number of bounds for recursive expressions. + if isRecursiveExpr(e) + then result = getNrOfWideningBounds(e.getUnspecifiedType()) + else + if analyzableExpr(e) + then + // The cases here are an abstraction of and mirrors the cases inside + // `getLowerBoundsImpl`/`getUpperBoundsImpl`. + result = 1 and exists(getValue(e).toFloat()) + or + exists(Expr operand | result = nrOfBoundsExpr(operand) | + effectivelyMultipliesByPositive(e, operand, _) + or + effectivelyMultipliesByNegative(e, operand, _) + ) + or + exists(ConditionalExpr condExpr | + e = condExpr and + result = nrOfBoundsExpr(condExpr.getThen()) * nrOfBoundsExpr(condExpr.getElse()) + ) + or + exists(BinaryOperation binop | + e = binop and + result = nrOfBoundsExpr(binop.getLeftOperand()) * nrOfBoundsExpr(binop.getRightOperand()) + | + e instanceof MaxExpr or + e instanceof MinExpr or + e instanceof AddExpr or + e instanceof SubExpr or + e instanceof UnsignedMulExpr or + e instanceof UnsignedBitwiseAndExpr + ) + or + exists(AssignExpr assign | e = assign and result = nrOfBoundsExpr(assign.getRValue())) + or + exists(AssignArithmeticOperation assignOp | + e = assignOp and + result = nrOfBoundsExpr(assignOp.getLValue()) * nrOfBoundsExpr(assignOp.getRValue()) + | + e instanceof AssignAddExpr or + e instanceof AssignSubExpr or + e instanceof UnsignedAssignMulExpr + ) + or + // Handles `AssignMulByPositiveConstantExpr` and `AssignMulByNegativeConstantExpr` + exists(AssignMulByConstantExpr mulExpr | + e = mulExpr and + result = nrOfBoundsExpr(mulExpr.getLValue()) + ) + or + // Handles the prefix and postfix increment and decrement operators. + exists(CrementOperation crementOp | + e = crementOp and result = nrOfBoundsExpr(crementOp.getOperand()) + ) + or + exists(RemExpr remExpr | e = remExpr | result = nrOfBoundsExpr(remExpr.getRightOperand())) + or + exists(Conversion convExpr | + e = convExpr and + if convExpr.getUnspecifiedType() instanceof BoolType + then result = 1 + else result = nrOfBoundsExpr(convExpr.getExpr()) + ) + or + exists(RangeSsaDefinition def, StackVariable v | + e = def.getAUse(v) and + result = nrOfBoundsDef(def, v) and + // Avoid returning two numbers when `e` is a use with a constant value. + not exists(getValue(e).toFloat()) + ) + or + exists(RShiftExpr rsExpr | + e = rsExpr and + exists(getValue(rsExpr.getRightOperand().getFullyConverted()).toInt()) and + result = nrOfBoundsExpr(rsExpr.getLeftOperand()) + ) + else ( + exists(exprMinVal(e)) and result = 1 + ) + } +} + +/** + * Holds if `v` is a variable for which widening should be used, as otherwise a + * very large number of bounds might be generated during the range analysis for + * `v`. + */ +private predicate varHasTooManyBounds(StackVariable v) { + exists(RangeSsaDefinition def | + def.getAVariable() = v and + BoundsEstimate::nrOfBoundsDef(def, v) > BoundsEstimate::getBoundsLimit() + ) +} + +/** + * Holds if `e` is an expression for which widening should be used, as otherwise + * a very large number of bounds might be generated during the range analysis + * for `e`. + */ +private predicate exprHasTooManyBounds(Expr e) { + BoundsEstimate::nrOfBoundsExpr(e) > BoundsEstimate::getBoundsLimit() + or + // A subexpressions of an expression with too many bounds may itself not have + // to many bounds. For instance, `x + y` can have too many bounds without `x` + // having as well. But in these cases, still want to consider `e` as having + // too many bounds since: + // - The overall result is widened anyway, so widening `e` as well is unlikely + // to cause further precision loss. + // - The number of bounds could be very large but still below the arbitrary + // limit. Hence widening `e` can improve performance. + exists(Expr pe | exprHasTooManyBounds(pe) and e.getParent() = pe) +} + /** * Holds if `binop` is a binary operation that's likely to be assigned a * quadratic (or more) number of candidate bounds during the analysis. This can @@ -655,13 +988,8 @@ private float getTruncatedLowerBounds(Expr expr) { if exprMinVal(expr) <= newLB and newLB <= exprMaxVal(expr) then // Apply widening where we might get a combinatorial explosion. - if isRecursiveBinary(expr) - then - result = - max(float widenLB | - widenLB = wideningLowerBounds(expr.getUnspecifiedType()) and - not widenLB > newLB - ) + if isRecursiveBinary(expr) or exprHasTooManyBounds(expr) + then result = widenLowerBound(expr.getUnspecifiedType(), newLB) else result = newLB else result = exprMinVal(expr) ) and @@ -714,13 +1042,8 @@ private float getTruncatedUpperBounds(Expr expr) { if exprMinVal(expr) <= newUB and newUB <= exprMaxVal(expr) then // Apply widening where we might get a combinatorial explosion. - if isRecursiveBinary(expr) - then - result = - min(float widenUB | - widenUB = wideningUpperBounds(expr.getUnspecifiedType()) and - not widenUB < newUB - ) + if isRecursiveBinary(expr) or exprHasTooManyBounds(expr) + then result = widenUpperBound(expr.getUnspecifiedType(), newUB) else result = newUB else result = exprMaxVal(expr) ) @@ -890,7 +1213,7 @@ private float getLowerBoundsImpl(Expr expr) { // equal to `min(-y + 1,y - 1)`. exists(float childLB | childLB = getFullyConvertedLowerBounds(remExpr.getAnOperand()) and - not childLB >= 0 + childLB < 0 | result = getFullyConvertedLowerBounds(remExpr.getRightOperand()) - 1 or @@ -1102,8 +1425,7 @@ private float getUpperBoundsImpl(Expr expr) { // adding `-rhsLB` to the set of upper bounds. exists(float rhsLB | rhsLB = getFullyConvertedLowerBounds(remExpr.getRightOperand()) and - not rhsLB >= 0 - | + rhsLB < 0 and result = -rhsLB + 1 ) ) @@ -1248,8 +1570,7 @@ private float getPhiLowerBounds(StackVariable v, RangeSsaDefinition phi) { exists(VariableAccess access, Expr guard, boolean branch, float defLB, float guardLB | phi.isGuardPhi(v, access, guard, branch) and lowerBoundFromGuard(guard, access, guardLB, branch) and - defLB = getFullyConvertedLowerBounds(access) - | + defLB = getFullyConvertedLowerBounds(access) and // Compute the maximum of `guardLB` and `defLB`. if guardLB > defLB then result = guardLB else result = defLB ) @@ -1273,8 +1594,7 @@ private float getPhiUpperBounds(StackVariable v, RangeSsaDefinition phi) { exists(VariableAccess access, Expr guard, boolean branch, float defUB, float guardUB | phi.isGuardPhi(v, access, guard, branch) and upperBoundFromGuard(guard, access, guardUB, branch) and - defUB = getFullyConvertedUpperBounds(access) - | + defUB = getFullyConvertedUpperBounds(access) and // Compute the minimum of `guardUB` and `defUB`. if guardUB < defUB then result = guardUB else result = defUB ) @@ -1438,8 +1758,7 @@ private predicate upperBoundFromGuard(Expr guard, VariableAccess v, float ub, bo } /** - * This predicate simplifies the results returned by - * `linearBoundFromGuard`. + * This predicate simplifies the results returned by `linearBoundFromGuard`. */ private predicate boundFromGuard( Expr guard, VariableAccess v, float boundValue, boolean isLowerBound, @@ -1447,22 +1766,10 @@ private predicate boundFromGuard( ) { exists(float p, float q, float r, boolean isLB | linearBoundFromGuard(guard, v, p, q, r, isLB, strictness, branch) and - boundValue = (r - q) / p - | + boundValue = (r - q) / p and // If the multiplier is negative then the direction of the comparison // needs to be flipped. - p > 0 and isLowerBound = isLB - or - p < 0 and isLowerBound = isLB.booleanNot() - ) - or - // When `!e` is true, we know that `0 <= e <= 0` - exists(float p, float q, Expr e | - linearAccess(e, v, p, q) and - eqZeroWithNegate(guard, e, true, branch) and - boundValue = (0.0 - q) / p and - isLowerBound = [false, true] and - strictness = Nonstrict() + if p < 0 then isLowerBound = isLB.booleanNot() else isLowerBound = isLB ) } @@ -1472,54 +1779,57 @@ private predicate boundFromGuard( * lower or upper bound for `v`. */ private predicate linearBoundFromGuard( - ComparisonOperation guard, VariableAccess v, float p, float q, float boundValue, + Expr guard, VariableAccess v, float p, float q, float r, boolean isLowerBound, // Is this a lower or an upper bound? RelationStrictness strictness, boolean branch // Which control-flow branch is this bound valid on? ) { - // For the comparison x < RHS, we create two bounds: - // - // 1. x < upperbound(RHS) - // 2. x >= typeLowerBound(RHS.getUnspecifiedType()) - // - exists(Expr lhs, Expr rhs, RelationDirection dir, RelationStrictness st | - linearAccess(lhs, v, p, q) and - relOpWithSwapAndNegate(guard, lhs, rhs, dir, st, branch) - | - isLowerBound = directionIsGreater(dir) and - strictness = st and - getBounds(rhs, boundValue, isLowerBound) + exists(Expr lhs | linearAccess(lhs, v, p, q) | + // For the comparison x < RHS, we create the following bounds: + // 1. x < upperbound(RHS) + // 2. x >= typeLowerBound(RHS.getUnspecifiedType()) + exists(Expr rhs, RelationDirection dir, RelationStrictness st | + relOpWithSwapAndNegate(guard, lhs, rhs, dir, st, branch) + | + isLowerBound = directionIsGreater(dir) and + strictness = st and + r = getBounds(rhs, isLowerBound) + or + isLowerBound = directionIsLesser(dir) and + strictness = Nonstrict() and + r = getExprTypeBounds(rhs, isLowerBound) + ) or - isLowerBound = directionIsLesser(dir) and - strictness = Nonstrict() and - exprTypeBounds(rhs, boundValue, isLowerBound) - ) - or - // For x == RHS, we create the following bounds: - // - // 1. x <= upperbound(RHS) - // 2. x >= lowerbound(RHS) - // - exists(Expr lhs, Expr rhs | - linearAccess(lhs, v, p, q) and - eqOpWithSwapAndNegate(guard, lhs, rhs, true, branch) and - getBounds(rhs, boundValue, isLowerBound) and + // For x == RHS, we create the following bounds: + // 1. x <= upperbound(RHS) + // 2. x >= lowerbound(RHS) + exists(Expr rhs | + eqOpWithSwapAndNegate(guard, lhs, rhs, true, branch) and + r = getBounds(rhs, isLowerBound) and + strictness = Nonstrict() + ) + or + // When `x` is equal to 0 we create the following bounds: + // 1. x <= 0 + // 2. x >= 0 + eqZeroWithNegate(guard, lhs, true, branch) and + r = 0.0 and + isLowerBound = [false, true] and strictness = Nonstrict() ) - // x != RHS and !x are handled elsewhere } -/** Utility for `linearBoundFromGuard`. */ -private predicate getBounds(Expr expr, float boundValue, boolean isLowerBound) { - isLowerBound = true and boundValue = getFullyConvertedLowerBounds(expr) +/** Get the fully converted lower or upper bounds of `expr` based on `isLowerBound`. */ +private float getBounds(Expr expr, boolean isLowerBound) { + isLowerBound = true and result = getFullyConvertedLowerBounds(expr) or - isLowerBound = false and boundValue = getFullyConvertedUpperBounds(expr) + isLowerBound = false and result = getFullyConvertedUpperBounds(expr) } /** Utility for `linearBoundFromGuard`. */ -private predicate exprTypeBounds(Expr expr, float boundValue, boolean isLowerBound) { - isLowerBound = true and boundValue = exprMinVal(expr.getFullyConverted()) +private float getExprTypeBounds(Expr expr, boolean isLowerBound) { + isLowerBound = true and result = exprMinVal(expr.getFullyConverted()) or - isLowerBound = false and boundValue = exprMaxVal(expr.getFullyConverted()) + isLowerBound = false and result = exprMaxVal(expr.getFullyConverted()) } /** @@ -1810,18 +2120,12 @@ module SimpleRangeAnalysisInternal { | // Widening: check whether the new lower bound is from a source which // depends recursively on the current definition. - if isRecursiveDef(def, v) + if isRecursiveDef(def, v) or varHasTooManyBounds(v) then // The new lower bound is from a recursive source, so we round // down to one of a limited set of values to prevent the // recursion from exploding. - result = - max(float widenLB | - widenLB = wideningLowerBounds(getVariableRangeType(v)) and - not widenLB > truncatedLB - | - widenLB - ) + result = widenLowerBound(getVariableRangeType(v), truncatedLB) else result = truncatedLB ) or @@ -1840,18 +2144,12 @@ module SimpleRangeAnalysisInternal { | // Widening: check whether the new upper bound is from a source which // depends recursively on the current definition. - if isRecursiveDef(def, v) + if isRecursiveDef(def, v) or varHasTooManyBounds(v) then // The new upper bound is from a recursive source, so we round // up to one of a fixed set of values to prevent the recursion // from exploding. - result = - min(float widenUB | - widenUB = wideningUpperBounds(getVariableRangeType(v)) and - not widenUB < truncatedUB - | - widenUB - ) + result = widenUpperBound(getVariableRangeType(v), truncatedUB) else result = truncatedUB ) or @@ -1859,4 +2157,60 @@ module SimpleRangeAnalysisInternal { // bound is `typeUpperBound`. defMightOverflowNegatively(def, v) and result = varMaxVal(v) } + + /** Gets the estimate of the number of bounds for `e`. */ + float estimateNrOfBounds(Expr e) { result = BoundsEstimate::nrOfBoundsExpr(e) } +} + +/** Provides predicates for debugging the simple range analysis library. */ +private module Debug { + Locatable getRelevantLocatable() { + exists(string filepath, int startline | + result.getLocation().hasLocationInfo(filepath, startline, _, _, _) and + filepath.matches("%/test.c") and + startline = [621 .. 639] + ) + } + + float debugGetLowerBoundsImpl(Expr e) { + e = getRelevantLocatable() and + result = getLowerBoundsImpl(e) + } + + float debugGetUpperBoundsImpl(Expr e) { + e = getRelevantLocatable() and + result = getUpperBoundsImpl(e) + } + + /** + * Counts the number of lower bounds for a given expression. This predicate is + * useful for identifying performance issues in the range analysis. + */ + predicate countGetLowerBoundsImpl(Expr e, int n) { + e = getRelevantLocatable() and + n = strictcount(float lb | lb = getLowerBoundsImpl(e) | lb) + } + + float debugNrOfBounds(Expr e) { + e = getRelevantLocatable() and + result = BoundsEstimate::nrOfBoundsExpr(e) + } + + /** + * Finds any expressions for which `nrOfBounds` is not functional. The result + * should be empty, so this predicate is useful to debug non-functional cases. + */ + int nonFunctionalNrOfBounds(Expr e) { + strictcount(BoundsEstimate::nrOfBoundsExpr(e)) > 1 and + result = BoundsEstimate::nrOfBoundsExpr(e) + } + + /** + * Holds if `e` is an expression that has a lower bound, but where + * `nrOfBounds` does not compute an estimate. + */ + predicate missingNrOfBounds(Expr e, float n) { + n = lowerBound(e) and + not exists(BoundsEstimate::nrOfBoundsExpr(e)) + } } diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 39549ed1bdc2..4b876310708b 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.2 + +No user-facing changes. + ## 1.5.1 No user-facing changes. diff --git a/cpp/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp b/cpp/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp index 0fcbd89d8921..33561b3d1bff 100644 --- a/cpp/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp +++ b/cpp/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp @@ -3,11 +3,15 @@ "qhelp.dtd"> -

Using broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.

- -

Many cryptographic algorithms provided by cryptography libraries are known to be weak, or -flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted -data.

+

Using broken or weak cryptographic algorithms may compromise security guarantees such as confidentiality, integrity, and authenticity.

+ +

Many cryptographic algorithms are known to be weak or flawed. The security guarantees of a system often rely on the underlying cryptography, so using a weak algorithm can have severe consequences. For example: +

+
diff --git a/cpp/ql/src/change-notes/released/1.5.2.md b/cpp/ql/src/change-notes/released/1.5.2.md new file mode 100644 index 000000000000..384c27833f18 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.5.2.md @@ -0,0 +1,3 @@ +## 1.5.2 + +No user-facing changes. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index c5775c46013c..7eb901bae56a 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.1 +lastReleaseVersion: 1.5.2 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index f5193698fdb7..71aa95bed9e6 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.2-dev +version: 1.5.3-dev groups: - cpp - queries diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected index 26175106d69d..80a6530291da 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected @@ -115,7 +115,6 @@ | test.c:127:9:127:9 | 1 | not 0 | test.c:131:10:132:16 | { ... } | | test.c:131:7:131:7 | b | not 0 | test.c:131:10:132:16 | { ... } | | test.c:131:7:131:7 | b | true | test.c:131:10:132:16 | { ... } | -| test.c:137:7:137:7 | 0 | 0 | test.c:142:3:136:10 | return ... | | test.c:137:7:137:7 | 0 | false | test.c:142:3:136:10 | return ... | | test.c:145:16:145:16 | x | 0 | test.c:146:11:147:9 | { ... } | | test.c:146:7:146:8 | ! ... | true | test.c:146:11:147:9 | { ... } | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected index bc8f42dafc3f..10e31040b5ad 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected @@ -485,197 +485,519 @@ | test.c:411:59:411:59 | k | 0.205191 | | test.c:411:63:411:63 | l | 0.132041 | | test.c:413:10:413:15 | output | 1.842468 | -| test.c:418:20:418:20 | x | 0 | -| test.c:418:30:418:30 | x | 0 | -| test.c:421:3:421:4 | y1 | 0 | -| test.c:421:11:421:11 | y | 0 | -| test.c:421:14:421:14 | y | 1 | -| test.c:422:3:422:4 | y2 | 0 | -| test.c:422:9:422:9 | y | 1 | -| test.c:422:14:422:14 | y | 2 | -| test.c:422:22:422:22 | y | 5 | -| test.c:423:10:423:11 | y1 | 1 | -| test.c:423:15:423:16 | y2 | 5 | -| test.c:431:3:431:3 | i | -2147483648 | -| test.c:432:7:432:7 | i | 10 | -| test.c:434:3:434:3 | i | -2147483648 | -| test.c:435:3:435:3 | i | 10 | -| test.c:436:7:436:7 | i | 20 | -| test.c:438:3:438:3 | i | -2147483648 | -| test.c:439:3:439:3 | i | 40 | -| test.c:440:7:440:7 | i | 30 | -| test.c:442:3:442:3 | i | -2147483648 | -| test.c:442:7:442:7 | j | -2147483648 | -| test.c:443:7:443:7 | i | 40 | -| test.c:445:3:445:3 | i | -2147483648 | -| test.c:445:8:445:8 | j | 40 | -| test.c:446:7:446:7 | i | 50 | -| test.c:448:3:448:3 | i | -2147483648 | -| test.c:448:13:448:13 | j | 50 | -| test.c:449:7:449:7 | i | 60 | -| test.c:456:12:456:12 | a | 0 | -| test.c:456:17:456:17 | a | 3 | -| test.c:456:33:456:33 | b | 0 | -| test.c:456:38:456:38 | b | 5 | -| test.c:457:13:457:13 | a | 3 | -| test.c:457:15:457:15 | b | 5 | -| test.c:458:5:458:9 | total | 0 | -| test.c:458:14:458:14 | r | 15 | -| test.c:460:12:460:12 | a | 0 | -| test.c:460:17:460:17 | a | 3 | -| test.c:460:33:460:33 | b | 0 | -| test.c:460:38:460:38 | b | 0 | -| test.c:461:13:461:13 | a | 3 | -| test.c:461:15:461:15 | b | 0 | -| test.c:462:5:462:9 | total | 0 | -| test.c:462:14:462:14 | r | 0 | -| test.c:464:12:464:12 | a | 0 | -| test.c:464:17:464:17 | a | 3 | -| test.c:464:34:464:34 | b | 0 | -| test.c:464:39:464:39 | b | 13 | -| test.c:465:13:465:13 | a | 3 | -| test.c:465:15:465:15 | b | 13 | -| test.c:466:5:466:9 | total | 0 | -| test.c:466:14:466:14 | r | 39 | -| test.c:469:10:469:14 | total | 0 | -| test.c:475:12:475:12 | b | 0 | -| test.c:475:17:475:17 | b | 5 | -| test.c:476:16:476:16 | b | 5 | -| test.c:477:5:477:9 | total | 0 | -| test.c:477:14:477:14 | r | 55 | -| test.c:479:12:479:12 | b | 0 | -| test.c:479:17:479:17 | b | 0 | -| test.c:480:16:480:16 | b | 0 | -| test.c:481:5:481:9 | total | 0 | -| test.c:481:14:481:14 | r | 0 | -| test.c:483:13:483:13 | b | 0 | -| test.c:483:18:483:18 | b | 13 | -| test.c:484:16:484:16 | b | 13 | -| test.c:485:5:485:9 | total | 0 | -| test.c:485:14:485:14 | r | 143 | -| test.c:488:10:488:14 | total | 0 | -| test.c:493:3:493:3 | x | 0 | -| test.c:493:7:493:7 | y | 0 | -| test.c:494:3:494:4 | xy | 0 | -| test.c:494:8:494:8 | x | 1000000003 | -| test.c:494:12:494:12 | y | 1000000003 | -| test.c:495:10:495:11 | xy | 1000000006000000000 | -| test.c:500:3:500:3 | x | 0 | -| test.c:501:3:501:3 | y | 0 | -| test.c:502:3:502:4 | xy | 0 | -| test.c:502:8:502:8 | x | 274177 | -| test.c:502:12:502:12 | y | 67280421310721 | -| test.c:503:10:503:11 | xy | 18446744073709551616 | -| test.c:507:7:507:8 | ui | 0 | -| test.c:508:43:508:44 | ui | 10 | -| test.c:508:48:508:49 | ui | 10 | -| test.c:509:12:509:17 | result | 100 | -| test.c:511:7:511:8 | ul | 0 | -| test.c:512:28:512:29 | ul | 10 | -| test.c:512:33:512:34 | ul | 10 | -| test.c:513:12:513:17 | result | 0 | -| test.c:519:7:519:8 | ui | 0 | -| test.c:519:19:519:20 | ui | 0 | -| test.c:520:5:520:6 | ui | 2 | -| test.c:520:11:520:12 | ui | 2 | -| test.c:521:12:521:13 | ui | 4 | -| test.c:525:3:525:9 | uiconst | 10 | -| test.c:528:3:528:9 | ulconst | 10 | -| test.c:529:10:529:16 | uiconst | 40 | -| test.c:529:20:529:26 | ulconst | 40 | -| test.c:533:7:533:7 | i | -2147483648 | -| test.c:533:18:533:18 | i | -1 | -| test.c:534:5:534:5 | i | -2147483648 | -| test.c:534:13:534:13 | i | -1 | -| test.c:535:9:535:9 | i | -5 | -| test.c:537:5:537:5 | i | -2147483648 | -| test.c:537:9:537:9 | i | -5 | -| test.c:538:9:538:9 | i | -30 | -| test.c:540:5:540:5 | i | -30 | -| test.c:541:9:541:9 | i | -210 | -| test.c:543:5:543:5 | i | -210 | -| test.c:544:9:544:9 | i | -1155 | -| test.c:546:7:546:7 | i | -2147483648 | -| test.c:547:5:547:5 | i | -2147483648 | -| test.c:547:9:547:9 | i | -1 | -| test.c:548:9:548:9 | i | 1 | -| test.c:550:3:550:3 | i | -2147483648 | -| test.c:550:7:550:7 | i | -2147483648 | -| test.c:551:10:551:10 | i | -2147483648 | -| test.c:554:3:554:3 | i | -2147483648 | -| test.c:554:10:554:11 | sc | 1 | -| test.c:556:7:556:7 | i | -128 | -| test.c:563:7:563:7 | n | 0 | -| test.c:565:7:565:7 | n | 0 | -| test.c:566:9:566:9 | n | 1 | -| test.c:569:7:569:7 | n | 0 | -| test.c:570:9:570:9 | n | 1 | -| test.c:572:9:572:9 | n | 0 | -| test.c:575:8:575:8 | n | 0 | -| test.c:576:9:576:9 | n | 0 | -| test.c:578:9:578:9 | n | 1 | -| test.c:581:10:581:10 | n | 0 | -| test.c:582:5:582:5 | n | 1 | -| test.c:585:7:585:7 | n | 0 | -| test.c:589:7:589:7 | n | -32768 | -| test.c:592:7:592:7 | n | 0 | -| test.c:593:9:593:9 | n | 0 | -| test.c:595:9:595:9 | n | 1 | -| test.c:598:7:598:7 | n | 0 | -| test.c:599:9:599:9 | n | 1 | -| test.c:601:9:601:9 | n | 0 | -| test.c:604:10:604:10 | n | 0 | -| test.c:605:5:605:5 | n | 1 | -| test.c:608:7:608:7 | n | 0 | -| test.c:612:7:612:7 | n | -32768 | -| test.c:613:9:613:9 | n | -32768 | -| test.c:614:11:614:11 | n | 0 | -| test.c:618:7:618:7 | n | -32768 | -| test.c:619:13:619:13 | n | 5 | -| test.c:622:9:622:9 | n | 6 | -| test.c:625:7:625:7 | n | -32768 | -| test.c:625:22:625:22 | n | -32767 | -| test.c:626:9:626:9 | n | -32766 | -| test.c:629:7:629:7 | n | -32768 | -| test.c:630:5:630:5 | n | 0 | -| test.c:630:10:630:10 | n | 1 | -| test.c:630:14:630:14 | n | 0 | -| test.c:631:6:631:6 | n | 0 | -| test.c:631:10:631:10 | n | 0 | -| test.c:631:14:631:14 | n | 1 | -| test.c:642:7:642:8 | ss | -32768 | -| test.c:643:9:643:10 | ss | 0 | -| test.c:646:7:646:8 | ss | -32768 | -| test.c:647:9:647:10 | ss | -32768 | -| test.c:650:14:650:15 | us | 0 | -| test.c:651:9:651:10 | us | 0 | -| test.c:654:14:654:15 | us | 0 | -| test.c:655:9:655:10 | us | 0 | -| test.c:658:7:658:8 | ss | -32768 | -| test.c:659:9:659:10 | ss | -32768 | -| test.c:662:7:662:8 | ss | -32768 | -| test.c:663:9:663:10 | ss | -1 | -| test.c:669:8:669:8 | s | -2147483648 | -| test.c:669:15:669:15 | s | 0 | -| test.c:669:23:669:23 | s | 0 | -| test.c:670:18:670:18 | s | 0 | -| test.c:670:22:670:22 | s | 0 | -| test.c:671:9:671:14 | result | 0 | -| test.c:677:7:677:7 | i | 0 | -| test.c:678:9:678:9 | i | -2147483648 | -| test.c:682:7:682:7 | u | 0 | -| test.c:683:9:683:9 | u | 0 | -| test.c:688:12:688:12 | s | -2147483648 | -| test.c:689:7:689:8 | s2 | -4 | -| test.c:694:7:694:7 | x | -2147483648 | -| test.c:695:9:695:9 | y | -2147483648 | -| test.c:699:7:699:7 | y | -2147483648 | -| test.c:708:7:708:7 | x | -2147483648 | -| test.c:713:7:713:7 | x | -2147483648 | -| test.c:720:8:720:8 | x | 2147483647 | -| test.c:720:12:720:12 | y | 256 | -| test.c:721:9:721:9 | x | 2147483647 | -| test.c:722:9:722:9 | y | 256 | +| test.c:420:7:420:9 | rhs | 0 | +| test.c:420:19:420:21 | rhs | 0 | +| test.c:421:7:421:9 | rhs | 0 | +| test.c:421:19:421:21 | rhs | 0 | +| test.c:422:7:422:9 | rhs | 0 | +| test.c:422:19:422:21 | rhs | 0 | +| test.c:423:7:423:9 | rhs | 0 | +| test.c:423:19:423:21 | rhs | 0 | +| test.c:424:7:424:9 | rhs | 0 | +| test.c:424:19:424:21 | rhs | 0 | +| test.c:425:10:425:12 | rhs | 0 | +| test.c:432:10:432:11 | ip | 0 | +| test.c:432:20:432:21 | ip | 0 | +| test.c:432:40:432:41 | ip | 0 | +| test.c:433:14:433:15 | ip | 1 | +| test.c:434:14:434:15 | ip | 0 | +| test.c:434:34:434:35 | ip | 0 | +| test.c:435:11:435:12 | ip | 0 | +| test.c:436:13:436:14 | ip | 0 | +| test.c:437:14:437:15 | ip | 0 | +| test.c:438:14:438:15 | ip | 0 | +| test.c:439:15:439:16 | ip | 0 | +| test.c:439:41:439:42 | ip | 0 | +| test.c:439:52:439:53 | ip | 0 | +| test.c:439:67:439:68 | ip | 0 | +| test.c:439:78:439:79 | ip | 0 | +| test.c:440:18:440:19 | ip | 0 | +| test.c:441:23:441:24 | ip | 0 | +| test.c:441:34:441:35 | ip | 0 | +| test.c:442:25:442:26 | ip | 0 | +| test.c:443:20:443:21 | ip | 0 | +| test.c:444:11:444:12 | ip | 0 | +| test.c:444:26:444:27 | ip | 0 | +| test.c:445:16:445:17 | ip | 0 | +| test.c:446:16:446:17 | ip | 0 | +| test.c:447:16:447:17 | ip | 0 | +| test.c:448:17:448:18 | ip | 0 | +| test.c:449:22:449:23 | ip | 0 | +| test.c:449:33:449:34 | ip | 0 | +| test.c:449:48:449:49 | ip | 0 | +| test.c:449:59:449:60 | ip | 0 | +| test.c:450:20:450:21 | ip | 0 | +| test.c:451:25:451:26 | ip | 0 | +| test.c:451:36:451:37 | ip | 0 | +| test.c:452:27:452:28 | ip | 0 | +| test.c:453:22:453:23 | ip | 0 | +| test.c:454:15:454:16 | ip | 0 | +| test.c:454:30:454:31 | ip | 0 | +| test.c:455:11:455:12 | ip | 0 | +| test.c:456:12:456:13 | ip | 0 | +| test.c:457:12:457:13 | ip | 0 | +| test.c:458:13:458:14 | ip | 0 | +| test.c:458:39:458:40 | ip | 0 | +| test.c:458:50:458:51 | ip | 0 | +| test.c:458:65:458:66 | ip | 0 | +| test.c:458:76:458:77 | ip | 0 | +| test.c:459:16:459:17 | ip | 0 | +| test.c:460:21:460:22 | ip | 0 | +| test.c:460:32:460:33 | ip | 0 | +| test.c:461:23:461:24 | ip | 0 | +| test.c:462:18:462:19 | ip | 0 | +| test.c:463:11:463:12 | ip | 0 | +| test.c:463:17:463:18 | ip | 0 | +| test.c:463:37:463:38 | ip | 0 | +| test.c:463:43:463:44 | ip | 0 | +| test.c:464:14:464:15 | ip | 0 | +| test.c:465:14:465:15 | ip | 0 | +| test.c:466:14:466:15 | ip | 0 | +| test.c:467:15:467:16 | ip | 0 | +| test.c:467:41:467:42 | ip | 0 | +| test.c:467:52:467:53 | ip | 0 | +| test.c:467:67:467:68 | ip | 0 | +| test.c:467:78:467:79 | ip | 0 | +| test.c:468:18:468:19 | ip | 0 | +| test.c:469:23:469:24 | ip | 0 | +| test.c:469:34:469:35 | ip | 0 | +| test.c:470:25:470:26 | ip | 0 | +| test.c:471:20:471:21 | ip | 0 | +| test.c:472:14:472:15 | ip | 0 | +| test.c:472:20:472:21 | ip | 0 | +| test.c:473:16:473:17 | ip | 0 | +| test.c:474:12:474:13 | ip | 0 | +| test.c:475:14:475:15 | ip | 0 | +| test.c:476:15:476:16 | ip | 0 | +| test.c:477:16:477:17 | ip | 0 | +| test.c:478:16:478:17 | ip | 0 | +| test.c:479:17:479:18 | ip | 0 | +| test.c:480:22:480:23 | ip | 0 | +| test.c:480:33:480:34 | ip | 0 | +| test.c:480:48:480:49 | ip | 0 | +| test.c:480:59:480:60 | ip | 0 | +| test.c:481:20:481:21 | ip | 0 | +| test.c:482:25:482:26 | ip | 0 | +| test.c:482:36:482:37 | ip | 0 | +| test.c:483:27:483:28 | ip | 0 | +| test.c:484:22:484:23 | ip | 0 | +| test.c:485:13:485:14 | ip | 0 | +| test.c:485:28:485:29 | ip | 0 | +| test.c:486:18:486:19 | ip | 0 | +| test.c:487:18:487:19 | ip | 0 | +| test.c:488:18:488:19 | ip | 0 | +| test.c:489:19:489:20 | ip | 0 | +| test.c:490:24:490:25 | ip | 0 | +| test.c:490:35:490:36 | ip | 0 | +| test.c:490:50:490:51 | ip | 0 | +| test.c:490:61:490:62 | ip | 0 | +| test.c:491:22:491:23 | ip | 0 | +| test.c:492:27:492:28 | ip | 0 | +| test.c:492:38:492:39 | ip | 0 | +| test.c:493:29:493:30 | ip | 0 | +| test.c:494:24:494:25 | ip | 0 | +| test.c:495:17:495:18 | ip | 0 | +| test.c:495:32:495:33 | ip | 0 | +| test.c:496:14:496:15 | ip | 0 | +| test.c:497:18:497:19 | ip | 0 | +| test.c:498:18:498:19 | ip | 0 | +| test.c:499:19:499:20 | ip | 0 | +| test.c:500:24:500:25 | ip | 0 | +| test.c:500:35:500:36 | ip | 0 | +| test.c:500:50:500:51 | ip | 0 | +| test.c:500:61:500:62 | ip | 0 | +| test.c:501:22:501:23 | ip | 0 | +| test.c:502:27:502:28 | ip | 0 | +| test.c:502:38:502:39 | ip | 0 | +| test.c:503:29:503:30 | ip | 0 | +| test.c:504:24:504:25 | ip | 0 | +| test.c:505:17:505:18 | ip | 0 | +| test.c:505:23:505:24 | ip | 0 | +| test.c:505:43:505:44 | ip | 0 | +| test.c:505:49:505:50 | ip | 0 | +| test.c:506:16:506:17 | ip | 0 | +| test.c:507:16:507:17 | ip | 0 | +| test.c:508:16:508:17 | ip | 0 | +| test.c:509:17:509:18 | ip | 0 | +| test.c:510:22:510:23 | ip | 0 | +| test.c:510:33:510:34 | ip | 0 | +| test.c:510:48:510:49 | ip | 0 | +| test.c:510:59:510:60 | ip | 0 | +| test.c:511:20:511:21 | ip | 0 | +| test.c:512:25:512:26 | ip | 0 | +| test.c:512:36:512:37 | ip | 0 | +| test.c:513:27:513:28 | ip | 0 | +| test.c:514:22:514:23 | ip | 0 | +| test.c:515:16:515:17 | ip | 0 | +| test.c:515:22:515:23 | ip | 0 | +| test.c:516:18:516:19 | ip | 0 | +| test.c:517:14:517:15 | ip | 0 | +| test.c:518:14:518:15 | ip | 0 | +| test.c:518:24:518:25 | ip | 0 | +| test.c:518:44:518:45 | ip | 0 | +| test.c:519:16:519:17 | ip | 1 | +| test.c:520:16:520:17 | ip | 0 | +| test.c:520:36:520:37 | ip | 0 | +| test.c:521:14:521:15 | ip | 0 | +| test.c:522:19:522:20 | ip | 0 | +| test.c:523:20:523:21 | ip | 0 | +| test.c:524:20:524:21 | ip | 0 | +| test.c:525:21:525:22 | ip | 0 | +| test.c:526:26:526:27 | ip | 0 | +| test.c:526:37:526:38 | ip | 0 | +| test.c:526:52:526:53 | ip | 0 | +| test.c:526:63:526:64 | ip | 0 | +| test.c:527:24:527:25 | ip | 0 | +| test.c:528:29:528:30 | ip | 0 | +| test.c:528:40:528:41 | ip | 0 | +| test.c:529:31:529:32 | ip | 0 | +| test.c:530:26:530:27 | ip | 0 | +| test.c:531:17:531:18 | ip | 0 | +| test.c:531:32:531:33 | ip | 0 | +| test.c:532:22:532:23 | ip | 0 | +| test.c:533:22:533:23 | ip | 0 | +| test.c:534:22:534:23 | ip | 0 | +| test.c:535:23:535:24 | ip | 0 | +| test.c:536:28:536:29 | ip | 0 | +| test.c:536:39:536:40 | ip | 0 | +| test.c:536:54:536:55 | ip | 0 | +| test.c:536:65:536:66 | ip | 0 | +| test.c:537:26:537:27 | ip | 0 | +| test.c:538:31:538:32 | ip | 0 | +| test.c:538:42:538:43 | ip | 0 | +| test.c:539:33:539:34 | ip | 0 | +| test.c:540:28:540:29 | ip | 0 | +| test.c:541:21:541:22 | ip | 0 | +| test.c:541:36:541:37 | ip | 0 | +| test.c:542:17:542:18 | ip | 0 | +| test.c:543:18:543:19 | ip | 0 | +| test.c:544:18:544:19 | ip | 0 | +| test.c:545:19:545:20 | ip | 0 | +| test.c:546:24:546:25 | ip | 0 | +| test.c:546:35:546:36 | ip | 0 | +| test.c:546:50:546:51 | ip | 0 | +| test.c:546:61:546:62 | ip | 0 | +| test.c:547:22:547:23 | ip | 0 | +| test.c:548:27:548:28 | ip | 0 | +| test.c:548:38:548:39 | ip | 0 | +| test.c:549:29:549:30 | ip | 0 | +| test.c:550:24:550:25 | ip | 0 | +| test.c:551:17:551:18 | ip | 0 | +| test.c:551:23:551:24 | ip | 0 | +| test.c:551:43:551:44 | ip | 0 | +| test.c:551:49:551:50 | ip | 0 | +| test.c:552:20:552:21 | ip | 0 | +| test.c:553:20:553:21 | ip | 0 | +| test.c:554:20:554:21 | ip | 0 | +| test.c:555:21:555:22 | ip | 0 | +| test.c:556:26:556:27 | ip | 0 | +| test.c:556:37:556:38 | ip | 0 | +| test.c:556:52:556:53 | ip | 0 | +| test.c:556:63:556:64 | ip | 0 | +| test.c:557:24:557:25 | ip | 0 | +| test.c:558:29:558:30 | ip | 0 | +| test.c:558:40:558:41 | ip | 0 | +| test.c:559:31:559:32 | ip | 0 | +| test.c:560:26:560:27 | ip | 0 | +| test.c:561:20:561:21 | ip | 0 | +| test.c:561:26:561:27 | ip | 0 | +| test.c:562:22:562:23 | ip | 0 | +| test.c:563:18:563:19 | ip | 0 | +| test.c:564:16:564:17 | ip | 0 | +| test.c:565:17:565:18 | ip | 0 | +| test.c:566:18:566:19 | ip | 0 | +| test.c:567:18:567:19 | ip | 0 | +| test.c:568:19:568:20 | ip | 0 | +| test.c:569:24:569:25 | ip | 0 | +| test.c:569:35:569:36 | ip | 0 | +| test.c:569:50:569:51 | ip | 0 | +| test.c:569:61:569:62 | ip | 0 | +| test.c:570:22:570:23 | ip | 0 | +| test.c:571:27:571:28 | ip | 0 | +| test.c:571:38:571:39 | ip | 0 | +| test.c:572:29:572:30 | ip | 0 | +| test.c:573:24:573:25 | ip | 0 | +| test.c:574:15:574:16 | ip | 0 | +| test.c:574:30:574:31 | ip | 0 | +| test.c:575:20:575:21 | ip | 0 | +| test.c:576:20:576:21 | ip | 0 | +| test.c:577:20:577:21 | ip | 0 | +| test.c:578:21:578:22 | ip | 0 | +| test.c:579:26:579:27 | ip | 0 | +| test.c:579:37:579:38 | ip | 0 | +| test.c:579:52:579:53 | ip | 0 | +| test.c:579:63:579:64 | ip | 0 | +| test.c:580:24:580:25 | ip | 0 | +| test.c:581:29:581:30 | ip | 0 | +| test.c:581:40:581:41 | ip | 0 | +| test.c:582:31:582:32 | ip | 0 | +| test.c:583:26:583:27 | ip | 0 | +| test.c:584:19:584:20 | ip | 0 | +| test.c:584:34:584:35 | ip | 0 | +| test.c:585:16:585:17 | ip | 0 | +| test.c:586:20:586:21 | ip | 0 | +| test.c:587:20:587:21 | ip | 0 | +| test.c:588:21:588:22 | ip | 0 | +| test.c:589:26:589:27 | ip | 0 | +| test.c:589:37:589:38 | ip | 0 | +| test.c:589:52:589:53 | ip | 0 | +| test.c:589:63:589:64 | ip | 0 | +| test.c:590:24:590:25 | ip | 0 | +| test.c:591:29:591:30 | ip | 0 | +| test.c:591:40:591:41 | ip | 0 | +| test.c:592:31:592:32 | ip | 0 | +| test.c:593:26:593:27 | ip | 0 | +| test.c:594:19:594:20 | ip | 0 | +| test.c:594:25:594:26 | ip | 0 | +| test.c:594:45:594:46 | ip | 0 | +| test.c:594:51:594:52 | ip | 0 | +| test.c:595:18:595:19 | ip | 0 | +| test.c:596:18:596:19 | ip | 0 | +| test.c:597:18:597:19 | ip | 0 | +| test.c:598:19:598:20 | ip | 0 | +| test.c:599:24:599:25 | ip | 0 | +| test.c:599:35:599:36 | ip | 0 | +| test.c:599:50:599:51 | ip | 0 | +| test.c:599:61:599:62 | ip | 0 | +| test.c:600:22:600:23 | ip | 0 | +| test.c:601:27:601:28 | ip | 0 | +| test.c:601:38:601:39 | ip | 0 | +| test.c:602:29:602:30 | ip | 0 | +| test.c:603:24:603:25 | ip | 0 | +| test.c:604:18:604:19 | ip | 0 | +| test.c:604:24:604:25 | ip | 0 | +| test.c:605:20:605:21 | ip | 0 | +| test.c:606:16:606:17 | ip | 0 | +| test.c:607:10:607:23 | special_number | 0 | +| test.c:615:7:615:8 | c1 | -2147483648 | +| test.c:615:13:615:13 | x | 0 | +| test.c:616:7:616:8 | c2 | -2147483648 | +| test.c:616:13:616:13 | x | 0 | +| test.c:617:7:617:8 | c3 | -2147483648 | +| test.c:617:13:617:13 | x | 0 | +| test.c:618:7:618:8 | c4 | -2147483648 | +| test.c:618:13:618:13 | x | 0 | +| test.c:619:7:619:8 | c5 | -2147483648 | +| test.c:619:13:619:13 | x | 0 | +| test.c:620:7:620:8 | c1 | -2147483648 | +| test.c:620:13:620:14 | c2 | -2147483648 | +| test.c:620:19:620:19 | x | 0 | +| test.c:621:7:621:8 | c1 | -2147483648 | +| test.c:621:13:621:14 | c3 | -2147483648 | +| test.c:621:19:621:19 | x | 0 | +| test.c:622:7:622:8 | c1 | -2147483648 | +| test.c:622:13:622:14 | c4 | -2147483648 | +| test.c:622:19:622:19 | x | 0 | +| test.c:623:7:623:8 | c1 | -2147483648 | +| test.c:623:13:623:14 | c5 | -2147483648 | +| test.c:623:19:623:19 | x | 0 | +| test.c:624:7:624:8 | c2 | -2147483648 | +| test.c:624:13:624:14 | c3 | -2147483648 | +| test.c:624:19:624:19 | x | 0 | +| test.c:626:11:626:11 | x | 0 | +| test.c:626:15:626:15 | x | 0 | +| test.c:626:19:626:19 | x | 0 | +| test.c:626:23:626:23 | x | 0 | +| test.c:626:27:626:27 | x | 0 | +| test.c:626:31:626:31 | x | 0 | +| test.c:626:35:626:35 | x | 0 | +| test.c:626:39:626:39 | x | 0 | +| test.c:626:43:626:43 | x | 0 | +| test.c:626:47:626:47 | x | 0 | +| test.c:626:51:626:51 | x | 0 | +| test.c:626:55:626:55 | x | 0 | +| test.c:627:10:627:10 | y | -2147483648 | +| test.c:632:20:632:20 | x | 0 | +| test.c:632:30:632:30 | x | 0 | +| test.c:635:3:635:4 | y1 | 0 | +| test.c:635:11:635:11 | y | 0 | +| test.c:635:14:635:14 | y | 1 | +| test.c:636:3:636:4 | y2 | 0 | +| test.c:636:9:636:9 | y | 1 | +| test.c:636:14:636:14 | y | 2 | +| test.c:636:22:636:22 | y | 5 | +| test.c:637:10:637:11 | y1 | 1 | +| test.c:637:15:637:16 | y2 | 5 | +| test.c:645:3:645:3 | i | -2147483648 | +| test.c:646:7:646:7 | i | 10 | +| test.c:648:3:648:3 | i | -2147483648 | +| test.c:649:3:649:3 | i | 10 | +| test.c:650:7:650:7 | i | 20 | +| test.c:652:3:652:3 | i | -2147483648 | +| test.c:653:3:653:3 | i | 40 | +| test.c:654:7:654:7 | i | 30 | +| test.c:656:3:656:3 | i | -2147483648 | +| test.c:656:7:656:7 | j | -2147483648 | +| test.c:657:7:657:7 | i | 40 | +| test.c:659:3:659:3 | i | -2147483648 | +| test.c:659:8:659:8 | j | 40 | +| test.c:660:7:660:7 | i | 50 | +| test.c:662:3:662:3 | i | -2147483648 | +| test.c:662:13:662:13 | j | 50 | +| test.c:663:7:663:7 | i | 60 | +| test.c:670:12:670:12 | a | 0 | +| test.c:670:17:670:17 | a | 3 | +| test.c:670:33:670:33 | b | 0 | +| test.c:670:38:670:38 | b | 5 | +| test.c:671:13:671:13 | a | 3 | +| test.c:671:15:671:15 | b | 5 | +| test.c:672:5:672:9 | total | 0 | +| test.c:672:14:672:14 | r | 15 | +| test.c:674:12:674:12 | a | 0 | +| test.c:674:17:674:17 | a | 3 | +| test.c:674:33:674:33 | b | 0 | +| test.c:674:38:674:38 | b | 0 | +| test.c:675:13:675:13 | a | 3 | +| test.c:675:15:675:15 | b | 0 | +| test.c:676:5:676:9 | total | 0 | +| test.c:676:14:676:14 | r | 0 | +| test.c:678:12:678:12 | a | 0 | +| test.c:678:17:678:17 | a | 3 | +| test.c:678:34:678:34 | b | 0 | +| test.c:678:39:678:39 | b | 13 | +| test.c:679:13:679:13 | a | 3 | +| test.c:679:15:679:15 | b | 13 | +| test.c:680:5:680:9 | total | 0 | +| test.c:680:14:680:14 | r | 39 | +| test.c:683:10:683:14 | total | 0 | +| test.c:689:12:689:12 | b | 0 | +| test.c:689:17:689:17 | b | 5 | +| test.c:690:16:690:16 | b | 5 | +| test.c:691:5:691:9 | total | 0 | +| test.c:691:14:691:14 | r | 55 | +| test.c:693:12:693:12 | b | 0 | +| test.c:693:17:693:17 | b | 0 | +| test.c:694:16:694:16 | b | 0 | +| test.c:695:5:695:9 | total | 0 | +| test.c:695:14:695:14 | r | 0 | +| test.c:697:13:697:13 | b | 0 | +| test.c:697:18:697:18 | b | 13 | +| test.c:698:16:698:16 | b | 13 | +| test.c:699:5:699:9 | total | 0 | +| test.c:699:14:699:14 | r | 143 | +| test.c:702:10:702:14 | total | 0 | +| test.c:707:3:707:3 | x | 0 | +| test.c:707:7:707:7 | y | 0 | +| test.c:708:3:708:4 | xy | 0 | +| test.c:708:8:708:8 | x | 1000000003 | +| test.c:708:12:708:12 | y | 1000000003 | +| test.c:709:10:709:11 | xy | 1000000006000000000 | +| test.c:714:3:714:3 | x | 0 | +| test.c:715:3:715:3 | y | 0 | +| test.c:716:3:716:4 | xy | 0 | +| test.c:716:8:716:8 | x | 274177 | +| test.c:716:12:716:12 | y | 67280421310721 | +| test.c:717:10:717:11 | xy | 18446744073709551616 | +| test.c:721:7:721:8 | ui | 0 | +| test.c:722:43:722:44 | ui | 10 | +| test.c:722:48:722:49 | ui | 10 | +| test.c:723:12:723:17 | result | 100 | +| test.c:725:7:725:8 | ul | 0 | +| test.c:726:28:726:29 | ul | 10 | +| test.c:726:33:726:34 | ul | 10 | +| test.c:727:12:727:17 | result | 0 | +| test.c:733:7:733:8 | ui | 0 | +| test.c:733:19:733:20 | ui | 0 | +| test.c:734:5:734:6 | ui | 2 | +| test.c:734:11:734:12 | ui | 2 | +| test.c:735:12:735:13 | ui | 4 | +| test.c:739:3:739:9 | uiconst | 10 | +| test.c:742:3:742:9 | ulconst | 10 | +| test.c:743:10:743:16 | uiconst | 40 | +| test.c:743:20:743:26 | ulconst | 40 | +| test.c:747:7:747:7 | i | -2147483648 | +| test.c:747:18:747:18 | i | -1 | +| test.c:748:5:748:5 | i | -2147483648 | +| test.c:748:13:748:13 | i | -1 | +| test.c:749:9:749:9 | i | -5 | +| test.c:751:5:751:5 | i | -2147483648 | +| test.c:751:9:751:9 | i | -5 | +| test.c:752:9:752:9 | i | -30 | +| test.c:754:5:754:5 | i | -30 | +| test.c:755:9:755:9 | i | -210 | +| test.c:757:5:757:5 | i | -210 | +| test.c:758:9:758:9 | i | -1155 | +| test.c:760:7:760:7 | i | -2147483648 | +| test.c:761:5:761:5 | i | -2147483648 | +| test.c:761:9:761:9 | i | -1 | +| test.c:762:9:762:9 | i | 1 | +| test.c:764:3:764:3 | i | -2147483648 | +| test.c:764:7:764:7 | i | -2147483648 | +| test.c:765:10:765:10 | i | -2147483648 | +| test.c:768:3:768:3 | i | -2147483648 | +| test.c:768:10:768:11 | sc | 1 | +| test.c:770:7:770:7 | i | -128 | +| test.c:777:7:777:7 | n | 0 | +| test.c:779:7:779:7 | n | 0 | +| test.c:780:9:780:9 | n | 1 | +| test.c:783:7:783:7 | n | 0 | +| test.c:784:9:784:9 | n | 1 | +| test.c:786:9:786:9 | n | 0 | +| test.c:789:8:789:8 | n | 0 | +| test.c:790:9:790:9 | n | 0 | +| test.c:792:9:792:9 | n | 1 | +| test.c:795:10:795:10 | n | 0 | +| test.c:796:5:796:5 | n | 1 | +| test.c:799:7:799:7 | n | 0 | +| test.c:803:7:803:7 | n | -32768 | +| test.c:806:7:806:7 | n | 0 | +| test.c:807:9:807:9 | n | 0 | +| test.c:809:9:809:9 | n | 1 | +| test.c:812:7:812:7 | n | 0 | +| test.c:813:9:813:9 | n | 1 | +| test.c:815:9:815:9 | n | 0 | +| test.c:818:10:818:10 | n | 0 | +| test.c:819:5:819:5 | n | 1 | +| test.c:822:7:822:7 | n | 0 | +| test.c:826:7:826:7 | n | -32768 | +| test.c:827:9:827:9 | n | -32768 | +| test.c:828:11:828:11 | n | 0 | +| test.c:832:7:832:7 | n | -32768 | +| test.c:833:13:833:13 | n | 5 | +| test.c:836:9:836:9 | n | 6 | +| test.c:839:7:839:7 | n | -32768 | +| test.c:839:22:839:22 | n | -32767 | +| test.c:840:9:840:9 | n | -32766 | +| test.c:843:7:843:7 | n | -32768 | +| test.c:844:5:844:5 | n | 0 | +| test.c:844:10:844:10 | n | 1 | +| test.c:844:14:844:14 | n | 0 | +| test.c:845:6:845:6 | n | 0 | +| test.c:845:10:845:10 | n | 0 | +| test.c:845:14:845:14 | n | 1 | +| test.c:856:7:856:8 | ss | -32768 | +| test.c:857:9:857:10 | ss | 0 | +| test.c:860:7:860:8 | ss | -32768 | +| test.c:861:9:861:10 | ss | -32768 | +| test.c:864:14:864:15 | us | 0 | +| test.c:865:9:865:10 | us | 0 | +| test.c:868:14:868:15 | us | 0 | +| test.c:869:9:869:10 | us | 0 | +| test.c:872:7:872:8 | ss | -32768 | +| test.c:873:9:873:10 | ss | -32768 | +| test.c:876:7:876:8 | ss | -32768 | +| test.c:877:9:877:10 | ss | -1 | +| test.c:883:8:883:8 | s | -2147483648 | +| test.c:883:15:883:15 | s | 0 | +| test.c:883:23:883:23 | s | 0 | +| test.c:884:18:884:18 | s | 0 | +| test.c:884:22:884:22 | s | 0 | +| test.c:885:9:885:14 | result | 0 | +| test.c:891:7:891:7 | i | 0 | +| test.c:892:9:892:9 | i | -2147483648 | +| test.c:896:7:896:7 | u | 0 | +| test.c:897:9:897:9 | u | 0 | +| test.c:902:12:902:12 | s | -2147483648 | +| test.c:903:7:903:8 | s2 | -4 | +| test.c:908:7:908:7 | x | -2147483648 | +| test.c:909:9:909:9 | y | -2147483648 | +| test.c:913:7:913:7 | y | -2147483648 | +| test.c:922:7:922:7 | x | -2147483648 | +| test.c:927:7:927:7 | x | -2147483648 | +| test.c:934:8:934:8 | x | 2147483647 | +| test.c:934:12:934:12 | y | 256 | +| test.c:935:9:935:9 | x | 2147483647 | +| test.c:936:9:936:9 | y | 256 | | test.cpp:10:7:10:7 | b | -2147483648 | | test.cpp:11:5:11:5 | x | -2147483648 | | test.cpp:13:10:13:10 | x | -2147483648 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected new file mode 100644 index 000000000000..c5905117615d --- /dev/null +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected @@ -0,0 +1,4605 @@ +| inline_assembly.c:9:20:9:20 | 0 | 1.0 | +| inline_assembly.c:9:20:9:20 | (unsigned int)... | 1.0 | +| inline_assembly.c:10:3:10:3 | y | 1.0 | +| inline_assembly.c:10:3:10:7 | ... = ... | 1.0 | +| inline_assembly.c:10:7:10:7 | 1 | 1.0 | +| inline_assembly.c:10:7:10:7 | (unsigned int)... | 1.0 | +| inline_assembly.c:12:3:12:8 | call to printf | 1.0 | +| inline_assembly.c:12:29:12:29 | x | 1.0 | +| inline_assembly.c:12:32:12:32 | y | 1.0 | +| inline_assembly.c:16:25:16:25 | x | 1.0 | +| inline_assembly.c:16:35:16:35 | y | 1.0 | +| inline_assembly.c:21:3:21:8 | call to printf | 1.0 | +| inline_assembly.c:21:29:21:29 | x | 1.0 | +| inline_assembly.c:21:32:21:32 | y | 1.0 | +| inline_assembly.c:23:10:23:10 | 0 | 1.0 | +| minmax.c:16:9:16:10 | 1 | 1.0 | +| minmax.c:16:16:16:17 | 2 | 1.0 | +| minmax.c:16:23:16:24 | 3 | 1.0 | +| minmax.c:18:2:18:7 | call to printf | 1.0 | +| minmax.c:18:37:18:37 | x | 1.0 | +| minmax.c:18:40:18:40 | y | 1.0 | +| minmax.c:18:43:18:43 | z | 1.0 | +| minmax.c:20:2:20:2 | z | 1.0 | +| minmax.c:20:2:24:3 | ... = ... | 2.0 | +| minmax.c:20:6:24:3 | (statement expression) | 2.0 | +| minmax.c:21:10:21:11 | 0 | 1.0 | +| minmax.c:22:7:22:14 | ... != ... | 1.0 | +| minmax.c:22:8:22:8 | x | 1.0 | +| minmax.c:22:14:22:14 | y | 1.0 | +| minmax.c:22:18:22:18 | t | 1.0 | +| minmax.c:22:18:22:22 | ... = ... | 1.0 | +| minmax.c:22:22:22:22 | x | 1.0 | +| minmax.c:23:3:23:3 | t | 2.0 | +| minmax.c:26:2:26:7 | call to printf | 1.0 | +| minmax.c:26:37:26:37 | x | 1.0 | +| minmax.c:26:40:26:40 | y | 1.0 | +| minmax.c:26:43:26:43 | z | 2.0 | +| test.c:6:14:6:15 | 0 | 1.0 | +| test.c:8:5:8:9 | count | 1.0 | +| test.c:8:5:8:19 | ... = ... | 13.0 | +| test.c:8:13:8:17 | count | 13.0 | +| test.c:8:13:8:19 | ... + ... | 13.0 | +| test.c:8:19:8:19 | 1 | 1.0 | +| test.c:10:10:10:14 | count | 13.0 | +| test.c:14:14:14:15 | 0 | 1.0 | +| test.c:16:5:16:9 | count | 1.0 | +| test.c:16:5:16:26 | ... = ... | 13.0 | +| test.c:16:13:16:21 | (...) | 13.0 | +| test.c:16:13:16:26 | ... % ... | 13.0 | +| test.c:16:14:16:18 | count | 13.0 | +| test.c:16:14:16:20 | ... + ... | 13.0 | +| test.c:16:20:16:20 | 1 | 1.0 | +| test.c:16:25:16:26 | 10 | 1.0 | +| test.c:18:10:18:14 | count | 13.0 | +| test.c:22:14:22:15 | 0 | 1.0 | +| test.c:24:5:24:9 | count | 13.0 | +| test.c:24:5:24:11 | ... ++ | 13.0 | +| test.c:25:5:25:9 | count | 1.0 | +| test.c:25:5:25:22 | ... = ... | 13.0 | +| test.c:25:13:25:17 | count | 13.0 | +| test.c:25:13:25:22 | ... % ... | 13.0 | +| test.c:25:21:25:22 | 10 | 1.0 | +| test.c:27:10:27:14 | count | 13.0 | +| test.c:31:10:31:11 | 0 | 1.0 | +| test.c:32:14:32:15 | 0 | 1.0 | +| test.c:33:8:33:8 | i | 1.0 | +| test.c:33:8:33:12 | ... = ... | 1.0 | +| test.c:33:12:33:12 | 0 | 1.0 | +| test.c:33:15:33:15 | i | 13.0 | +| test.c:33:15:33:19 | ... < ... | 1.0 | +| test.c:33:19:33:19 | 2 | 1.0 | +| test.c:33:22:33:22 | i | 1.0 | +| test.c:33:22:33:28 | ... = ... | 13.0 | +| test.c:33:26:33:26 | i | 13.0 | +| test.c:33:26:33:28 | ... + ... | 13.0 | +| test.c:33:28:33:28 | 1 | 1.0 | +| test.c:34:5:34:9 | total | 13.0 | +| test.c:34:5:34:14 | ... += ... | 13.0 | +| test.c:34:14:34:14 | i | 13.0 | +| test.c:36:10:36:14 | total | 13.0 | +| test.c:36:10:36:18 | ... + ... | 13.0 | +| test.c:36:18:36:18 | i | 13.0 | +| test.c:40:10:40:11 | 0 | 1.0 | +| test.c:41:14:41:15 | 0 | 1.0 | +| test.c:42:8:42:8 | i | 1.0 | +| test.c:42:8:42:12 | ... = ... | 1.0 | +| test.c:42:12:42:12 | 0 | 1.0 | +| test.c:42:15:42:15 | i | 13.0 | +| test.c:42:15:42:19 | ... < ... | 1.0 | +| test.c:42:19:42:19 | 2 | 1.0 | +| test.c:42:22:42:22 | i | 13.0 | +| test.c:42:22:42:24 | ... ++ | 13.0 | +| test.c:43:5:43:9 | total | 13.0 | +| test.c:43:5:43:14 | ... += ... | 13.0 | +| test.c:43:14:43:14 | i | 13.0 | +| test.c:45:10:45:14 | total | 13.0 | +| test.c:45:10:45:18 | ... + ... | 13.0 | +| test.c:45:18:45:18 | i | 13.0 | +| test.c:49:10:49:11 | 0 | 1.0 | +| test.c:50:14:50:15 | 0 | 1.0 | +| test.c:51:8:51:8 | i | 1.0 | +| test.c:51:8:51:12 | ... = ... | 1.0 | +| test.c:51:12:51:12 | 0 | 1.0 | +| test.c:51:15:51:15 | i | 13.0 | +| test.c:51:15:51:17 | ... + ... | 13.0 | +| test.c:51:15:51:21 | ... < ... | 1.0 | +| test.c:51:17:51:17 | 2 | 1.0 | +| test.c:51:21:51:21 | 4 | 1.0 | +| test.c:51:24:51:24 | i | 1.0 | +| test.c:51:24:51:30 | ... = ... | 13.0 | +| test.c:51:28:51:28 | i | 13.0 | +| test.c:51:28:51:30 | ... + ... | 13.0 | +| test.c:51:30:51:30 | 1 | 1.0 | +| test.c:52:5:52:9 | total | 13.0 | +| test.c:52:5:52:14 | ... += ... | 13.0 | +| test.c:52:14:52:14 | i | 13.0 | +| test.c:54:10:54:14 | total | 13.0 | +| test.c:54:10:54:18 | ... + ... | 13.0 | +| test.c:54:18:54:18 | i | 13.0 | +| test.c:58:7:58:7 | i | 1.0 | +| test.c:58:7:58:11 | ... < ... | 1.0 | +| test.c:58:11:58:11 | 4 | 1.0 | +| test.c:59:9:59:9 | i | 1.0 | +| test.c:59:9:59:13 | ... < ... | 1.0 | +| test.c:59:13:59:13 | 5 | 1.0 | +| test.c:60:14:60:14 | i | 1.0 | +| test.c:63:10:63:10 | 1 | 1.0 | +| test.c:67:7:67:11 | - ... | 1.0 | +| test.c:67:7:67:15 | ... < ... | 1.0 | +| test.c:67:7:67:25 | ... && ... | 1.0 | +| test.c:67:8:67:11 | 1000 | 1.0 | +| test.c:67:15:67:15 | y | 1.0 | +| test.c:67:20:67:20 | y | 1.0 | +| test.c:67:20:67:25 | ... < ... | 1.0 | +| test.c:67:24:67:25 | 10 | 1.0 | +| test.c:68:9:68:9 | x | 1.0 | +| test.c:68:9:68:15 | ... < ... | 1.0 | +| test.c:68:13:68:13 | y | 1.0 | +| test.c:68:13:68:15 | ... - ... | 1.0 | +| test.c:68:15:68:15 | 2 | 1.0 | +| test.c:69:14:69:14 | x | 1.0 | +| test.c:72:10:72:10 | y | 1.0 | +| test.c:76:7:76:7 | y | 1.0 | +| test.c:76:7:76:12 | ... == ... | 1.0 | +| test.c:76:12:76:12 | 0 | 1.0 | +| test.c:77:9:77:9 | x | 1.0 | +| test.c:77:9:77:13 | ... < ... | 1.0 | +| test.c:77:13:77:13 | 4 | 1.0 | +| test.c:78:14:78:14 | 0 | 1.0 | +| test.c:81:9:81:9 | x | 1.0 | +| test.c:81:9:81:13 | ... < ... | 1.0 | +| test.c:81:13:81:13 | 4 | 1.0 | +| test.c:82:14:82:14 | 1 | 1.0 | +| test.c:85:10:85:10 | x | 1.0 | +| test.c:89:7:89:7 | y | 1.0 | +| test.c:89:7:89:11 | ... > ... | 1.0 | +| test.c:89:11:89:11 | 7 | 1.0 | +| test.c:90:9:90:9 | x | 1.0 | +| test.c:90:9:90:13 | ... < ... | 1.0 | +| test.c:90:13:90:13 | y | 1.0 | +| test.c:91:14:91:14 | 0 | 1.0 | +| test.c:93:12:93:12 | x | 1.0 | +| test.c:95:10:95:10 | 1 | 1.0 | +| test.c:100:3:100:3 | c | 1.0 | +| test.c:100:3:100:8 | ... = ... | 1.0 | +| test.c:100:7:100:8 | * ... | 1.0 | +| test.c:101:7:101:7 | (int)... | 1.0 | +| test.c:101:7:101:7 | c | 1.0 | +| test.c:101:7:101:15 | ... != ... | 1.0 | +| test.c:101:12:101:15 | 0 | 1.0 | +| test.c:102:5:102:8 | * ... | 1.0 | +| test.c:102:5:102:15 | ... = ... | 1.0 | +| test.c:102:12:102:15 | 0 | 1.0 | +| test.c:102:12:102:15 | (char)... | 1.0 | +| test.c:104:7:104:7 | (int)... | 2.0 | +| test.c:104:7:104:7 | c | 2.0 | +| test.c:104:7:104:14 | ... == ... | 1.0 | +| test.c:104:12:104:14 | 58 | 1.0 | +| test.c:105:5:105:5 | c | 1.0 | +| test.c:105:5:105:10 | ... = ... | 1.0 | +| test.c:105:9:105:10 | * ... | 1.0 | +| test.c:106:9:106:9 | (int)... | 1.0 | +| test.c:106:9:106:9 | c | 1.0 | +| test.c:106:9:106:17 | ... != ... | 1.0 | +| test.c:106:14:106:17 | 0 | 1.0 | +| test.c:107:7:107:10 | * ... | 1.0 | +| test.c:107:7:107:17 | ... = ... | 1.0 | +| test.c:107:14:107:17 | 0 | 1.0 | +| test.c:107:14:107:17 | (char)... | 1.0 | +| test.c:109:9:109:9 | (int)... | 2.0 | +| test.c:109:9:109:9 | c | 2.0 | +| test.c:109:9:109:16 | ... != ... | 1.0 | +| test.c:109:14:109:16 | 44 | 1.0 | +| test.c:110:14:110:14 | 1 | 1.0 | +| test.c:112:10:112:10 | 0 | 1.0 | +| test.c:118:24:118:24 | 0 | 1.0 | +| test.c:118:24:118:24 | (size_type)... | 1.0 | +| test.c:119:10:119:10 | n | 1.0 | +| test.c:119:10:119:12 | ... ++ | 1.0 | +| test.c:123:22:123:22 | 0 | 1.0 | +| test.c:123:22:123:22 | (size_type)... | 1.0 | +| test.c:124:11:124:15 | Start | 13.0 | +| test.c:124:11:124:36 | ... <= ... | 1.0 | +| test.c:124:20:124:32 | call to test12_helper | 1.0 | +| test.c:124:20:124:36 | ... - ... | 1.0 | +| test.c:124:36:124:36 | 1 | 1.0 | +| test.c:124:36:124:36 | (unsigned long long)... | 1.0 | +| test.c:126:31:126:43 | call to test12_helper | 1.0 | +| test.c:127:6:127:10 | Start | 13.0 | +| test.c:127:6:127:24 | ... += ... | 13.0 | +| test.c:127:15:127:20 | Length | 1.0 | +| test.c:127:15:127:24 | ... + ... | 1.0 | +| test.c:127:24:127:24 | 1 | 1.0 | +| test.c:127:24:127:24 | (unsigned long long)... | 1.0 | +| test.c:130:11:130:11 | 1 | 1.0 | +| test.c:135:22:135:22 | (unsigned char)... | 1.0 | +| test.c:135:22:135:22 | c | 1.0 | +| test.c:136:20:136:20 | 0 | 1.0 | +| test.c:136:20:136:20 | (unsigned int)... | 1.0 | +| test.c:137:20:137:20 | x | 1.0 | +| test.c:137:20:137:22 | ... - ... | 1.0 | +| test.c:137:22:137:22 | 1 | 1.0 | +| test.c:137:22:137:22 | (unsigned int)... | 1.0 | +| test.c:138:11:138:11 | i | 1.0 | +| test.c:138:11:138:13 | ... + ... | 1.0 | +| test.c:138:13:138:13 | 1 | 1.0 | +| test.c:139:10:139:41 | (double)... | 1.0 | +| test.c:139:10:139:41 | (int)... | 1.0 | +| test.c:139:18:139:41 | (...) | 1.0 | +| test.c:139:19:139:19 | (int)... | 1.0 | +| test.c:139:19:139:19 | c | 1.0 | +| test.c:139:19:139:23 | ... + ... | 1.0 | +| test.c:139:19:139:28 | (unsigned int)... | 1.0 | +| test.c:139:19:139:28 | ... + ... | 1.0 | +| test.c:139:19:139:32 | ... + ... | 1.0 | +| test.c:139:19:139:36 | ... + ... | 1.0 | +| test.c:139:19:139:40 | ... + ... | 1.0 | +| test.c:139:23:139:23 | i | 1.0 | +| test.c:139:27:139:28 | (int)... | 1.0 | +| test.c:139:27:139:28 | uc | 1.0 | +| test.c:139:32:139:32 | x | 1.0 | +| test.c:139:36:139:36 | y | 1.0 | +| test.c:139:40:139:40 | (unsigned int)... | 1.0 | +| test.c:139:40:139:40 | z | 1.0 | +| test.c:144:12:144:23 | (int)... | 1.0 | +| test.c:144:17:144:23 | (char)... | 1.0 | +| test.c:144:23:144:23 | x | 1.0 | +| test.c:145:12:145:32 | (int)... | 1.0 | +| test.c:145:17:145:32 | (unsigned char)... | 1.0 | +| test.c:145:32:145:32 | x | 1.0 | +| test.c:146:12:146:33 | (int)... | 1.0 | +| test.c:146:17:146:33 | (unsigned short)... | 1.0 | +| test.c:146:33:146:33 | x | 1.0 | +| test.c:147:12:147:31 | (int)... | 1.0 | +| test.c:147:17:147:31 | (unsigned int)... | 1.0 | +| test.c:147:31:147:31 | x | 1.0 | +| test.c:148:13:148:13 | (char)... | 1.0 | +| test.c:148:13:148:13 | x | 1.0 | +| test.c:149:23:149:23 | (unsigned short)... | 1.0 | +| test.c:149:23:149:23 | x | 1.0 | +| test.c:150:10:150:11 | x0 | 1.0 | +| test.c:150:10:150:16 | ... + ... | 1.0 | +| test.c:150:10:150:21 | ... + ... | 1.0 | +| test.c:150:10:150:26 | ... + ... | 1.0 | +| test.c:150:10:150:31 | ... + ... | 1.0 | +| test.c:150:10:150:36 | ... + ... | 1.0 | +| test.c:150:15:150:16 | x1 | 1.0 | +| test.c:150:20:150:21 | x2 | 1.0 | +| test.c:150:25:150:26 | x3 | 1.0 | +| test.c:150:30:150:31 | (int)... | 1.0 | +| test.c:150:30:150:31 | c0 | 1.0 | +| test.c:150:35:150:36 | (int)... | 1.0 | +| test.c:150:35:150:36 | s0 | 1.0 | +| test.c:154:10:154:31 | (...) | 1.0 | +| test.c:154:10:154:40 | ... ? ... : ... | 1.0 | +| test.c:154:11:154:11 | x | 1.0 | +| test.c:154:11:154:15 | ... > ... | 1.0 | +| test.c:154:11:154:30 | ... && ... | 1.0 | +| test.c:154:15:154:15 | 0 | 1.0 | +| test.c:154:15:154:15 | (long long)... | 1.0 | +| test.c:154:20:154:20 | x | 1.0 | +| test.c:154:20:154:30 | ... == ... | 1.0 | +| test.c:154:25:154:30 | (int)... | 1.0 | +| test.c:154:25:154:30 | (long long)... | 1.0 | +| test.c:154:30:154:30 | x | 1.0 | +| test.c:154:35:154:35 | x | 1.0 | +| test.c:154:39:154:40 | (long long)... | 1.0 | +| test.c:154:39:154:40 | - ... | 1.0 | +| test.c:154:40:154:40 | 1 | 1.0 | +| test.c:159:14:159:15 | 0 | 1.0 | +| test.c:161:7:161:7 | 3 | 1.0 | +| test.c:161:7:161:12 | ... <= ... | 1.0 | +| test.c:161:7:161:23 | ... && ... | 1.0 | +| test.c:161:12:161:12 | a | 1.0 | +| test.c:161:17:161:17 | a | 1.0 | +| test.c:161:17:161:23 | ... <= ... | 1.0 | +| test.c:161:22:161:23 | 11 | 1.0 | +| test.c:162:13:162:14 | + ... | 1.0 | +| test.c:162:14:162:14 | a | 1.0 | +| test.c:163:13:163:14 | - ... | 1.0 | +| test.c:163:14:163:14 | a | 1.0 | +| test.c:164:5:164:9 | total | 1.0 | +| test.c:164:5:164:16 | ... += ... | 1.0 | +| test.c:164:14:164:14 | b | 1.0 | +| test.c:164:14:164:16 | ... + ... | 1.0 | +| test.c:164:16:164:16 | c | 1.0 | +| test.c:166:7:166:7 | 0 | 1.0 | +| test.c:166:7:166:12 | ... <= ... | 1.0 | +| test.c:166:7:166:23 | ... && ... | 1.0 | +| test.c:166:12:166:12 | a | 2.0 | +| test.c:166:17:166:17 | a | 2.0 | +| test.c:166:17:166:23 | ... <= ... | 1.0 | +| test.c:166:22:166:23 | 11 | 1.0 | +| test.c:167:13:167:14 | + ... | 2.0 | +| test.c:167:14:167:14 | a | 2.0 | +| test.c:168:13:168:14 | - ... | 2.0 | +| test.c:168:14:168:14 | a | 2.0 | +| test.c:169:5:169:9 | total | 2.0 | +| test.c:169:5:169:16 | ... += ... | 8.0 | +| test.c:169:14:169:14 | b | 2.0 | +| test.c:169:14:169:16 | ... + ... | 4.0 | +| test.c:169:16:169:16 | c | 2.0 | +| test.c:171:7:171:8 | - ... | 1.0 | +| test.c:171:7:171:13 | ... <= ... | 1.0 | +| test.c:171:7:171:24 | ... && ... | 1.0 | +| test.c:171:8:171:8 | 7 | 1.0 | +| test.c:171:13:171:13 | a | 3.0 | +| test.c:171:18:171:18 | a | 3.0 | +| test.c:171:18:171:24 | ... <= ... | 1.0 | +| test.c:171:23:171:24 | 11 | 1.0 | +| test.c:172:13:172:14 | + ... | 3.0 | +| test.c:172:14:172:14 | a | 3.0 | +| test.c:173:13:173:14 | - ... | 3.0 | +| test.c:173:14:173:14 | a | 3.0 | +| test.c:174:5:174:9 | total | 10.0 | +| test.c:174:5:174:16 | ... += ... | 90.0 | +| test.c:174:14:174:14 | b | 3.0 | +| test.c:174:14:174:16 | ... + ... | 9.0 | +| test.c:174:16:174:16 | c | 3.0 | +| test.c:176:7:176:8 | - ... | 1.0 | +| test.c:176:7:176:13 | ... <= ... | 1.0 | +| test.c:176:7:176:23 | ... && ... | 1.0 | +| test.c:176:8:176:8 | 7 | 1.0 | +| test.c:176:13:176:13 | a | 4.0 | +| test.c:176:18:176:18 | a | 4.0 | +| test.c:176:18:176:23 | ... <= ... | 1.0 | +| test.c:176:23:176:23 | 1 | 1.0 | +| test.c:177:13:177:14 | + ... | 4.0 | +| test.c:177:14:177:14 | a | 4.0 | +| test.c:178:13:178:14 | - ... | 4.0 | +| test.c:178:14:178:14 | a | 4.0 | +| test.c:179:5:179:9 | total | 100.0 | +| test.c:179:5:179:16 | ... += ... | 1600.0 | +| test.c:179:14:179:14 | b | 4.0 | +| test.c:179:14:179:16 | ... + ... | 16.0 | +| test.c:179:16:179:16 | c | 4.0 | +| test.c:181:7:181:8 | - ... | 1.0 | +| test.c:181:7:181:13 | ... <= ... | 1.0 | +| test.c:181:7:181:23 | ... && ... | 1.0 | +| test.c:181:8:181:8 | 7 | 1.0 | +| test.c:181:13:181:13 | a | 5.0 | +| test.c:181:18:181:18 | a | 5.0 | +| test.c:181:18:181:23 | ... <= ... | 1.0 | +| test.c:181:23:181:23 | 0 | 1.0 | +| test.c:182:13:182:14 | + ... | 5.0 | +| test.c:182:14:182:14 | a | 5.0 | +| test.c:183:13:183:14 | - ... | 5.0 | +| test.c:183:14:183:14 | a | 5.0 | +| test.c:184:5:184:9 | total | 1700.0 | +| test.c:184:5:184:16 | ... += ... | 42500.0 | +| test.c:184:14:184:14 | b | 5.0 | +| test.c:184:14:184:16 | ... + ... | 25.0 | +| test.c:184:16:184:16 | c | 5.0 | +| test.c:186:7:186:8 | - ... | 1.0 | +| test.c:186:7:186:13 | ... <= ... | 1.0 | +| test.c:186:7:186:24 | ... && ... | 1.0 | +| test.c:186:8:186:8 | 7 | 1.0 | +| test.c:186:13:186:13 | a | 6.0 | +| test.c:186:18:186:18 | a | 6.0 | +| test.c:186:18:186:24 | ... <= ... | 1.0 | +| test.c:186:23:186:24 | - ... | 1.0 | +| test.c:186:24:186:24 | 2 | 1.0 | +| test.c:187:13:187:14 | + ... | 6.0 | +| test.c:187:14:187:14 | a | 6.0 | +| test.c:188:13:188:14 | - ... | 6.0 | +| test.c:188:14:188:14 | a | 6.0 | +| test.c:189:5:189:9 | total | 44200.0 | +| test.c:189:5:189:16 | ... += ... | 1591200.0 | +| test.c:189:14:189:14 | b | 6.0 | +| test.c:189:14:189:16 | ... + ... | 36.0 | +| test.c:189:16:189:16 | c | 6.0 | +| test.c:192:10:192:14 | total | 1635400.0 | +| test.c:198:14:198:15 | 0 | 1.0 | +| test.c:200:7:200:7 | 3 | 1.0 | +| test.c:200:7:200:12 | ... <= ... | 1.0 | +| test.c:200:7:200:23 | ... && ... | 1.0 | +| test.c:200:7:200:33 | ... && ... | 1.0 | +| test.c:200:7:200:44 | ... && ... | 1.0 | +| test.c:200:12:200:12 | a | 1.0 | +| test.c:200:17:200:17 | a | 1.0 | +| test.c:200:17:200:23 | ... <= ... | 1.0 | +| test.c:200:22:200:23 | 11 | 1.0 | +| test.c:200:28:200:28 | 5 | 1.0 | +| test.c:200:28:200:33 | ... <= ... | 1.0 | +| test.c:200:33:200:33 | b | 1.0 | +| test.c:200:38:200:38 | b | 1.0 | +| test.c:200:38:200:44 | ... <= ... | 1.0 | +| test.c:200:43:200:44 | 23 | 1.0 | +| test.c:201:13:201:13 | a | 1.0 | +| test.c:201:13:201:15 | ... * ... | 1.0 | +| test.c:201:15:201:15 | b | 1.0 | +| test.c:202:5:202:9 | total | 1.0 | +| test.c:202:5:202:14 | ... += ... | 1.0 | +| test.c:202:14:202:14 | r | 1.0 | +| test.c:204:7:204:7 | 3 | 1.0 | +| test.c:204:7:204:12 | ... <= ... | 1.0 | +| test.c:204:7:204:23 | ... && ... | 1.0 | +| test.c:204:7:204:33 | ... && ... | 1.0 | +| test.c:204:7:204:44 | ... && ... | 1.0 | +| test.c:204:12:204:12 | a | 2.0 | +| test.c:204:17:204:17 | a | 2.0 | +| test.c:204:17:204:23 | ... <= ... | 1.0 | +| test.c:204:22:204:23 | 11 | 1.0 | +| test.c:204:28:204:28 | 0 | 1.0 | +| test.c:204:28:204:33 | ... <= ... | 1.0 | +| test.c:204:33:204:33 | b | 3.0 | +| test.c:204:38:204:38 | b | 3.0 | +| test.c:204:38:204:44 | ... <= ... | 1.0 | +| test.c:204:43:204:44 | 23 | 1.0 | +| test.c:205:13:205:13 | a | 2.0 | +| test.c:205:13:205:15 | ... * ... | 1.0 | +| test.c:205:15:205:15 | b | 3.0 | +| test.c:206:5:206:9 | total | 2.0 | +| test.c:206:5:206:14 | ... += ... | 2.0 | +| test.c:206:14:206:14 | r | 1.0 | +| test.c:208:7:208:7 | 3 | 1.0 | +| test.c:208:7:208:12 | ... <= ... | 1.0 | +| test.c:208:7:208:23 | ... && ... | 1.0 | +| test.c:208:7:208:35 | ... && ... | 1.0 | +| test.c:208:7:208:46 | ... && ... | 1.0 | +| test.c:208:12:208:12 | a | 3.0 | +| test.c:208:17:208:17 | a | 3.0 | +| test.c:208:17:208:23 | ... <= ... | 1.0 | +| test.c:208:22:208:23 | 11 | 1.0 | +| test.c:208:28:208:30 | - ... | 1.0 | +| test.c:208:28:208:35 | ... <= ... | 1.0 | +| test.c:208:29:208:30 | 13 | 1.0 | +| test.c:208:35:208:35 | b | 7.0 | +| test.c:208:40:208:40 | b | 7.0 | +| test.c:208:40:208:46 | ... <= ... | 1.0 | +| test.c:208:45:208:46 | 23 | 1.0 | +| test.c:209:13:209:13 | a | 3.0 | +| test.c:209:13:209:15 | ... * ... | 1.0 | +| test.c:209:15:209:15 | b | 7.0 | +| test.c:210:5:210:9 | total | 4.0 | +| test.c:210:5:210:14 | ... += ... | 4.0 | +| test.c:210:14:210:14 | r | 1.0 | +| test.c:212:7:212:7 | 3 | 1.0 | +| test.c:212:7:212:12 | ... <= ... | 1.0 | +| test.c:212:7:212:23 | ... && ... | 1.0 | +| test.c:212:7:212:35 | ... && ... | 1.0 | +| test.c:212:7:212:45 | ... && ... | 1.0 | +| test.c:212:12:212:12 | a | 4.0 | +| test.c:212:17:212:17 | a | 4.0 | +| test.c:212:17:212:23 | ... <= ... | 1.0 | +| test.c:212:22:212:23 | 11 | 1.0 | +| test.c:212:28:212:30 | - ... | 1.0 | +| test.c:212:28:212:35 | ... <= ... | 1.0 | +| test.c:212:29:212:30 | 13 | 1.0 | +| test.c:212:35:212:35 | b | 15.0 | +| test.c:212:40:212:40 | b | 15.0 | +| test.c:212:40:212:45 | ... <= ... | 1.0 | +| test.c:212:45:212:45 | 0 | 1.0 | +| test.c:213:13:213:13 | a | 4.0 | +| test.c:213:13:213:15 | ... * ... | 1.0 | +| test.c:213:15:213:15 | b | 15.0 | +| test.c:214:5:214:9 | total | 8.0 | +| test.c:214:5:214:14 | ... += ... | 8.0 | +| test.c:214:14:214:14 | r | 1.0 | +| test.c:216:7:216:7 | 3 | 1.0 | +| test.c:216:7:216:12 | ... <= ... | 1.0 | +| test.c:216:7:216:23 | ... && ... | 1.0 | +| test.c:216:7:216:35 | ... && ... | 1.0 | +| test.c:216:7:216:46 | ... && ... | 1.0 | +| test.c:216:12:216:12 | a | 5.0 | +| test.c:216:17:216:17 | a | 5.0 | +| test.c:216:17:216:23 | ... <= ... | 1.0 | +| test.c:216:22:216:23 | 11 | 1.0 | +| test.c:216:28:216:30 | - ... | 1.0 | +| test.c:216:28:216:35 | ... <= ... | 1.0 | +| test.c:216:29:216:30 | 13 | 1.0 | +| test.c:216:35:216:35 | b | 31.0 | +| test.c:216:40:216:40 | b | 31.0 | +| test.c:216:40:216:46 | ... <= ... | 1.0 | +| test.c:216:45:216:46 | - ... | 1.0 | +| test.c:216:46:216:46 | 7 | 1.0 | +| test.c:217:13:217:13 | a | 5.0 | +| test.c:217:13:217:15 | ... * ... | 1.0 | +| test.c:217:15:217:15 | b | 31.0 | +| test.c:218:5:218:9 | total | 16.0 | +| test.c:218:5:218:14 | ... += ... | 16.0 | +| test.c:218:14:218:14 | r | 1.0 | +| test.c:221:10:221:14 | total | 32.0 | +| test.c:226:14:226:15 | 0 | 1.0 | +| test.c:228:7:228:7 | 0 | 1.0 | +| test.c:228:7:228:12 | ... <= ... | 1.0 | +| test.c:228:7:228:23 | ... && ... | 1.0 | +| test.c:228:7:228:33 | ... && ... | 1.0 | +| test.c:228:7:228:44 | ... && ... | 1.0 | +| test.c:228:12:228:12 | a | 1.0 | +| test.c:228:17:228:17 | a | 1.0 | +| test.c:228:17:228:23 | ... <= ... | 1.0 | +| test.c:228:22:228:23 | 11 | 1.0 | +| test.c:228:28:228:28 | 5 | 1.0 | +| test.c:228:28:228:33 | ... <= ... | 1.0 | +| test.c:228:33:228:33 | b | 1.0 | +| test.c:228:38:228:38 | b | 1.0 | +| test.c:228:38:228:44 | ... <= ... | 1.0 | +| test.c:228:43:228:44 | 23 | 1.0 | +| test.c:229:13:229:13 | a | 1.0 | +| test.c:229:13:229:15 | ... * ... | 1.0 | +| test.c:229:15:229:15 | b | 1.0 | +| test.c:230:5:230:9 | total | 1.0 | +| test.c:230:5:230:14 | ... += ... | 1.0 | +| test.c:230:14:230:14 | r | 1.0 | +| test.c:232:7:232:7 | 0 | 1.0 | +| test.c:232:7:232:12 | ... <= ... | 1.0 | +| test.c:232:7:232:23 | ... && ... | 1.0 | +| test.c:232:7:232:33 | ... && ... | 1.0 | +| test.c:232:7:232:44 | ... && ... | 1.0 | +| test.c:232:12:232:12 | a | 2.0 | +| test.c:232:17:232:17 | a | 2.0 | +| test.c:232:17:232:23 | ... <= ... | 1.0 | +| test.c:232:22:232:23 | 11 | 1.0 | +| test.c:232:28:232:28 | 0 | 1.0 | +| test.c:232:28:232:33 | ... <= ... | 1.0 | +| test.c:232:33:232:33 | b | 3.0 | +| test.c:232:38:232:38 | b | 3.0 | +| test.c:232:38:232:44 | ... <= ... | 1.0 | +| test.c:232:43:232:44 | 23 | 1.0 | +| test.c:233:13:233:13 | a | 2.0 | +| test.c:233:13:233:15 | ... * ... | 1.0 | +| test.c:233:15:233:15 | b | 3.0 | +| test.c:234:5:234:9 | total | 2.0 | +| test.c:234:5:234:14 | ... += ... | 2.0 | +| test.c:234:14:234:14 | r | 1.0 | +| test.c:236:7:236:7 | 0 | 1.0 | +| test.c:236:7:236:12 | ... <= ... | 1.0 | +| test.c:236:7:236:23 | ... && ... | 1.0 | +| test.c:236:7:236:35 | ... && ... | 1.0 | +| test.c:236:7:236:46 | ... && ... | 1.0 | +| test.c:236:12:236:12 | a | 3.0 | +| test.c:236:17:236:17 | a | 3.0 | +| test.c:236:17:236:23 | ... <= ... | 1.0 | +| test.c:236:22:236:23 | 11 | 1.0 | +| test.c:236:28:236:30 | - ... | 1.0 | +| test.c:236:28:236:35 | ... <= ... | 1.0 | +| test.c:236:29:236:30 | 13 | 1.0 | +| test.c:236:35:236:35 | b | 7.0 | +| test.c:236:40:236:40 | b | 7.0 | +| test.c:236:40:236:46 | ... <= ... | 1.0 | +| test.c:236:45:236:46 | 23 | 1.0 | +| test.c:237:13:237:13 | a | 3.0 | +| test.c:237:13:237:15 | ... * ... | 1.0 | +| test.c:237:15:237:15 | b | 7.0 | +| test.c:238:5:238:9 | total | 4.0 | +| test.c:238:5:238:14 | ... += ... | 4.0 | +| test.c:238:14:238:14 | r | 1.0 | +| test.c:240:7:240:7 | 0 | 1.0 | +| test.c:240:7:240:12 | ... <= ... | 1.0 | +| test.c:240:7:240:23 | ... && ... | 1.0 | +| test.c:240:7:240:35 | ... && ... | 1.0 | +| test.c:240:7:240:45 | ... && ... | 1.0 | +| test.c:240:12:240:12 | a | 4.0 | +| test.c:240:17:240:17 | a | 4.0 | +| test.c:240:17:240:23 | ... <= ... | 1.0 | +| test.c:240:22:240:23 | 11 | 1.0 | +| test.c:240:28:240:30 | - ... | 1.0 | +| test.c:240:28:240:35 | ... <= ... | 1.0 | +| test.c:240:29:240:30 | 13 | 1.0 | +| test.c:240:35:240:35 | b | 15.0 | +| test.c:240:40:240:40 | b | 15.0 | +| test.c:240:40:240:45 | ... <= ... | 1.0 | +| test.c:240:45:240:45 | 0 | 1.0 | +| test.c:241:13:241:13 | a | 4.0 | +| test.c:241:13:241:15 | ... * ... | 1.0 | +| test.c:241:15:241:15 | b | 15.0 | +| test.c:242:5:242:9 | total | 8.0 | +| test.c:242:5:242:14 | ... += ... | 8.0 | +| test.c:242:14:242:14 | r | 1.0 | +| test.c:244:7:244:7 | 0 | 1.0 | +| test.c:244:7:244:12 | ... <= ... | 1.0 | +| test.c:244:7:244:23 | ... && ... | 1.0 | +| test.c:244:7:244:35 | ... && ... | 1.0 | +| test.c:244:7:244:46 | ... && ... | 1.0 | +| test.c:244:12:244:12 | a | 5.0 | +| test.c:244:17:244:17 | a | 5.0 | +| test.c:244:17:244:23 | ... <= ... | 1.0 | +| test.c:244:22:244:23 | 11 | 1.0 | +| test.c:244:28:244:30 | - ... | 1.0 | +| test.c:244:28:244:35 | ... <= ... | 1.0 | +| test.c:244:29:244:30 | 13 | 1.0 | +| test.c:244:35:244:35 | b | 31.0 | +| test.c:244:40:244:40 | b | 31.0 | +| test.c:244:40:244:46 | ... <= ... | 1.0 | +| test.c:244:45:244:46 | - ... | 1.0 | +| test.c:244:46:244:46 | 7 | 1.0 | +| test.c:245:13:245:13 | a | 5.0 | +| test.c:245:13:245:15 | ... * ... | 1.0 | +| test.c:245:15:245:15 | b | 31.0 | +| test.c:246:5:246:9 | total | 16.0 | +| test.c:246:5:246:14 | ... += ... | 16.0 | +| test.c:246:14:246:14 | r | 1.0 | +| test.c:249:10:249:14 | total | 32.0 | +| test.c:254:14:254:15 | 0 | 1.0 | +| test.c:256:7:256:9 | - ... | 1.0 | +| test.c:256:7:256:14 | ... <= ... | 1.0 | +| test.c:256:7:256:25 | ... && ... | 1.0 | +| test.c:256:7:256:35 | ... && ... | 1.0 | +| test.c:256:7:256:46 | ... && ... | 1.0 | +| test.c:256:8:256:9 | 17 | 1.0 | +| test.c:256:14:256:14 | a | 1.0 | +| test.c:256:19:256:19 | a | 1.0 | +| test.c:256:19:256:25 | ... <= ... | 1.0 | +| test.c:256:24:256:25 | 11 | 1.0 | +| test.c:256:30:256:30 | 5 | 1.0 | +| test.c:256:30:256:35 | ... <= ... | 1.0 | +| test.c:256:35:256:35 | b | 1.0 | +| test.c:256:40:256:40 | b | 1.0 | +| test.c:256:40:256:46 | ... <= ... | 1.0 | +| test.c:256:45:256:46 | 23 | 1.0 | +| test.c:257:13:257:13 | a | 1.0 | +| test.c:257:13:257:15 | ... * ... | 1.0 | +| test.c:257:15:257:15 | b | 1.0 | +| test.c:258:5:258:9 | total | 1.0 | +| test.c:258:5:258:14 | ... += ... | 1.0 | +| test.c:258:14:258:14 | r | 1.0 | +| test.c:260:7:260:9 | - ... | 1.0 | +| test.c:260:7:260:14 | ... <= ... | 1.0 | +| test.c:260:7:260:25 | ... && ... | 1.0 | +| test.c:260:7:260:35 | ... && ... | 1.0 | +| test.c:260:7:260:46 | ... && ... | 1.0 | +| test.c:260:8:260:9 | 17 | 1.0 | +| test.c:260:14:260:14 | a | 2.0 | +| test.c:260:19:260:19 | a | 2.0 | +| test.c:260:19:260:25 | ... <= ... | 1.0 | +| test.c:260:24:260:25 | 11 | 1.0 | +| test.c:260:30:260:30 | 0 | 1.0 | +| test.c:260:30:260:35 | ... <= ... | 1.0 | +| test.c:260:35:260:35 | b | 3.0 | +| test.c:260:40:260:40 | b | 3.0 | +| test.c:260:40:260:46 | ... <= ... | 1.0 | +| test.c:260:45:260:46 | 23 | 1.0 | +| test.c:261:13:261:13 | a | 2.0 | +| test.c:261:13:261:15 | ... * ... | 1.0 | +| test.c:261:15:261:15 | b | 3.0 | +| test.c:262:5:262:9 | total | 2.0 | +| test.c:262:5:262:14 | ... += ... | 2.0 | +| test.c:262:14:262:14 | r | 1.0 | +| test.c:264:7:264:9 | - ... | 1.0 | +| test.c:264:7:264:14 | ... <= ... | 1.0 | +| test.c:264:7:264:25 | ... && ... | 1.0 | +| test.c:264:7:264:37 | ... && ... | 1.0 | +| test.c:264:7:264:48 | ... && ... | 1.0 | +| test.c:264:8:264:9 | 17 | 1.0 | +| test.c:264:14:264:14 | a | 3.0 | +| test.c:264:19:264:19 | a | 3.0 | +| test.c:264:19:264:25 | ... <= ... | 1.0 | +| test.c:264:24:264:25 | 11 | 1.0 | +| test.c:264:30:264:32 | - ... | 1.0 | +| test.c:264:30:264:37 | ... <= ... | 1.0 | +| test.c:264:31:264:32 | 13 | 1.0 | +| test.c:264:37:264:37 | b | 7.0 | +| test.c:264:42:264:42 | b | 7.0 | +| test.c:264:42:264:48 | ... <= ... | 1.0 | +| test.c:264:47:264:48 | 23 | 1.0 | +| test.c:265:13:265:13 | a | 3.0 | +| test.c:265:13:265:15 | ... * ... | 1.0 | +| test.c:265:15:265:15 | b | 7.0 | +| test.c:266:5:266:9 | total | 4.0 | +| test.c:266:5:266:14 | ... += ... | 4.0 | +| test.c:266:14:266:14 | r | 1.0 | +| test.c:268:7:268:9 | - ... | 1.0 | +| test.c:268:7:268:14 | ... <= ... | 1.0 | +| test.c:268:7:268:25 | ... && ... | 1.0 | +| test.c:268:7:268:37 | ... && ... | 1.0 | +| test.c:268:7:268:47 | ... && ... | 1.0 | +| test.c:268:8:268:9 | 17 | 1.0 | +| test.c:268:14:268:14 | a | 4.0 | +| test.c:268:19:268:19 | a | 4.0 | +| test.c:268:19:268:25 | ... <= ... | 1.0 | +| test.c:268:24:268:25 | 11 | 1.0 | +| test.c:268:30:268:32 | - ... | 1.0 | +| test.c:268:30:268:37 | ... <= ... | 1.0 | +| test.c:268:31:268:32 | 13 | 1.0 | +| test.c:268:37:268:37 | b | 15.0 | +| test.c:268:42:268:42 | b | 15.0 | +| test.c:268:42:268:47 | ... <= ... | 1.0 | +| test.c:268:47:268:47 | 0 | 1.0 | +| test.c:269:13:269:13 | a | 4.0 | +| test.c:269:13:269:15 | ... * ... | 1.0 | +| test.c:269:15:269:15 | b | 15.0 | +| test.c:270:5:270:9 | total | 8.0 | +| test.c:270:5:270:14 | ... += ... | 8.0 | +| test.c:270:14:270:14 | r | 1.0 | +| test.c:272:7:272:9 | - ... | 1.0 | +| test.c:272:7:272:14 | ... <= ... | 1.0 | +| test.c:272:7:272:25 | ... && ... | 1.0 | +| test.c:272:7:272:37 | ... && ... | 1.0 | +| test.c:272:7:272:48 | ... && ... | 1.0 | +| test.c:272:8:272:9 | 17 | 1.0 | +| test.c:272:14:272:14 | a | 5.0 | +| test.c:272:19:272:19 | a | 5.0 | +| test.c:272:19:272:25 | ... <= ... | 1.0 | +| test.c:272:24:272:25 | 11 | 1.0 | +| test.c:272:30:272:32 | - ... | 1.0 | +| test.c:272:30:272:37 | ... <= ... | 1.0 | +| test.c:272:31:272:32 | 13 | 1.0 | +| test.c:272:37:272:37 | b | 31.0 | +| test.c:272:42:272:42 | b | 31.0 | +| test.c:272:42:272:48 | ... <= ... | 1.0 | +| test.c:272:47:272:48 | - ... | 1.0 | +| test.c:272:48:272:48 | 7 | 1.0 | +| test.c:273:13:273:13 | a | 5.0 | +| test.c:273:13:273:15 | ... * ... | 1.0 | +| test.c:273:15:273:15 | b | 31.0 | +| test.c:274:5:274:9 | total | 16.0 | +| test.c:274:5:274:14 | ... += ... | 16.0 | +| test.c:274:14:274:14 | r | 1.0 | +| test.c:277:10:277:14 | total | 32.0 | +| test.c:282:14:282:15 | 0 | 1.0 | +| test.c:284:7:284:9 | - ... | 1.0 | +| test.c:284:7:284:14 | ... <= ... | 1.0 | +| test.c:284:7:284:24 | ... && ... | 1.0 | +| test.c:284:7:284:34 | ... && ... | 1.0 | +| test.c:284:7:284:45 | ... && ... | 1.0 | +| test.c:284:8:284:9 | 17 | 1.0 | +| test.c:284:14:284:14 | a | 1.0 | +| test.c:284:19:284:19 | a | 1.0 | +| test.c:284:19:284:24 | ... <= ... | 1.0 | +| test.c:284:24:284:24 | 0 | 1.0 | +| test.c:284:29:284:29 | 5 | 1.0 | +| test.c:284:29:284:34 | ... <= ... | 1.0 | +| test.c:284:34:284:34 | b | 1.0 | +| test.c:284:39:284:39 | b | 1.0 | +| test.c:284:39:284:45 | ... <= ... | 1.0 | +| test.c:284:44:284:45 | 23 | 1.0 | +| test.c:285:13:285:13 | a | 1.0 | +| test.c:285:13:285:15 | ... * ... | 1.0 | +| test.c:285:15:285:15 | b | 1.0 | +| test.c:286:5:286:9 | total | 1.0 | +| test.c:286:5:286:14 | ... += ... | 1.0 | +| test.c:286:14:286:14 | r | 1.0 | +| test.c:288:7:288:9 | - ... | 1.0 | +| test.c:288:7:288:14 | ... <= ... | 1.0 | +| test.c:288:7:288:24 | ... && ... | 1.0 | +| test.c:288:7:288:34 | ... && ... | 1.0 | +| test.c:288:7:288:45 | ... && ... | 1.0 | +| test.c:288:8:288:9 | 17 | 1.0 | +| test.c:288:14:288:14 | a | 2.0 | +| test.c:288:19:288:19 | a | 2.0 | +| test.c:288:19:288:24 | ... <= ... | 1.0 | +| test.c:288:24:288:24 | 0 | 1.0 | +| test.c:288:29:288:29 | 0 | 1.0 | +| test.c:288:29:288:34 | ... <= ... | 1.0 | +| test.c:288:34:288:34 | b | 3.0 | +| test.c:288:39:288:39 | b | 3.0 | +| test.c:288:39:288:45 | ... <= ... | 1.0 | +| test.c:288:44:288:45 | 23 | 1.0 | +| test.c:289:13:289:13 | a | 2.0 | +| test.c:289:13:289:15 | ... * ... | 1.0 | +| test.c:289:15:289:15 | b | 3.0 | +| test.c:290:5:290:9 | total | 2.0 | +| test.c:290:5:290:14 | ... += ... | 2.0 | +| test.c:290:14:290:14 | r | 1.0 | +| test.c:292:7:292:9 | - ... | 1.0 | +| test.c:292:7:292:14 | ... <= ... | 1.0 | +| test.c:292:7:292:24 | ... && ... | 1.0 | +| test.c:292:7:292:36 | ... && ... | 1.0 | +| test.c:292:7:292:47 | ... && ... | 1.0 | +| test.c:292:8:292:9 | 17 | 1.0 | +| test.c:292:14:292:14 | a | 3.0 | +| test.c:292:19:292:19 | a | 3.0 | +| test.c:292:19:292:24 | ... <= ... | 1.0 | +| test.c:292:24:292:24 | 0 | 1.0 | +| test.c:292:29:292:31 | - ... | 1.0 | +| test.c:292:29:292:36 | ... <= ... | 1.0 | +| test.c:292:30:292:31 | 13 | 1.0 | +| test.c:292:36:292:36 | b | 7.0 | +| test.c:292:41:292:41 | b | 7.0 | +| test.c:292:41:292:47 | ... <= ... | 1.0 | +| test.c:292:46:292:47 | 23 | 1.0 | +| test.c:293:13:293:13 | a | 3.0 | +| test.c:293:13:293:15 | ... * ... | 1.0 | +| test.c:293:15:293:15 | b | 7.0 | +| test.c:294:5:294:9 | total | 4.0 | +| test.c:294:5:294:14 | ... += ... | 4.0 | +| test.c:294:14:294:14 | r | 1.0 | +| test.c:296:7:296:9 | - ... | 1.0 | +| test.c:296:7:296:14 | ... <= ... | 1.0 | +| test.c:296:7:296:24 | ... && ... | 1.0 | +| test.c:296:7:296:36 | ... && ... | 1.0 | +| test.c:296:7:296:46 | ... && ... | 1.0 | +| test.c:296:8:296:9 | 17 | 1.0 | +| test.c:296:14:296:14 | a | 4.0 | +| test.c:296:19:296:19 | a | 4.0 | +| test.c:296:19:296:24 | ... <= ... | 1.0 | +| test.c:296:24:296:24 | 0 | 1.0 | +| test.c:296:29:296:31 | - ... | 1.0 | +| test.c:296:29:296:36 | ... <= ... | 1.0 | +| test.c:296:30:296:31 | 13 | 1.0 | +| test.c:296:36:296:36 | b | 15.0 | +| test.c:296:41:296:41 | b | 15.0 | +| test.c:296:41:296:46 | ... <= ... | 1.0 | +| test.c:296:46:296:46 | 0 | 1.0 | +| test.c:297:13:297:13 | a | 4.0 | +| test.c:297:13:297:15 | ... * ... | 1.0 | +| test.c:297:15:297:15 | b | 15.0 | +| test.c:298:5:298:9 | total | 8.0 | +| test.c:298:5:298:14 | ... += ... | 8.0 | +| test.c:298:14:298:14 | r | 1.0 | +| test.c:300:7:300:9 | - ... | 1.0 | +| test.c:300:7:300:14 | ... <= ... | 1.0 | +| test.c:300:7:300:24 | ... && ... | 1.0 | +| test.c:300:7:300:36 | ... && ... | 1.0 | +| test.c:300:7:300:47 | ... && ... | 1.0 | +| test.c:300:8:300:9 | 17 | 1.0 | +| test.c:300:14:300:14 | a | 5.0 | +| test.c:300:19:300:19 | a | 5.0 | +| test.c:300:19:300:24 | ... <= ... | 1.0 | +| test.c:300:24:300:24 | 0 | 1.0 | +| test.c:300:29:300:31 | - ... | 1.0 | +| test.c:300:29:300:36 | ... <= ... | 1.0 | +| test.c:300:30:300:31 | 13 | 1.0 | +| test.c:300:36:300:36 | b | 31.0 | +| test.c:300:41:300:41 | b | 31.0 | +| test.c:300:41:300:47 | ... <= ... | 1.0 | +| test.c:300:46:300:47 | - ... | 1.0 | +| test.c:300:47:300:47 | 7 | 1.0 | +| test.c:301:13:301:13 | a | 5.0 | +| test.c:301:13:301:15 | ... * ... | 1.0 | +| test.c:301:15:301:15 | b | 31.0 | +| test.c:302:5:302:9 | total | 16.0 | +| test.c:302:5:302:14 | ... += ... | 16.0 | +| test.c:302:14:302:14 | r | 1.0 | +| test.c:305:10:305:14 | total | 32.0 | +| test.c:310:14:310:15 | 0 | 1.0 | +| test.c:312:7:312:9 | - ... | 1.0 | +| test.c:312:7:312:14 | ... <= ... | 1.0 | +| test.c:312:7:312:25 | ... && ... | 1.0 | +| test.c:312:7:312:35 | ... && ... | 1.0 | +| test.c:312:7:312:46 | ... && ... | 1.0 | +| test.c:312:8:312:9 | 17 | 1.0 | +| test.c:312:14:312:14 | a | 1.0 | +| test.c:312:19:312:19 | a | 1.0 | +| test.c:312:19:312:25 | ... <= ... | 1.0 | +| test.c:312:24:312:25 | - ... | 1.0 | +| test.c:312:25:312:25 | 2 | 1.0 | +| test.c:312:30:312:30 | 5 | 1.0 | +| test.c:312:30:312:35 | ... <= ... | 1.0 | +| test.c:312:35:312:35 | b | 1.0 | +| test.c:312:40:312:40 | b | 1.0 | +| test.c:312:40:312:46 | ... <= ... | 1.0 | +| test.c:312:45:312:46 | 23 | 1.0 | +| test.c:313:13:313:13 | a | 1.0 | +| test.c:313:13:313:15 | ... * ... | 1.0 | +| test.c:313:15:313:15 | b | 1.0 | +| test.c:314:5:314:9 | total | 1.0 | +| test.c:314:5:314:14 | ... += ... | 1.0 | +| test.c:314:14:314:14 | r | 1.0 | +| test.c:316:7:316:9 | - ... | 1.0 | +| test.c:316:7:316:14 | ... <= ... | 1.0 | +| test.c:316:7:316:25 | ... && ... | 1.0 | +| test.c:316:7:316:35 | ... && ... | 1.0 | +| test.c:316:7:316:46 | ... && ... | 1.0 | +| test.c:316:8:316:9 | 17 | 1.0 | +| test.c:316:14:316:14 | a | 2.0 | +| test.c:316:19:316:19 | a | 2.0 | +| test.c:316:19:316:25 | ... <= ... | 1.0 | +| test.c:316:24:316:25 | - ... | 1.0 | +| test.c:316:25:316:25 | 2 | 1.0 | +| test.c:316:30:316:30 | 0 | 1.0 | +| test.c:316:30:316:35 | ... <= ... | 1.0 | +| test.c:316:35:316:35 | b | 3.0 | +| test.c:316:40:316:40 | b | 3.0 | +| test.c:316:40:316:46 | ... <= ... | 1.0 | +| test.c:316:45:316:46 | 23 | 1.0 | +| test.c:317:13:317:13 | a | 2.0 | +| test.c:317:13:317:15 | ... * ... | 1.0 | +| test.c:317:15:317:15 | b | 3.0 | +| test.c:318:5:318:9 | total | 2.0 | +| test.c:318:5:318:14 | ... += ... | 2.0 | +| test.c:318:14:318:14 | r | 1.0 | +| test.c:320:7:320:9 | - ... | 1.0 | +| test.c:320:7:320:14 | ... <= ... | 1.0 | +| test.c:320:7:320:25 | ... && ... | 1.0 | +| test.c:320:7:320:37 | ... && ... | 1.0 | +| test.c:320:7:320:48 | ... && ... | 1.0 | +| test.c:320:8:320:9 | 17 | 1.0 | +| test.c:320:14:320:14 | a | 3.0 | +| test.c:320:19:320:19 | a | 3.0 | +| test.c:320:19:320:25 | ... <= ... | 1.0 | +| test.c:320:24:320:25 | - ... | 1.0 | +| test.c:320:25:320:25 | 2 | 1.0 | +| test.c:320:30:320:32 | - ... | 1.0 | +| test.c:320:30:320:37 | ... <= ... | 1.0 | +| test.c:320:31:320:32 | 13 | 1.0 | +| test.c:320:37:320:37 | b | 7.0 | +| test.c:320:42:320:42 | b | 7.0 | +| test.c:320:42:320:48 | ... <= ... | 1.0 | +| test.c:320:47:320:48 | 23 | 1.0 | +| test.c:321:13:321:13 | a | 3.0 | +| test.c:321:13:321:15 | ... * ... | 1.0 | +| test.c:321:15:321:15 | b | 7.0 | +| test.c:322:5:322:9 | total | 4.0 | +| test.c:322:5:322:14 | ... += ... | 4.0 | +| test.c:322:14:322:14 | r | 1.0 | +| test.c:324:7:324:9 | - ... | 1.0 | +| test.c:324:7:324:14 | ... <= ... | 1.0 | +| test.c:324:7:324:25 | ... && ... | 1.0 | +| test.c:324:7:324:37 | ... && ... | 1.0 | +| test.c:324:7:324:47 | ... && ... | 1.0 | +| test.c:324:8:324:9 | 17 | 1.0 | +| test.c:324:14:324:14 | a | 4.0 | +| test.c:324:19:324:19 | a | 4.0 | +| test.c:324:19:324:25 | ... <= ... | 1.0 | +| test.c:324:24:324:25 | - ... | 1.0 | +| test.c:324:25:324:25 | 2 | 1.0 | +| test.c:324:30:324:32 | - ... | 1.0 | +| test.c:324:30:324:37 | ... <= ... | 1.0 | +| test.c:324:31:324:32 | 13 | 1.0 | +| test.c:324:37:324:37 | b | 15.0 | +| test.c:324:42:324:42 | b | 15.0 | +| test.c:324:42:324:47 | ... <= ... | 1.0 | +| test.c:324:47:324:47 | 0 | 1.0 | +| test.c:325:13:325:13 | a | 4.0 | +| test.c:325:13:325:15 | ... * ... | 1.0 | +| test.c:325:15:325:15 | b | 15.0 | +| test.c:326:5:326:9 | total | 8.0 | +| test.c:326:5:326:14 | ... += ... | 8.0 | +| test.c:326:14:326:14 | r | 1.0 | +| test.c:328:7:328:9 | - ... | 1.0 | +| test.c:328:7:328:14 | ... <= ... | 1.0 | +| test.c:328:7:328:25 | ... && ... | 1.0 | +| test.c:328:7:328:37 | ... && ... | 1.0 | +| test.c:328:7:328:48 | ... && ... | 1.0 | +| test.c:328:8:328:9 | 17 | 1.0 | +| test.c:328:14:328:14 | a | 5.0 | +| test.c:328:19:328:19 | a | 5.0 | +| test.c:328:19:328:25 | ... <= ... | 1.0 | +| test.c:328:24:328:25 | - ... | 1.0 | +| test.c:328:25:328:25 | 2 | 1.0 | +| test.c:328:30:328:32 | - ... | 1.0 | +| test.c:328:30:328:37 | ... <= ... | 1.0 | +| test.c:328:31:328:32 | 13 | 1.0 | +| test.c:328:37:328:37 | b | 31.0 | +| test.c:328:42:328:42 | b | 31.0 | +| test.c:328:42:328:48 | ... <= ... | 1.0 | +| test.c:328:47:328:48 | - ... | 1.0 | +| test.c:328:48:328:48 | 7 | 1.0 | +| test.c:329:13:329:13 | a | 5.0 | +| test.c:329:13:329:15 | ... * ... | 1.0 | +| test.c:329:15:329:15 | b | 31.0 | +| test.c:330:5:330:9 | total | 16.0 | +| test.c:330:5:330:14 | ... += ... | 16.0 | +| test.c:330:14:330:14 | r | 1.0 | +| test.c:333:10:333:14 | total | 32.0 | +| test.c:337:13:337:14 | 0 | 1.0 | +| test.c:338:7:338:7 | x | 1.0 | +| test.c:338:7:338:11 | ... < ... | 1.0 | +| test.c:338:11:338:11 | 0 | 1.0 | +| test.c:339:12:339:13 | - ... | 1.0 | +| test.c:339:13:339:13 | 1 | 1.0 | +| test.c:342:10:342:10 | i | 13.0 | +| test.c:342:10:342:14 | ... < ... | 1.0 | +| test.c:342:14:342:14 | 3 | 1.0 | +| test.c:343:5:343:5 | i | 13.0 | +| test.c:343:5:343:7 | ... ++ | 13.0 | +| test.c:345:3:345:3 | d | 1.0 | +| test.c:345:3:345:7 | ... = ... | 13.0 | +| test.c:345:7:345:7 | i | 13.0 | +| test.c:346:7:346:7 | x | 1.0 | +| test.c:346:7:346:11 | ... < ... | 1.0 | +| test.c:346:11:346:11 | 0 | 1.0 | +| test.c:347:9:347:9 | d | 13.0 | +| test.c:347:9:347:14 | ... > ... | 1.0 | +| test.c:347:13:347:14 | - ... | 1.0 | +| test.c:347:14:347:14 | x | 1.0 | +| test.c:348:14:348:14 | 1 | 1.0 | +| test.c:351:10:351:10 | 0 | 1.0 | +| test.c:357:3:357:4 | y1 | 1.0 | +| test.c:357:3:357:23 | ... = ... | 1.0 | +| test.c:357:8:357:8 | x | 1.0 | +| test.c:357:8:357:14 | ... < ... | 1.0 | +| test.c:357:8:357:23 | ... ? ... : ... | 1.0 | +| test.c:357:12:357:14 | 100 | 1.0 | +| test.c:357:12:357:14 | (unsigned int)... | 1.0 | +| test.c:357:18:357:18 | x | 1.0 | +| test.c:357:22:357:23 | 10 | 1.0 | +| test.c:357:22:357:23 | (unsigned int)... | 1.0 | +| test.c:358:3:358:4 | y2 | 1.0 | +| test.c:358:3:358:24 | ... = ... | 2.0 | +| test.c:358:8:358:8 | x | 2.0 | +| test.c:358:8:358:15 | ... >= ... | 1.0 | +| test.c:358:8:358:24 | ... ? ... : ... | 2.0 | +| test.c:358:13:358:15 | 100 | 1.0 | +| test.c:358:13:358:15 | (unsigned int)... | 1.0 | +| test.c:358:19:358:20 | 10 | 1.0 | +| test.c:358:19:358:20 | (unsigned int)... | 1.0 | +| test.c:358:24:358:24 | x | 2.0 | +| test.c:359:3:359:4 | y3 | 1.0 | +| test.c:359:3:359:8 | ... = ... | 1.0 | +| test.c:359:8:359:8 | 0 | 1.0 | +| test.c:359:8:359:8 | (unsigned int)... | 1.0 | +| test.c:360:3:360:4 | y4 | 1.0 | +| test.c:360:3:360:8 | ... = ... | 1.0 | +| test.c:360:8:360:8 | 0 | 1.0 | +| test.c:360:8:360:8 | (unsigned int)... | 1.0 | +| test.c:361:3:361:4 | y5 | 1.0 | +| test.c:361:3:361:8 | ... = ... | 1.0 | +| test.c:361:8:361:8 | 0 | 1.0 | +| test.c:361:8:361:8 | (unsigned int)... | 1.0 | +| test.c:362:3:362:4 | y6 | 1.0 | +| test.c:362:3:362:8 | ... = ... | 1.0 | +| test.c:362:8:362:8 | 0 | 1.0 | +| test.c:362:8:362:8 | (unsigned int)... | 1.0 | +| test.c:363:3:363:4 | y7 | 1.0 | +| test.c:363:3:363:8 | ... = ... | 1.0 | +| test.c:363:8:363:8 | 0 | 1.0 | +| test.c:363:8:363:8 | (unsigned int)... | 1.0 | +| test.c:364:3:364:4 | y8 | 1.0 | +| test.c:364:3:364:8 | ... = ... | 1.0 | +| test.c:364:8:364:8 | 0 | 1.0 | +| test.c:364:8:364:8 | (unsigned int)... | 1.0 | +| test.c:365:7:365:7 | x | 4.0 | +| test.c:365:7:365:13 | ... < ... | 1.0 | +| test.c:365:11:365:13 | 300 | 1.0 | +| test.c:365:11:365:13 | (unsigned int)... | 1.0 | +| test.c:366:5:366:6 | y3 | 1.0 | +| test.c:366:5:366:15 | ... = ... | 4.0 | +| test.c:366:10:366:10 | x | 4.0 | +| test.c:366:10:366:15 | ... ? ... : ... | 4.0 | +| test.c:366:15:366:15 | 5 | 1.0 | +| test.c:366:15:366:15 | (unsigned int)... | 1.0 | +| test.c:367:5:367:6 | y4 | 1.0 | +| test.c:367:5:367:17 | ... = ... | 4.0 | +| test.c:367:10:367:10 | x | 4.0 | +| test.c:367:10:367:17 | ... ? ... : ... | 4.0 | +| test.c:367:15:367:17 | 500 | 1.0 | +| test.c:367:15:367:17 | (unsigned int)... | 1.0 | +| test.c:368:5:368:6 | y5 | 1.0 | +| test.c:368:5:368:21 | ... = ... | 4.0 | +| test.c:368:10:368:14 | (...) | 4.0 | +| test.c:368:10:368:21 | ... ? ... : ... | 4.0 | +| test.c:368:11:368:11 | x | 4.0 | +| test.c:368:11:368:13 | ... + ... | 4.0 | +| test.c:368:13:368:13 | 1 | 1.0 | +| test.c:368:13:368:13 | (unsigned int)... | 1.0 | +| test.c:368:19:368:21 | 500 | 1.0 | +| test.c:368:19:368:21 | (unsigned int)... | 1.0 | +| test.c:369:5:369:6 | y6 | 1.0 | +| test.c:369:5:369:36 | ... = ... | 4.0 | +| test.c:369:10:369:31 | (...) | 4.0 | +| test.c:369:10:369:36 | (unsigned int)... | 4.0 | +| test.c:369:10:369:36 | ... ? ... : ... | 4.0 | +| test.c:369:11:369:30 | (unsigned char)... | 4.0 | +| test.c:369:26:369:30 | (...) | 4.0 | +| test.c:369:27:369:27 | x | 4.0 | +| test.c:369:27:369:29 | ... + ... | 4.0 | +| test.c:369:29:369:29 | 1 | 1.0 | +| test.c:369:29:369:29 | (unsigned int)... | 1.0 | +| test.c:369:36:369:36 | 5 | 1.0 | +| test.c:370:5:370:6 | y7 | 1.0 | +| test.c:370:5:370:38 | ... = ... | 4.0 | +| test.c:370:10:370:31 | (...) | 4.0 | +| test.c:370:10:370:38 | (unsigned int)... | 4.0 | +| test.c:370:10:370:38 | ... ? ... : ... | 4.0 | +| test.c:370:11:370:30 | (unsigned char)... | 4.0 | +| test.c:370:26:370:30 | (...) | 4.0 | +| test.c:370:27:370:27 | x | 4.0 | +| test.c:370:27:370:29 | ... + ... | 4.0 | +| test.c:370:29:370:29 | 1 | 1.0 | +| test.c:370:29:370:29 | (unsigned int)... | 1.0 | +| test.c:370:36:370:38 | 500 | 1.0 | +| test.c:371:5:371:6 | y8 | 1.0 | +| test.c:371:5:371:39 | ... = ... | 4.0 | +| test.c:371:10:371:32 | (...) | 4.0 | +| test.c:371:10:371:39 | (unsigned int)... | 4.0 | +| test.c:371:10:371:39 | ... ? ... : ... | 4.0 | +| test.c:371:11:371:31 | (unsigned short)... | 4.0 | +| test.c:371:27:371:31 | (...) | 4.0 | +| test.c:371:28:371:28 | x | 4.0 | +| test.c:371:28:371:30 | ... + ... | 4.0 | +| test.c:371:30:371:30 | 1 | 1.0 | +| test.c:371:30:371:30 | (unsigned int)... | 1.0 | +| test.c:371:37:371:39 | 500 | 1.0 | +| test.c:373:10:373:11 | y1 | 1.0 | +| test.c:373:10:373:16 | ... + ... | 2.0 | +| test.c:373:10:373:21 | ... + ... | 10.0 | +| test.c:373:10:373:26 | ... + ... | 50.0 | +| test.c:373:10:373:31 | ... + ... | 250.0 | +| test.c:373:10:373:36 | ... + ... | 1250.0 | +| test.c:373:10:373:41 | ... + ... | 6250.0 | +| test.c:373:10:373:46 | ... + ... | 31250.0 | +| test.c:373:15:373:16 | y2 | 2.0 | +| test.c:373:20:373:21 | y3 | 5.0 | +| test.c:373:25:373:26 | y4 | 5.0 | +| test.c:373:30:373:31 | y5 | 5.0 | +| test.c:373:35:373:36 | y6 | 5.0 | +| test.c:373:40:373:41 | y7 | 5.0 | +| test.c:373:45:373:46 | y8 | 5.0 | +| test.c:379:3:379:4 | y1 | 1.0 | +| test.c:379:3:379:24 | ... = ... | 1.0 | +| test.c:379:8:379:8 | x | 1.0 | +| test.c:379:8:379:14 | ... > ... | 1.0 | +| test.c:379:8:379:24 | ... ? ... : ... | 1.0 | +| test.c:379:12:379:14 | 100 | 1.0 | +| test.c:379:12:379:14 | (unsigned int)... | 1.0 | +| test.c:379:18:379:18 | x | 1.0 | +| test.c:379:22:379:24 | 110 | 1.0 | +| test.c:379:22:379:24 | (unsigned int)... | 1.0 | +| test.c:380:3:380:4 | y2 | 1.0 | +| test.c:380:3:380:25 | ... = ... | 2.0 | +| test.c:380:8:380:8 | x | 2.0 | +| test.c:380:8:380:15 | ... <= ... | 1.0 | +| test.c:380:8:380:25 | ... ? ... : ... | 2.0 | +| test.c:380:13:380:15 | 100 | 1.0 | +| test.c:380:13:380:15 | (unsigned int)... | 1.0 | +| test.c:380:19:380:21 | 110 | 1.0 | +| test.c:380:19:380:21 | (unsigned int)... | 1.0 | +| test.c:380:25:380:25 | x | 2.0 | +| test.c:381:3:381:4 | y3 | 1.0 | +| test.c:381:3:381:11 | ... = ... | 1.0 | +| test.c:381:8:381:11 | 1000 | 1.0 | +| test.c:381:8:381:11 | (unsigned int)... | 1.0 | +| test.c:382:3:382:4 | y4 | 1.0 | +| test.c:382:3:382:11 | ... = ... | 1.0 | +| test.c:382:8:382:11 | 1000 | 1.0 | +| test.c:382:8:382:11 | (unsigned int)... | 1.0 | +| test.c:383:3:383:4 | y5 | 1.0 | +| test.c:383:3:383:11 | ... = ... | 1.0 | +| test.c:383:8:383:11 | 1000 | 1.0 | +| test.c:383:8:383:11 | (unsigned int)... | 1.0 | +| test.c:384:7:384:7 | x | 4.0 | +| test.c:384:7:384:14 | ... >= ... | 1.0 | +| test.c:384:12:384:14 | 300 | 1.0 | +| test.c:384:12:384:14 | (unsigned int)... | 1.0 | +| test.c:385:5:385:6 | y3 | 1.0 | +| test.c:385:5:385:21 | ... = ... | 4.0 | +| test.c:385:10:385:16 | (...) | 4.0 | +| test.c:385:10:385:21 | ... ? ... : ... | 4.0 | +| test.c:385:11:385:11 | x | 4.0 | +| test.c:385:11:385:15 | ... - ... | 4.0 | +| test.c:385:13:385:15 | 300 | 1.0 | +| test.c:385:13:385:15 | (unsigned int)... | 1.0 | +| test.c:385:21:385:21 | 5 | 1.0 | +| test.c:385:21:385:21 | (unsigned int)... | 1.0 | +| test.c:386:5:386:6 | y4 | 1.0 | +| test.c:386:5:386:21 | ... = ... | 4.0 | +| test.c:386:10:386:16 | (...) | 4.0 | +| test.c:386:10:386:21 | ... ? ... : ... | 4.0 | +| test.c:386:11:386:11 | x | 4.0 | +| test.c:386:11:386:15 | ... - ... | 4.0 | +| test.c:386:13:386:15 | 200 | 1.0 | +| test.c:386:13:386:15 | (unsigned int)... | 1.0 | +| test.c:386:21:386:21 | 5 | 1.0 | +| test.c:386:21:386:21 | (unsigned int)... | 1.0 | +| test.c:387:5:387:6 | y5 | 1.0 | +| test.c:387:5:387:38 | ... = ... | 4.0 | +| test.c:387:10:387:33 | (...) | 4.0 | +| test.c:387:10:387:38 | (unsigned int)... | 4.0 | +| test.c:387:10:387:38 | ... ? ... : ... | 4.0 | +| test.c:387:11:387:32 | (unsigned char)... | 4.0 | +| test.c:387:26:387:32 | (...) | 4.0 | +| test.c:387:27:387:27 | x | 4.0 | +| test.c:387:27:387:31 | ... - ... | 4.0 | +| test.c:387:29:387:31 | 200 | 1.0 | +| test.c:387:29:387:31 | (unsigned int)... | 1.0 | +| test.c:387:38:387:38 | 5 | 1.0 | +| test.c:389:10:389:11 | y1 | 1.0 | +| test.c:389:10:389:16 | ... + ... | 2.0 | +| test.c:389:10:389:21 | ... + ... | 10.0 | +| test.c:389:10:389:26 | ... + ... | 50.0 | +| test.c:389:10:389:31 | ... + ... | 250.0 | +| test.c:389:15:389:16 | y2 | 2.0 | +| test.c:389:20:389:21 | y3 | 5.0 | +| test.c:389:25:389:26 | y4 | 5.0 | +| test.c:389:30:389:31 | y5 | 5.0 | +| test.c:394:14:394:14 | m | 1.0 | +| test.c:394:14:394:108 | ... ? ... : ... | 1.0 | +| test.c:394:18:394:18 | n | 1.0 | +| test.c:394:18:394:95 | ... ? ... : ... | 1.0 | +| test.c:394:22:394:22 | o | 1.0 | +| test.c:394:22:394:82 | ... ? ... : ... | 1.0 | +| test.c:394:26:394:26 | p | 1.0 | +| test.c:394:26:394:69 | ... ? ... : ... | 1.0 | +| test.c:394:30:394:30 | q | 1.0 | +| test.c:394:30:394:56 | ... ? ... : ... | 1.0 | +| test.c:394:34:394:43 | 0.4743882700000000008 | 1.0 | +| test.c:394:47:394:56 | 0.1433388700000000071 | 1.0 | +| test.c:394:60:394:69 | 0.3527920299999999787 | 1.0 | +| test.c:394:73:394:82 | 0.3920645799999999959 | 1.0 | +| test.c:394:86:394:95 | 0.2154022499999999896 | 1.0 | +| test.c:394:99:394:108 | 0.4049680500000000238 | 1.0 | +| test.c:395:14:395:14 | m | 2.0 | +| test.c:395:14:395:108 | ... ? ... : ... | 1.0 | +| test.c:395:18:395:18 | n | 3.0 | +| test.c:395:18:395:95 | ... ? ... : ... | 1.0 | +| test.c:395:22:395:22 | o | 3.0 | +| test.c:395:22:395:82 | ... ? ... : ... | 1.0 | +| test.c:395:26:395:26 | p | 3.0 | +| test.c:395:26:395:69 | ... ? ... : ... | 1.0 | +| test.c:395:30:395:30 | q | 3.0 | +| test.c:395:30:395:56 | ... ? ... : ... | 1.0 | +| test.c:395:34:395:43 | 0.3418334800000000229 | 1.0 | +| test.c:395:47:395:56 | 0.3533464000000000049 | 1.0 | +| test.c:395:60:395:69 | 0.2224785300000000077 | 1.0 | +| test.c:395:73:395:82 | 0.326618929999999974 | 1.0 | +| test.c:395:86:395:95 | 0.5927046500000000551 | 1.0 | +| test.c:395:99:395:108 | 0.5297741000000000255 | 1.0 | +| test.c:396:14:396:14 | m | 4.0 | +| test.c:396:14:396:108 | ... ? ... : ... | 1.0 | +| test.c:396:18:396:18 | n | 9.0 | +| test.c:396:18:396:95 | ... ? ... : ... | 1.0 | +| test.c:396:22:396:22 | o | 9.0 | +| test.c:396:22:396:82 | ... ? ... : ... | 1.0 | +| test.c:396:26:396:26 | p | 9.0 | +| test.c:396:26:396:69 | ... ? ... : ... | 1.0 | +| test.c:396:30:396:30 | q | 9.0 | +| test.c:396:30:396:56 | ... ? ... : ... | 1.0 | +| test.c:396:34:396:43 | 0.774296030000000024 | 1.0 | +| test.c:396:47:396:56 | 0.3147808400000000062 | 1.0 | +| test.c:396:60:396:69 | 0.3123551399999999756 | 1.0 | +| test.c:396:73:396:82 | 0.05121255999999999725 | 1.0 | +| test.c:396:86:396:95 | 0.7931074500000000471 | 1.0 | +| test.c:396:99:396:108 | 0.6798145100000000385 | 1.0 | +| test.c:397:14:397:14 | m | 8.0 | +| test.c:397:14:397:108 | ... ? ... : ... | 1.0 | +| test.c:397:18:397:18 | n | 27.0 | +| test.c:397:18:397:95 | ... ? ... : ... | 1.0 | +| test.c:397:22:397:22 | o | 27.0 | +| test.c:397:22:397:82 | ... ? ... : ... | 1.0 | +| test.c:397:26:397:26 | p | 27.0 | +| test.c:397:26:397:69 | ... ? ... : ... | 1.0 | +| test.c:397:30:397:30 | q | 27.0 | +| test.c:397:30:397:56 | ... ? ... : ... | 1.0 | +| test.c:397:34:397:43 | 0.4472955599999999809 | 1.0 | +| test.c:397:47:397:56 | 0.8059920200000000312 | 1.0 | +| test.c:397:60:397:69 | 0.9899726199999999698 | 1.0 | +| test.c:397:73:397:82 | 0.5995273199999999747 | 1.0 | +| test.c:397:86:397:95 | 0.3697694799999999837 | 1.0 | +| test.c:397:99:397:108 | 0.8386683499999999514 | 1.0 | +| test.c:398:14:398:14 | m | 16.0 | +| test.c:398:14:398:108 | ... ? ... : ... | 1.0 | +| test.c:398:18:398:18 | n | 81.0 | +| test.c:398:18:398:95 | ... ? ... : ... | 1.0 | +| test.c:398:22:398:22 | o | 81.0 | +| test.c:398:22:398:82 | ... ? ... : ... | 1.0 | +| test.c:398:26:398:26 | p | 81.0 | +| test.c:398:26:398:69 | ... ? ... : ... | 1.0 | +| test.c:398:30:398:30 | q | 81.0 | +| test.c:398:30:398:56 | ... ? ... : ... | 1.0 | +| test.c:398:34:398:43 | 0.4931182800000000199 | 1.0 | +| test.c:398:47:398:56 | 0.9038991100000000056 | 1.0 | +| test.c:398:60:398:69 | 0.1059771199999999941 | 1.0 | +| test.c:398:73:398:82 | 0.2177842600000000073 | 1.0 | +| test.c:398:86:398:95 | 0.7248596600000000167 | 1.0 | +| test.c:398:99:398:108 | 0.6873487400000000136 | 1.0 | +| test.c:399:14:399:14 | m | 32.0 | +| test.c:399:14:399:108 | ... ? ... : ... | 1.0 | +| test.c:399:18:399:18 | n | 243.0 | +| test.c:399:18:399:95 | ... ? ... : ... | 1.0 | +| test.c:399:22:399:22 | o | 243.0 | +| test.c:399:22:399:82 | ... ? ... : ... | 1.0 | +| test.c:399:26:399:26 | p | 243.0 | +| test.c:399:26:399:69 | ... ? ... : ... | 1.0 | +| test.c:399:30:399:30 | q | 243.0 | +| test.c:399:30:399:56 | ... ? ... : ... | 1.0 | +| test.c:399:34:399:43 | 0.4745284799999999747 | 1.0 | +| test.c:399:47:399:56 | 0.107866500000000004 | 1.0 | +| test.c:399:60:399:69 | 0.1188457599999999947 | 1.0 | +| test.c:399:73:399:82 | 0.7616405200000000431 | 1.0 | +| test.c:399:86:399:95 | 0.3480889200000000239 | 1.0 | +| test.c:399:99:399:108 | 0.584408649999999974 | 1.0 | +| test.c:400:14:400:14 | m | 64.0 | +| test.c:400:14:400:108 | ... ? ... : ... | 1.0 | +| test.c:400:18:400:18 | n | 729.0 | +| test.c:400:18:400:95 | ... ? ... : ... | 1.0 | +| test.c:400:22:400:22 | o | 729.0 | +| test.c:400:22:400:82 | ... ? ... : ... | 1.0 | +| test.c:400:26:400:26 | p | 729.0 | +| test.c:400:26:400:69 | ... ? ... : ... | 1.0 | +| test.c:400:30:400:30 | q | 729.0 | +| test.c:400:30:400:56 | ... ? ... : ... | 1.0 | +| test.c:400:34:400:43 | 0.02524326 | 1.0 | +| test.c:400:47:400:56 | 0.8290504600000000446 | 1.0 | +| test.c:400:60:400:69 | 0.95823075000000002 | 1.0 | +| test.c:400:73:400:82 | 0.1251655799999999985 | 1.0 | +| test.c:400:86:400:95 | 0.8523517900000000536 | 1.0 | +| test.c:400:99:400:108 | 0.3623238400000000081 | 1.0 | +| test.c:401:14:401:14 | m | 128.0 | +| test.c:401:14:401:108 | ... ? ... : ... | 1.0 | +| test.c:401:18:401:18 | n | 2187.0 | +| test.c:401:18:401:95 | ... ? ... : ... | 1.0 | +| test.c:401:22:401:22 | o | 2187.0 | +| test.c:401:22:401:82 | ... ? ... : ... | 1.0 | +| test.c:401:26:401:26 | p | 2187.0 | +| test.c:401:26:401:69 | ... ? ... : ... | 1.0 | +| test.c:401:30:401:30 | q | 2187.0 | +| test.c:401:30:401:56 | ... ? ... : ... | 1.0 | +| test.c:401:34:401:43 | 0.3870862600000000153 | 1.0 | +| test.c:401:47:401:56 | 0.3287604399999999871 | 1.0 | +| test.c:401:60:401:69 | 0.1496348500000000137 | 1.0 | +| test.c:401:73:401:82 | 0.4504110800000000192 | 1.0 | +| test.c:401:86:401:95 | 0.4864090899999999884 | 1.0 | +| test.c:401:99:401:108 | 0.8433127200000000157 | 1.0 | +| test.c:402:14:402:14 | m | 256.0 | +| test.c:402:14:402:108 | ... ? ... : ... | 1.0 | +| test.c:402:18:402:18 | n | 6561.0 | +| test.c:402:18:402:95 | ... ? ... : ... | 1.0 | +| test.c:402:22:402:22 | o | 6561.0 | +| test.c:402:22:402:82 | ... ? ... : ... | 1.0 | +| test.c:402:26:402:26 | p | 6561.0 | +| test.c:402:26:402:69 | ... ? ... : ... | 1.0 | +| test.c:402:30:402:30 | q | 6561.0 | +| test.c:402:30:402:56 | ... ? ... : ... | 1.0 | +| test.c:402:34:402:43 | 0.1575506299999999971 | 1.0 | +| test.c:402:47:402:56 | 0.7708683299999999905 | 1.0 | +| test.c:402:60:402:69 | 0.2642848099999999811 | 1.0 | +| test.c:402:73:402:82 | 0.1480050800000000111 | 1.0 | +| test.c:402:86:402:95 | 0.374281430000000026 | 1.0 | +| test.c:402:99:402:108 | 0.05328182000000000057 | 1.0 | +| test.c:403:14:403:14 | m | 512.0 | +| test.c:403:14:403:108 | ... ? ... : ... | 1.0 | +| test.c:403:18:403:18 | n | 19683.0 | +| test.c:403:18:403:95 | ... ? ... : ... | 1.0 | +| test.c:403:22:403:22 | o | 19683.0 | +| test.c:403:22:403:82 | ... ? ... : ... | 1.0 | +| test.c:403:26:403:26 | p | 19683.0 | +| test.c:403:26:403:69 | ... ? ... : ... | 1.0 | +| test.c:403:30:403:30 | q | 19683.0 | +| test.c:403:30:403:56 | ... ? ... : ... | 1.0 | +| test.c:403:34:403:43 | 0.4173653600000000186 | 1.0 | +| test.c:403:47:403:56 | 0.7682662799999999681 | 1.0 | +| test.c:403:60:403:69 | 0.2764323799999999776 | 1.0 | +| test.c:403:73:403:82 | 0.5567927400000000082 | 1.0 | +| test.c:403:86:403:95 | 0.3946885700000000163 | 1.0 | +| test.c:403:99:403:108 | 0.6907214400000000198 | 1.0 | +| test.c:404:14:404:14 | m | 1024.0 | +| test.c:404:14:404:108 | ... ? ... : ... | 1.0 | +| test.c:404:18:404:18 | n | 59049.0 | +| test.c:404:18:404:95 | ... ? ... : ... | 1.0 | +| test.c:404:22:404:22 | o | 59049.0 | +| test.c:404:22:404:82 | ... ? ... : ... | 1.0 | +| test.c:404:26:404:26 | p | 59049.0 | +| test.c:404:26:404:69 | ... ? ... : ... | 1.0 | +| test.c:404:30:404:30 | q | 59049.0 | +| test.c:404:30:404:56 | ... ? ... : ... | 1.0 | +| test.c:404:34:404:43 | 0.8895534499999999678 | 1.0 | +| test.c:404:47:404:56 | 0.2990482400000000207 | 1.0 | +| test.c:404:60:404:69 | 0.7624258299999999711 | 1.0 | +| test.c:404:73:404:82 | 0.2051910999999999874 | 1.0 | +| test.c:404:86:404:95 | 0.8874555899999999609 | 1.0 | +| test.c:404:99:404:108 | 0.8137279800000000174 | 1.0 | +| test.c:405:14:405:14 | m | 2048.0 | +| test.c:405:14:405:108 | ... ? ... : ... | 1.0 | +| test.c:405:18:405:18 | n | 177147.0 | +| test.c:405:18:405:95 | ... ? ... : ... | 1.0 | +| test.c:405:22:405:22 | o | 177147.0 | +| test.c:405:22:405:82 | ... ? ... : ... | 1.0 | +| test.c:405:26:405:26 | p | 177147.0 | +| test.c:405:26:405:69 | ... ? ... : ... | 1.0 | +| test.c:405:30:405:30 | q | 177147.0 | +| test.c:405:30:405:56 | ... ? ... : ... | 1.0 | +| test.c:405:34:405:43 | 0.4218627600000000033 | 1.0 | +| test.c:405:47:405:56 | 0.5384335799999999672 | 1.0 | +| test.c:405:60:405:69 | 0.4499667900000000054 | 1.0 | +| test.c:405:73:405:82 | 0.1320411400000000013 | 1.0 | +| test.c:405:86:405:95 | 0.5203124099999999475 | 1.0 | +| test.c:405:99:405:108 | 0.4276264699999999808 | 1.0 | +| test.c:411:19:411:19 | a | 1.0 | +| test.c:411:19:411:23 | ... + ... | 1.0 | +| test.c:411:19:411:27 | ... + ... | 1.0 | +| test.c:411:19:411:31 | ... + ... | 1.0 | +| test.c:411:19:411:35 | ... + ... | 1.0 | +| test.c:411:19:411:39 | ... + ... | 1.0 | +| test.c:411:19:411:43 | ... + ... | 1.0 | +| test.c:411:19:411:47 | ... + ... | 1.0 | +| test.c:411:19:411:51 | ... + ... | 1.0 | +| test.c:411:19:411:55 | ... + ... | 1.0 | +| test.c:411:19:411:59 | ... + ... | 1.0 | +| test.c:411:19:411:63 | ... + ... | 1.0 | +| test.c:411:23:411:23 | b | 1.0 | +| test.c:411:27:411:27 | c | 1.0 | +| test.c:411:31:411:31 | d | 1.0 | +| test.c:411:35:411:35 | e | 1.0 | +| test.c:411:39:411:39 | f | 1.0 | +| test.c:411:43:411:43 | g | 1.0 | +| test.c:411:47:411:47 | h | 1.0 | +| test.c:411:51:411:51 | i | 1.0 | +| test.c:411:55:411:55 | j | 1.0 | +| test.c:411:59:411:59 | k | 1.0 | +| test.c:411:63:411:63 | l | 1.0 | +| test.c:413:10:413:15 | output | 1.0 | +| test.c:420:7:420:9 | rhs | 1.0 | +| test.c:420:7:420:14 | ... < ... | 1.0 | +| test.c:420:13:420:14 | 12 | 1.0 | +| test.c:420:13:420:14 | (unsigned int)... | 1.0 | +| test.c:420:19:420:21 | rhs | 1.0 | +| test.c:420:19:420:26 | ... << ... | 1.0 | +| test.c:420:26:420:26 | 1 | 1.0 | +| test.c:421:7:421:9 | rhs | 2.0 | +| test.c:421:7:421:14 | ... < ... | 1.0 | +| test.c:421:13:421:14 | 13 | 1.0 | +| test.c:421:13:421:14 | (unsigned int)... | 1.0 | +| test.c:421:19:421:21 | rhs | 2.0 | +| test.c:421:19:421:26 | ... << ... | 1.0 | +| test.c:421:26:421:26 | 1 | 1.0 | +| test.c:422:7:422:9 | rhs | 3.0 | +| test.c:422:7:422:14 | ... < ... | 1.0 | +| test.c:422:13:422:14 | 14 | 1.0 | +| test.c:422:13:422:14 | (unsigned int)... | 1.0 | +| test.c:422:19:422:21 | rhs | 3.0 | +| test.c:422:19:422:26 | ... << ... | 1.0 | +| test.c:422:26:422:26 | 1 | 1.0 | +| test.c:423:7:423:9 | rhs | 4.0 | +| test.c:423:7:423:14 | ... < ... | 1.0 | +| test.c:423:13:423:14 | 15 | 1.0 | +| test.c:423:13:423:14 | (unsigned int)... | 1.0 | +| test.c:423:19:423:21 | rhs | 4.0 | +| test.c:423:19:423:26 | ... << ... | 1.0 | +| test.c:423:26:423:26 | 1 | 1.0 | +| test.c:424:7:424:9 | rhs | 5.0 | +| test.c:424:7:424:14 | ... < ... | 1.0 | +| test.c:424:13:424:14 | 16 | 1.0 | +| test.c:424:13:424:14 | (unsigned int)... | 1.0 | +| test.c:424:19:424:21 | rhs | 5.0 | +| test.c:424:19:424:26 | ... << ... | 1.0 | +| test.c:424:26:424:26 | 1 | 1.0 | +| test.c:425:10:425:12 | (int)... | 6.0 | +| test.c:425:10:425:12 | rhs | 6.0 | +| test.c:432:4:434:50 | (...) | 1.0 | +| test.c:432:4:517:26 | ... > ... | 1.0 | +| test.c:432:4:606:27 | ... ? ... : ... | 1.297918419127476E201 | +| test.c:432:5:432:6 | 14 | 1.0 | +| test.c:432:5:432:6 | (unsigned int)... | 1.0 | +| test.c:432:5:432:11 | ... * ... | 1.0 | +| test.c:432:5:432:55 | ... > ... | 1.0 | +| test.c:432:5:434:49 | ... ? ... : ... | 1.0 | +| test.c:432:10:432:11 | ip | 1.0 | +| test.c:432:15:432:26 | (...) | 1.0 | +| test.c:432:15:432:31 | ... * ... | 1.0 | +| test.c:432:15:432:55 | ... + ... | 1.0 | +| test.c:432:16:432:16 | 2 | 1.0 | +| test.c:432:16:432:16 | (unsigned int)... | 1.0 | +| test.c:432:16:432:21 | ... * ... | 1.0 | +| test.c:432:16:432:25 | ... + ... | 1.0 | +| test.c:432:20:432:21 | ip | 1.0 | +| test.c:432:25:432:25 | 1 | 1.0 | +| test.c:432:25:432:25 | (unsigned int)... | 1.0 | +| test.c:432:30:432:31 | 17 | 1.0 | +| test.c:432:30:432:31 | (unsigned int)... | 1.0 | +| test.c:432:35:432:50 | (...) | 1.0 | +| test.c:432:35:432:55 | ... * ... | 1.0 | +| test.c:432:36:432:36 | 2 | 1.0 | +| test.c:432:36:432:36 | (unsigned int)... | 1.0 | +| test.c:432:36:432:41 | ... * ... | 1.0 | +| test.c:432:36:432:45 | ... + ... | 1.0 | +| test.c:432:36:432:49 | ... + ... | 1.0 | +| test.c:432:40:432:41 | ip | 1.0 | +| test.c:432:45:432:45 | 1 | 1.0 | +| test.c:432:45:432:45 | (unsigned int)... | 1.0 | +| test.c:432:49:432:49 | 1 | 1.0 | +| test.c:432:49:432:49 | (unsigned int)... | 1.0 | +| test.c:432:54:432:55 | 17 | 1.0 | +| test.c:432:54:432:55 | (unsigned int)... | 1.0 | +| test.c:433:9:433:10 | 14 | 1.0 | +| test.c:433:9:433:10 | (unsigned int)... | 1.0 | +| test.c:433:9:433:15 | ... * ... | 1.0 | +| test.c:433:14:433:15 | ip | 1.0 | +| test.c:434:9:434:20 | (...) | 1.0 | +| test.c:434:9:434:25 | ... * ... | 1.0 | +| test.c:434:9:434:49 | ... + ... | 1.0 | +| test.c:434:10:434:10 | 2 | 1.0 | +| test.c:434:10:434:10 | (unsigned int)... | 1.0 | +| test.c:434:10:434:15 | ... * ... | 1.0 | +| test.c:434:10:434:19 | ... + ... | 1.0 | +| test.c:434:14:434:15 | ip | 1.0 | +| test.c:434:19:434:19 | 1 | 1.0 | +| test.c:434:19:434:19 | (unsigned int)... | 1.0 | +| test.c:434:24:434:25 | 14 | 1.0 | +| test.c:434:24:434:25 | (unsigned int)... | 1.0 | +| test.c:434:29:434:44 | (...) | 1.0 | +| test.c:434:29:434:49 | ... * ... | 1.0 | +| test.c:434:30:434:30 | 2 | 1.0 | +| test.c:434:30:434:30 | (unsigned int)... | 1.0 | +| test.c:434:30:434:35 | ... * ... | 1.0 | +| test.c:434:30:434:39 | ... + ... | 1.0 | +| test.c:434:30:434:43 | ... + ... | 1.0 | +| test.c:434:34:434:35 | ip | 1.0 | +| test.c:434:39:434:39 | 1 | 1.0 | +| test.c:434:39:434:39 | (unsigned int)... | 1.0 | +| test.c:434:43:434:43 | 1 | 1.0 | +| test.c:434:43:434:43 | (unsigned int)... | 1.0 | +| test.c:434:48:434:49 | 17 | 1.0 | +| test.c:434:48:434:49 | (unsigned int)... | 1.0 | +| test.c:435:5:517:26 | (...) | 9.29462083211502E84 | +| test.c:435:6:435:6 | 2 | 1.0 | +| test.c:435:6:435:6 | (unsigned int)... | 1.0 | +| test.c:435:6:435:23 | ... * ... | 2.0 | +| test.c:435:6:454:42 | ... + ... | 4.524508125E10 | +| test.c:435:6:474:24 | ... > ... | 1.0 | +| test.c:435:6:517:25 | ... ? ... : ... | 9.29462083211502E84 | +| test.c:435:10:435:23 | (...) | 2.0 | +| test.c:435:11:435:12 | ip | 2.0 | +| test.c:435:11:435:17 | ... * ... | 2.0 | +| test.c:435:11:435:22 | ... + ... | 2.0 | +| test.c:435:16:435:17 | 14 | 1.0 | +| test.c:435:16:435:17 | (unsigned int)... | 1.0 | +| test.c:435:21:435:22 | 32 | 1.0 | +| test.c:435:21:435:22 | (unsigned int)... | 1.0 | +| test.c:436:7:454:42 | (...) | 2.2622540625E10 | +| test.c:436:8:436:8 | 4 | 1.0 | +| test.c:436:8:436:8 | (unsigned int)... | 1.0 | +| test.c:436:8:436:25 | ... * ... | 2.0 | +| test.c:436:8:437:26 | ... + ... | 4.0 | +| test.c:436:8:438:26 | ... + ... | 8.0 | +| test.c:436:8:443:22 | ... + ... | 1000.0 | +| test.c:436:8:444:37 | ... > ... | 1.0 | +| test.c:436:8:454:41 | ... ? ... : ... | 2.2622540625E10 | +| test.c:436:12:436:25 | (...) | 2.0 | +| test.c:436:13:436:14 | ip | 2.0 | +| test.c:436:13:436:19 | ... * ... | 2.0 | +| test.c:436:13:436:24 | ... + ... | 2.0 | +| test.c:436:18:436:19 | 14 | 1.0 | +| test.c:436:18:436:19 | (unsigned int)... | 1.0 | +| test.c:436:23:436:24 | 32 | 1.0 | +| test.c:436:23:436:24 | (unsigned int)... | 1.0 | +| test.c:437:9:437:26 | (...) | 2.0 | +| test.c:437:10:437:10 | 2 | 1.0 | +| test.c:437:10:437:10 | (unsigned int)... | 1.0 | +| test.c:437:10:437:15 | ... * ... | 2.0 | +| test.c:437:10:437:20 | ... * ... | 2.0 | +| test.c:437:10:437:25 | ... + ... | 2.0 | +| test.c:437:14:437:15 | ip | 2.0 | +| test.c:437:19:437:20 | 14 | 1.0 | +| test.c:437:19:437:20 | (unsigned int)... | 1.0 | +| test.c:437:24:437:25 | 32 | 1.0 | +| test.c:437:24:437:25 | (unsigned int)... | 1.0 | +| test.c:438:9:438:9 | 2 | 1.0 | +| test.c:438:9:438:9 | (unsigned int)... | 1.0 | +| test.c:438:9:438:26 | ... * ... | 2.0 | +| test.c:438:13:438:26 | (...) | 2.0 | +| test.c:438:14:438:15 | ip | 2.0 | +| test.c:438:14:438:20 | ... * ... | 2.0 | +| test.c:438:14:438:25 | ... + ... | 2.0 | +| test.c:438:19:438:20 | 14 | 1.0 | +| test.c:438:19:438:20 | (unsigned int)... | 1.0 | +| test.c:438:24:438:25 | 64 | 1.0 | +| test.c:438:24:438:25 | (unsigned int)... | 1.0 | +| test.c:439:9:443:22 | (...) | 125.0 | +| test.c:439:10:439:21 | (...) | 2.0 | +| test.c:439:10:439:26 | ... * ... | 2.0 | +| test.c:439:10:439:80 | ... > ... | 1.0 | +| test.c:439:10:443:21 | ... ? ... : ... | 125.0 | +| test.c:439:11:439:11 | 2 | 1.0 | +| test.c:439:11:439:11 | (unsigned int)... | 1.0 | +| test.c:439:11:439:16 | ... * ... | 2.0 | +| test.c:439:11:439:20 | ... + ... | 2.0 | +| test.c:439:15:439:16 | ip | 2.0 | +| test.c:439:20:439:20 | 1 | 1.0 | +| test.c:439:20:439:20 | (unsigned int)... | 1.0 | +| test.c:439:25:439:26 | 14 | 1.0 | +| test.c:439:25:439:26 | (unsigned int)... | 1.0 | +| test.c:439:30:439:80 | (...) | 4.0 | +| test.c:439:31:439:32 | 17 | 1.0 | +| test.c:439:31:439:32 | (unsigned int)... | 1.0 | +| test.c:439:31:439:43 | ... * ... | 2.0 | +| test.c:439:31:439:53 | ... > ... | 1.0 | +| test.c:439:31:439:79 | ... ? ... : ... | 4.0 | +| test.c:439:36:439:43 | (...) | 2.0 | +| test.c:439:37:439:37 | 2 | 1.0 | +| test.c:439:37:439:37 | (unsigned int)... | 1.0 | +| test.c:439:37:439:42 | ... * ... | 2.0 | +| test.c:439:41:439:42 | ip | 2.0 | +| test.c:439:47:439:48 | 17 | 1.0 | +| test.c:439:47:439:48 | (unsigned int)... | 1.0 | +| test.c:439:47:439:53 | ... * ... | 2.0 | +| test.c:439:52:439:53 | ip | 2.0 | +| test.c:439:57:439:58 | 17 | 1.0 | +| test.c:439:57:439:58 | (unsigned int)... | 1.0 | +| test.c:439:57:439:69 | ... * ... | 2.0 | +| test.c:439:62:439:69 | (...) | 2.0 | +| test.c:439:63:439:63 | 2 | 1.0 | +| test.c:439:63:439:63 | (unsigned int)... | 1.0 | +| test.c:439:63:439:68 | ... * ... | 2.0 | +| test.c:439:67:439:68 | ip | 2.0 | +| test.c:439:73:439:74 | 17 | 1.0 | +| test.c:439:73:439:74 | (unsigned int)... | 1.0 | +| test.c:439:73:439:79 | ... * ... | 2.0 | +| test.c:439:78:439:79 | ip | 2.0 | +| test.c:440:13:440:24 | (...) | 5.0 | +| test.c:440:13:440:29 | ... * ... | 5.0 | +| test.c:440:14:440:14 | 2 | 1.0 | +| test.c:440:14:440:14 | (unsigned int)... | 1.0 | +| test.c:440:14:440:19 | ... * ... | 5.0 | +| test.c:440:14:440:23 | ... + ... | 5.0 | +| test.c:440:18:440:19 | ip | 5.0 | +| test.c:440:23:440:23 | 1 | 1.0 | +| test.c:440:23:440:23 | (unsigned int)... | 1.0 | +| test.c:440:28:440:29 | 14 | 1.0 | +| test.c:440:28:440:29 | (unsigned int)... | 1.0 | +| test.c:441:13:441:14 | 14 | 1.0 | +| test.c:441:13:441:14 | (unsigned int)... | 1.0 | +| test.c:441:13:441:25 | ... * ... | 5.0 | +| test.c:441:13:441:35 | ... > ... | 1.0 | +| test.c:441:13:443:21 | ... ? ... : ... | 25.0 | +| test.c:441:18:441:25 | (...) | 5.0 | +| test.c:441:19:441:19 | 2 | 1.0 | +| test.c:441:19:441:19 | (unsigned int)... | 1.0 | +| test.c:441:19:441:24 | ... * ... | 5.0 | +| test.c:441:23:441:24 | ip | 5.0 | +| test.c:441:29:441:30 | 17 | 1.0 | +| test.c:441:29:441:30 | (unsigned int)... | 1.0 | +| test.c:441:29:441:35 | ... * ... | 5.0 | +| test.c:441:34:441:35 | ip | 5.0 | +| test.c:442:15:442:16 | 14 | 1.0 | +| test.c:442:15:442:16 | (unsigned int)... | 1.0 | +| test.c:442:15:442:27 | ... * ... | 5.0 | +| test.c:442:20:442:27 | (...) | 5.0 | +| test.c:442:21:442:21 | 2 | 1.0 | +| test.c:442:21:442:21 | (unsigned int)... | 1.0 | +| test.c:442:21:442:26 | ... * ... | 5.0 | +| test.c:442:25:442:26 | ip | 5.0 | +| test.c:443:15:443:16 | 14 | 1.0 | +| test.c:443:15:443:16 | (unsigned int)... | 1.0 | +| test.c:443:15:443:21 | ... * ... | 5.0 | +| test.c:443:20:443:21 | ip | 5.0 | +| test.c:444:7:444:7 | 2 | 1.0 | +| test.c:444:7:444:7 | (unsigned int)... | 1.0 | +| test.c:444:7:444:12 | ... * ... | 15.0 | +| test.c:444:7:444:17 | ... * ... | 15.0 | +| test.c:444:7:444:37 | ... + ... | 225.0 | +| test.c:444:11:444:12 | ip | 15.0 | +| test.c:444:16:444:17 | 14 | 1.0 | +| test.c:444:16:444:17 | (unsigned int)... | 1.0 | +| test.c:444:21:444:32 | (...) | 15.0 | +| test.c:444:21:444:37 | ... * ... | 15.0 | +| test.c:444:22:444:22 | 2 | 1.0 | +| test.c:444:22:444:22 | (unsigned int)... | 1.0 | +| test.c:444:22:444:27 | ... * ... | 15.0 | +| test.c:444:22:444:31 | ... + ... | 15.0 | +| test.c:444:26:444:27 | ip | 15.0 | +| test.c:444:31:444:31 | 1 | 1.0 | +| test.c:444:31:444:31 | (unsigned int)... | 1.0 | +| test.c:444:36:444:37 | 17 | 1.0 | +| test.c:444:36:444:37 | (unsigned int)... | 1.0 | +| test.c:445:11:445:11 | 4 | 1.0 | +| test.c:445:11:445:11 | (unsigned int)... | 1.0 | +| test.c:445:11:445:28 | ... * ... | 15.0 | +| test.c:445:11:446:28 | ... + ... | 225.0 | +| test.c:445:11:447:28 | ... + ... | 3375.0 | +| test.c:445:11:453:24 | ... + ... | 1.00544625E8 | +| test.c:445:15:445:28 | (...) | 15.0 | +| test.c:445:16:445:17 | ip | 15.0 | +| test.c:445:16:445:22 | ... * ... | 15.0 | +| test.c:445:16:445:27 | ... + ... | 15.0 | +| test.c:445:21:445:22 | 14 | 1.0 | +| test.c:445:21:445:22 | (unsigned int)... | 1.0 | +| test.c:445:26:445:27 | 32 | 1.0 | +| test.c:445:26:445:27 | (unsigned int)... | 1.0 | +| test.c:446:11:446:28 | (...) | 15.0 | +| test.c:446:12:446:12 | 2 | 1.0 | +| test.c:446:12:446:12 | (unsigned int)... | 1.0 | +| test.c:446:12:446:17 | ... * ... | 15.0 | +| test.c:446:12:446:22 | ... * ... | 15.0 | +| test.c:446:12:446:27 | ... + ... | 15.0 | +| test.c:446:16:446:17 | ip | 15.0 | +| test.c:446:21:446:22 | 14 | 1.0 | +| test.c:446:21:446:22 | (unsigned int)... | 1.0 | +| test.c:446:26:446:27 | 32 | 1.0 | +| test.c:446:26:446:27 | (unsigned int)... | 1.0 | +| test.c:447:11:447:11 | 2 | 1.0 | +| test.c:447:11:447:11 | (unsigned int)... | 1.0 | +| test.c:447:11:447:28 | ... * ... | 15.0 | +| test.c:447:15:447:28 | (...) | 15.0 | +| test.c:447:16:447:17 | ip | 15.0 | +| test.c:447:16:447:22 | ... * ... | 15.0 | +| test.c:447:16:447:27 | ... + ... | 15.0 | +| test.c:447:21:447:22 | 14 | 1.0 | +| test.c:447:21:447:22 | (unsigned int)... | 1.0 | +| test.c:447:26:447:27 | 64 | 1.0 | +| test.c:447:26:447:27 | (unsigned int)... | 1.0 | +| test.c:448:11:453:24 | (...) | 29791.0 | +| test.c:448:12:448:23 | (...) | 15.0 | +| test.c:448:12:448:28 | ... * ... | 15.0 | +| test.c:448:12:449:61 | ... > ... | 1.0 | +| test.c:448:12:453:23 | ... ? ... : ... | 29791.0 | +| test.c:448:13:448:13 | 2 | 1.0 | +| test.c:448:13:448:13 | (unsigned int)... | 1.0 | +| test.c:448:13:448:18 | ... * ... | 15.0 | +| test.c:448:13:448:22 | ... + ... | 15.0 | +| test.c:448:17:448:18 | ip | 15.0 | +| test.c:448:22:448:22 | 1 | 1.0 | +| test.c:448:22:448:22 | (unsigned int)... | 1.0 | +| test.c:448:27:448:28 | 14 | 1.0 | +| test.c:448:27:448:28 | (unsigned int)... | 1.0 | +| test.c:449:11:449:61 | (...) | 225.0 | +| test.c:449:12:449:13 | 14 | 1.0 | +| test.c:449:12:449:13 | (unsigned int)... | 1.0 | +| test.c:449:12:449:24 | ... * ... | 15.0 | +| test.c:449:12:449:34 | ... > ... | 1.0 | +| test.c:449:12:449:60 | ... ? ... : ... | 225.0 | +| test.c:449:17:449:24 | (...) | 15.0 | +| test.c:449:18:449:18 | 2 | 1.0 | +| test.c:449:18:449:18 | (unsigned int)... | 1.0 | +| test.c:449:18:449:23 | ... * ... | 15.0 | +| test.c:449:22:449:23 | ip | 15.0 | +| test.c:449:28:449:29 | 17 | 1.0 | +| test.c:449:28:449:29 | (unsigned int)... | 1.0 | +| test.c:449:28:449:34 | ... * ... | 15.0 | +| test.c:449:33:449:34 | ip | 15.0 | +| test.c:449:38:449:39 | 17 | 1.0 | +| test.c:449:38:449:39 | (unsigned int)... | 1.0 | +| test.c:449:38:449:50 | ... * ... | 15.0 | +| test.c:449:43:449:50 | (...) | 15.0 | +| test.c:449:44:449:44 | 2 | 1.0 | +| test.c:449:44:449:44 | (unsigned int)... | 1.0 | +| test.c:449:44:449:49 | ... * ... | 15.0 | +| test.c:449:48:449:49 | ip | 15.0 | +| test.c:449:54:449:55 | 17 | 1.0 | +| test.c:449:54:449:55 | (unsigned int)... | 1.0 | +| test.c:449:54:449:60 | ... * ... | 15.0 | +| test.c:449:59:449:60 | ip | 15.0 | +| test.c:450:15:450:26 | (...) | 31.0 | +| test.c:450:15:450:31 | ... * ... | 31.0 | +| test.c:450:16:450:16 | 2 | 1.0 | +| test.c:450:16:450:16 | (unsigned int)... | 1.0 | +| test.c:450:16:450:21 | ... * ... | 31.0 | +| test.c:450:16:450:25 | ... + ... | 31.0 | +| test.c:450:20:450:21 | ip | 31.0 | +| test.c:450:25:450:25 | 1 | 1.0 | +| test.c:450:25:450:25 | (unsigned int)... | 1.0 | +| test.c:450:30:450:31 | 14 | 1.0 | +| test.c:450:30:450:31 | (unsigned int)... | 1.0 | +| test.c:451:15:451:16 | 14 | 1.0 | +| test.c:451:15:451:16 | (unsigned int)... | 1.0 | +| test.c:451:15:451:27 | ... * ... | 31.0 | +| test.c:451:15:451:37 | ... > ... | 1.0 | +| test.c:451:15:453:23 | ... ? ... : ... | 961.0 | +| test.c:451:20:451:27 | (...) | 31.0 | +| test.c:451:21:451:21 | 2 | 1.0 | +| test.c:451:21:451:21 | (unsigned int)... | 1.0 | +| test.c:451:21:451:26 | ... * ... | 31.0 | +| test.c:451:25:451:26 | ip | 31.0 | +| test.c:451:31:451:32 | 17 | 1.0 | +| test.c:451:31:451:32 | (unsigned int)... | 1.0 | +| test.c:451:31:451:37 | ... * ... | 31.0 | +| test.c:451:36:451:37 | ip | 31.0 | +| test.c:452:17:452:18 | 14 | 1.0 | +| test.c:452:17:452:18 | (unsigned int)... | 1.0 | +| test.c:452:17:452:29 | ... * ... | 31.0 | +| test.c:452:22:452:29 | (...) | 31.0 | +| test.c:452:23:452:23 | 2 | 1.0 | +| test.c:452:23:452:23 | (unsigned int)... | 1.0 | +| test.c:452:23:452:28 | ... * ... | 31.0 | +| test.c:452:27:452:28 | ip | 31.0 | +| test.c:453:17:453:18 | 14 | 1.0 | +| test.c:453:17:453:18 | (unsigned int)... | 1.0 | +| test.c:453:17:453:23 | ... * ... | 31.0 | +| test.c:453:22:453:23 | ip | 31.0 | +| test.c:454:11:454:11 | 2 | 1.0 | +| test.c:454:11:454:11 | (unsigned int)... | 1.0 | +| test.c:454:11:454:16 | ... * ... | 15.0 | +| test.c:454:11:454:21 | ... * ... | 15.0 | +| test.c:454:11:454:41 | ... + ... | 225.0 | +| test.c:454:15:454:16 | ip | 15.0 | +| test.c:454:20:454:21 | 14 | 1.0 | +| test.c:454:20:454:21 | (unsigned int)... | 1.0 | +| test.c:454:25:454:36 | (...) | 15.0 | +| test.c:454:25:454:41 | ... * ... | 15.0 | +| test.c:454:26:454:26 | 2 | 1.0 | +| test.c:454:26:454:26 | (unsigned int)... | 1.0 | +| test.c:454:26:454:31 | ... * ... | 15.0 | +| test.c:454:26:454:35 | ... + ... | 15.0 | +| test.c:454:30:454:31 | ip | 15.0 | +| test.c:454:35:454:35 | 1 | 1.0 | +| test.c:454:35:454:35 | (unsigned int)... | 1.0 | +| test.c:454:40:454:41 | 17 | 1.0 | +| test.c:454:40:454:41 | (unsigned int)... | 1.0 | +| test.c:455:5:474:24 | (...) | 6.6142118960740864E25 | +| test.c:455:6:455:6 | 4 | 1.0 | +| test.c:455:6:455:6 | (unsigned int)... | 1.0 | +| test.c:455:6:455:23 | ... * ... | 108.0 | +| test.c:455:6:456:24 | ... + ... | 11664.0 | +| test.c:455:6:457:24 | ... + ... | 1259712.0 | +| test.c:455:6:462:20 | ... + ... | 1.2872131505856E13 | +| test.c:455:6:463:55 | ... > ... | 1.0 | +| test.c:455:6:474:23 | ... ? ... : ... | 6.6142118960740864E25 | +| test.c:455:10:455:23 | (...) | 108.0 | +| test.c:455:11:455:12 | ip | 108.0 | +| test.c:455:11:455:17 | ... * ... | 108.0 | +| test.c:455:11:455:22 | ... + ... | 108.0 | +| test.c:455:16:455:17 | 14 | 1.0 | +| test.c:455:16:455:17 | (unsigned int)... | 1.0 | +| test.c:455:21:455:22 | 32 | 1.0 | +| test.c:455:21:455:22 | (unsigned int)... | 1.0 | +| test.c:456:7:456:24 | (...) | 108.0 | +| test.c:456:8:456:8 | 2 | 1.0 | +| test.c:456:8:456:8 | (unsigned int)... | 1.0 | +| test.c:456:8:456:13 | ... * ... | 108.0 | +| test.c:456:8:456:18 | ... * ... | 108.0 | +| test.c:456:8:456:23 | ... + ... | 108.0 | +| test.c:456:12:456:13 | ip | 108.0 | +| test.c:456:17:456:18 | 14 | 1.0 | +| test.c:456:17:456:18 | (unsigned int)... | 1.0 | +| test.c:456:22:456:23 | 32 | 1.0 | +| test.c:456:22:456:23 | (unsigned int)... | 1.0 | +| test.c:457:7:457:7 | 2 | 1.0 | +| test.c:457:7:457:7 | (unsigned int)... | 1.0 | +| test.c:457:7:457:24 | ... * ... | 108.0 | +| test.c:457:11:457:24 | (...) | 108.0 | +| test.c:457:12:457:13 | ip | 108.0 | +| test.c:457:12:457:18 | ... * ... | 108.0 | +| test.c:457:12:457:23 | ... + ... | 108.0 | +| test.c:457:17:457:18 | 14 | 1.0 | +| test.c:457:17:457:18 | (unsigned int)... | 1.0 | +| test.c:457:22:457:23 | 64 | 1.0 | +| test.c:457:22:457:23 | (unsigned int)... | 1.0 | +| test.c:458:7:462:20 | (...) | 1.0218313E7 | +| test.c:458:8:458:19 | (...) | 108.0 | +| test.c:458:8:458:24 | ... * ... | 108.0 | +| test.c:458:8:458:78 | ... > ... | 1.0 | +| test.c:458:8:462:19 | ... ? ... : ... | 1.0218313E7 | +| test.c:458:9:458:9 | 2 | 1.0 | +| test.c:458:9:458:9 | (unsigned int)... | 1.0 | +| test.c:458:9:458:14 | ... * ... | 108.0 | +| test.c:458:9:458:18 | ... + ... | 108.0 | +| test.c:458:13:458:14 | ip | 108.0 | +| test.c:458:18:458:18 | 1 | 1.0 | +| test.c:458:18:458:18 | (unsigned int)... | 1.0 | +| test.c:458:23:458:24 | 14 | 1.0 | +| test.c:458:23:458:24 | (unsigned int)... | 1.0 | +| test.c:458:28:458:78 | (...) | 11664.0 | +| test.c:458:29:458:30 | 17 | 1.0 | +| test.c:458:29:458:30 | (unsigned int)... | 1.0 | +| test.c:458:29:458:41 | ... * ... | 108.0 | +| test.c:458:29:458:51 | ... > ... | 1.0 | +| test.c:458:29:458:77 | ... ? ... : ... | 11664.0 | +| test.c:458:34:458:41 | (...) | 108.0 | +| test.c:458:35:458:35 | 2 | 1.0 | +| test.c:458:35:458:35 | (unsigned int)... | 1.0 | +| test.c:458:35:458:40 | ... * ... | 108.0 | +| test.c:458:39:458:40 | ip | 108.0 | +| test.c:458:45:458:46 | 17 | 1.0 | +| test.c:458:45:458:46 | (unsigned int)... | 1.0 | +| test.c:458:45:458:51 | ... * ... | 108.0 | +| test.c:458:50:458:51 | ip | 108.0 | +| test.c:458:55:458:56 | 17 | 1.0 | +| test.c:458:55:458:56 | (unsigned int)... | 1.0 | +| test.c:458:55:458:67 | ... * ... | 108.0 | +| test.c:458:60:458:67 | (...) | 108.0 | +| test.c:458:61:458:61 | 2 | 1.0 | +| test.c:458:61:458:61 | (unsigned int)... | 1.0 | +| test.c:458:61:458:66 | ... * ... | 108.0 | +| test.c:458:65:458:66 | ip | 108.0 | +| test.c:458:71:458:72 | 17 | 1.0 | +| test.c:458:71:458:72 | (unsigned int)... | 1.0 | +| test.c:458:71:458:77 | ... * ... | 108.0 | +| test.c:458:76:458:77 | ip | 108.0 | +| test.c:459:11:459:22 | (...) | 217.0 | +| test.c:459:11:459:27 | ... * ... | 217.0 | +| test.c:459:12:459:12 | 2 | 1.0 | +| test.c:459:12:459:12 | (unsigned int)... | 1.0 | +| test.c:459:12:459:17 | ... * ... | 217.0 | +| test.c:459:12:459:21 | ... + ... | 217.0 | +| test.c:459:16:459:17 | ip | 217.0 | +| test.c:459:21:459:21 | 1 | 1.0 | +| test.c:459:21:459:21 | (unsigned int)... | 1.0 | +| test.c:459:26:459:27 | 14 | 1.0 | +| test.c:459:26:459:27 | (unsigned int)... | 1.0 | +| test.c:460:11:460:12 | 14 | 1.0 | +| test.c:460:11:460:12 | (unsigned int)... | 1.0 | +| test.c:460:11:460:23 | ... * ... | 217.0 | +| test.c:460:11:460:33 | ... > ... | 1.0 | +| test.c:460:11:462:19 | ... ? ... : ... | 47089.0 | +| test.c:460:16:460:23 | (...) | 217.0 | +| test.c:460:17:460:17 | 2 | 1.0 | +| test.c:460:17:460:17 | (unsigned int)... | 1.0 | +| test.c:460:17:460:22 | ... * ... | 217.0 | +| test.c:460:21:460:22 | ip | 217.0 | +| test.c:460:27:460:28 | 17 | 1.0 | +| test.c:460:27:460:28 | (unsigned int)... | 1.0 | +| test.c:460:27:460:33 | ... * ... | 217.0 | +| test.c:460:32:460:33 | ip | 217.0 | +| test.c:461:13:461:14 | 14 | 1.0 | +| test.c:461:13:461:14 | (unsigned int)... | 1.0 | +| test.c:461:13:461:25 | ... * ... | 217.0 | +| test.c:461:18:461:25 | (...) | 217.0 | +| test.c:461:19:461:19 | 2 | 1.0 | +| test.c:461:19:461:19 | (unsigned int)... | 1.0 | +| test.c:461:19:461:24 | ... * ... | 217.0 | +| test.c:461:23:461:24 | ip | 217.0 | +| test.c:462:13:462:14 | 14 | 1.0 | +| test.c:462:13:462:14 | (unsigned int)... | 1.0 | +| test.c:462:13:462:19 | ... * ... | 217.0 | +| test.c:462:18:462:19 | ip | 217.0 | +| test.c:463:5:463:55 | (...) | 423801.0 | +| test.c:463:6:463:7 | 14 | 1.0 | +| test.c:463:6:463:7 | (unsigned int)... | 1.0 | +| test.c:463:6:463:12 | ... * ... | 651.0 | +| test.c:463:6:463:28 | ... > ... | 1.0 | +| test.c:463:6:463:54 | ... ? ... : ... | 423801.0 | +| test.c:463:11:463:12 | ip | 651.0 | +| test.c:463:16:463:23 | (...) | 651.0 | +| test.c:463:16:463:28 | ... * ... | 651.0 | +| test.c:463:17:463:18 | ip | 651.0 | +| test.c:463:17:463:22 | ... + ... | 651.0 | +| test.c:463:22:463:22 | 1 | 1.0 | +| test.c:463:22:463:22 | (unsigned int)... | 1.0 | +| test.c:463:27:463:28 | 17 | 1.0 | +| test.c:463:27:463:28 | (unsigned int)... | 1.0 | +| test.c:463:32:463:33 | 17 | 1.0 | +| test.c:463:32:463:33 | (unsigned int)... | 1.0 | +| test.c:463:32:463:38 | ... * ... | 651.0 | +| test.c:463:37:463:38 | ip | 651.0 | +| test.c:463:42:463:49 | (...) | 651.0 | +| test.c:463:42:463:54 | ... * ... | 651.0 | +| test.c:463:43:463:44 | ip | 651.0 | +| test.c:463:43:463:48 | ... + ... | 651.0 | +| test.c:463:48:463:48 | 1 | 1.0 | +| test.c:463:48:463:48 | (unsigned int)... | 1.0 | +| test.c:463:53:463:54 | 17 | 1.0 | +| test.c:463:53:463:54 | (unsigned int)... | 1.0 | +| test.c:464:9:464:9 | 4 | 1.0 | +| test.c:464:9:464:9 | (unsigned int)... | 1.0 | +| test.c:464:9:464:26 | ... * ... | 1302.0 | +| test.c:464:9:465:26 | ... + ... | 1695204.0 | +| test.c:464:9:466:26 | ... + ... | 2.207155608E9 | +| test.c:464:9:471:22 | ... + ... | 3.9017203216097214E19 | +| test.c:464:13:464:26 | (...) | 1302.0 | +| test.c:464:14:464:15 | ip | 1302.0 | +| test.c:464:14:464:20 | ... * ... | 1302.0 | +| test.c:464:14:464:25 | ... + ... | 1302.0 | +| test.c:464:19:464:20 | 14 | 1.0 | +| test.c:464:19:464:20 | (unsigned int)... | 1.0 | +| test.c:464:24:464:25 | 32 | 1.0 | +| test.c:464:24:464:25 | (unsigned int)... | 1.0 | +| test.c:465:9:465:26 | (...) | 1302.0 | +| test.c:465:10:465:10 | 2 | 1.0 | +| test.c:465:10:465:10 | (unsigned int)... | 1.0 | +| test.c:465:10:465:15 | ... * ... | 1302.0 | +| test.c:465:10:465:20 | ... * ... | 1302.0 | +| test.c:465:10:465:25 | ... + ... | 1302.0 | +| test.c:465:14:465:15 | ip | 1302.0 | +| test.c:465:19:465:20 | 14 | 1.0 | +| test.c:465:19:465:20 | (unsigned int)... | 1.0 | +| test.c:465:24:465:25 | 32 | 1.0 | +| test.c:465:24:465:25 | (unsigned int)... | 1.0 | +| test.c:466:9:466:9 | 2 | 1.0 | +| test.c:466:9:466:9 | (unsigned int)... | 1.0 | +| test.c:466:9:466:26 | ... * ... | 1302.0 | +| test.c:466:13:466:26 | (...) | 1302.0 | +| test.c:466:14:466:15 | ip | 1302.0 | +| test.c:466:14:466:20 | ... * ... | 1302.0 | +| test.c:466:14:466:25 | ... + ... | 1302.0 | +| test.c:466:19:466:20 | 14 | 1.0 | +| test.c:466:19:466:20 | (unsigned int)... | 1.0 | +| test.c:466:24:466:25 | 64 | 1.0 | +| test.c:466:24:466:25 | (unsigned int)... | 1.0 | +| test.c:467:9:471:22 | (...) | 1.7677595125E10 | +| test.c:467:10:467:21 | (...) | 1302.0 | +| test.c:467:10:467:26 | ... * ... | 1302.0 | +| test.c:467:10:467:80 | ... > ... | 1.0 | +| test.c:467:10:471:21 | ... ? ... : ... | 1.7677595125E10 | +| test.c:467:11:467:11 | 2 | 1.0 | +| test.c:467:11:467:11 | (unsigned int)... | 1.0 | +| test.c:467:11:467:16 | ... * ... | 1302.0 | +| test.c:467:11:467:20 | ... + ... | 1302.0 | +| test.c:467:15:467:16 | ip | 1302.0 | +| test.c:467:20:467:20 | 1 | 1.0 | +| test.c:467:20:467:20 | (unsigned int)... | 1.0 | +| test.c:467:25:467:26 | 14 | 1.0 | +| test.c:467:25:467:26 | (unsigned int)... | 1.0 | +| test.c:467:30:467:80 | (...) | 1695204.0 | +| test.c:467:31:467:32 | 17 | 1.0 | +| test.c:467:31:467:32 | (unsigned int)... | 1.0 | +| test.c:467:31:467:43 | ... * ... | 1302.0 | +| test.c:467:31:467:53 | ... > ... | 1.0 | +| test.c:467:31:467:79 | ... ? ... : ... | 1695204.0 | +| test.c:467:36:467:43 | (...) | 1302.0 | +| test.c:467:37:467:37 | 2 | 1.0 | +| test.c:467:37:467:37 | (unsigned int)... | 1.0 | +| test.c:467:37:467:42 | ... * ... | 1302.0 | +| test.c:467:41:467:42 | ip | 1302.0 | +| test.c:467:47:467:48 | 17 | 1.0 | +| test.c:467:47:467:48 | (unsigned int)... | 1.0 | +| test.c:467:47:467:53 | ... * ... | 1302.0 | +| test.c:467:52:467:53 | ip | 1302.0 | +| test.c:467:57:467:58 | 17 | 1.0 | +| test.c:467:57:467:58 | (unsigned int)... | 1.0 | +| test.c:467:57:467:69 | ... * ... | 1302.0 | +| test.c:467:62:467:69 | (...) | 1302.0 | +| test.c:467:63:467:63 | 2 | 1.0 | +| test.c:467:63:467:63 | (unsigned int)... | 1.0 | +| test.c:467:63:467:68 | ... * ... | 1302.0 | +| test.c:467:67:467:68 | ip | 1302.0 | +| test.c:467:73:467:74 | 17 | 1.0 | +| test.c:467:73:467:74 | (unsigned int)... | 1.0 | +| test.c:467:73:467:79 | ... * ... | 1302.0 | +| test.c:467:78:467:79 | ip | 1302.0 | +| test.c:468:13:468:24 | (...) | 2605.0 | +| test.c:468:13:468:29 | ... * ... | 2605.0 | +| test.c:468:14:468:14 | 2 | 1.0 | +| test.c:468:14:468:14 | (unsigned int)... | 1.0 | +| test.c:468:14:468:19 | ... * ... | 2605.0 | +| test.c:468:14:468:23 | ... + ... | 2605.0 | +| test.c:468:18:468:19 | ip | 2605.0 | +| test.c:468:23:468:23 | 1 | 1.0 | +| test.c:468:23:468:23 | (unsigned int)... | 1.0 | +| test.c:468:28:468:29 | 14 | 1.0 | +| test.c:468:28:468:29 | (unsigned int)... | 1.0 | +| test.c:469:13:469:14 | 14 | 1.0 | +| test.c:469:13:469:14 | (unsigned int)... | 1.0 | +| test.c:469:13:469:25 | ... * ... | 2605.0 | +| test.c:469:13:469:35 | ... > ... | 1.0 | +| test.c:469:13:471:21 | ... ? ... : ... | 6786025.0 | +| test.c:469:18:469:25 | (...) | 2605.0 | +| test.c:469:19:469:19 | 2 | 1.0 | +| test.c:469:19:469:19 | (unsigned int)... | 1.0 | +| test.c:469:19:469:24 | ... * ... | 2605.0 | +| test.c:469:23:469:24 | ip | 2605.0 | +| test.c:469:29:469:30 | 17 | 1.0 | +| test.c:469:29:469:30 | (unsigned int)... | 1.0 | +| test.c:469:29:469:35 | ... * ... | 2605.0 | +| test.c:469:34:469:35 | ip | 2605.0 | +| test.c:470:15:470:16 | 14 | 1.0 | +| test.c:470:15:470:16 | (unsigned int)... | 1.0 | +| test.c:470:15:470:27 | ... * ... | 2605.0 | +| test.c:470:20:470:27 | (...) | 2605.0 | +| test.c:470:21:470:21 | 2 | 1.0 | +| test.c:470:21:470:21 | (unsigned int)... | 1.0 | +| test.c:470:21:470:26 | ... * ... | 2605.0 | +| test.c:470:25:470:26 | ip | 2605.0 | +| test.c:471:15:471:16 | 14 | 1.0 | +| test.c:471:15:471:16 | (unsigned int)... | 1.0 | +| test.c:471:15:471:21 | ... * ... | 2605.0 | +| test.c:471:20:471:21 | ip | 2605.0 | +| test.c:472:9:472:10 | 14 | 1.0 | +| test.c:472:9:472:10 | (unsigned int)... | 1.0 | +| test.c:472:9:472:15 | ... * ... | 1302.0 | +| test.c:472:9:472:31 | ... > ... | 1.0 | +| test.c:472:9:474:23 | ... ? ... : ... | 1695204.0 | +| test.c:472:14:472:15 | ip | 1302.0 | +| test.c:472:19:472:26 | (...) | 1302.0 | +| test.c:472:19:472:31 | ... * ... | 1302.0 | +| test.c:472:20:472:21 | ip | 1302.0 | +| test.c:472:20:472:25 | ... + ... | 1302.0 | +| test.c:472:25:472:25 | 1 | 1.0 | +| test.c:472:25:472:25 | (unsigned int)... | 1.0 | +| test.c:472:30:472:31 | 17 | 1.0 | +| test.c:472:30:472:31 | (unsigned int)... | 1.0 | +| test.c:473:11:473:12 | 14 | 1.0 | +| test.c:473:11:473:12 | (unsigned int)... | 1.0 | +| test.c:473:11:473:17 | ... * ... | 1302.0 | +| test.c:473:16:473:17 | ip | 1302.0 | +| test.c:474:11:474:18 | (...) | 1302.0 | +| test.c:474:11:474:23 | ... * ... | 1302.0 | +| test.c:474:12:474:13 | ip | 1302.0 | +| test.c:474:12:474:17 | ... + ... | 1302.0 | +| test.c:474:17:474:17 | 1 | 1.0 | +| test.c:474:17:474:17 | (unsigned int)... | 1.0 | +| test.c:474:22:474:23 | 14 | 1.0 | +| test.c:474:22:474:23 | (unsigned int)... | 1.0 | +| test.c:475:9:475:9 | 2 | 1.0 | +| test.c:475:9:475:9 | (unsigned int)... | 1.0 | +| test.c:475:9:475:26 | ... * ... | 10419.0 | +| test.c:475:9:495:44 | ... + ... | 1.9449636104972528E43 | +| test.c:475:13:475:26 | (...) | 10419.0 | +| test.c:475:14:475:15 | ip | 10419.0 | +| test.c:475:14:475:20 | ... * ... | 10419.0 | +| test.c:475:14:475:25 | ... + ... | 10419.0 | +| test.c:475:19:475:20 | 14 | 1.0 | +| test.c:475:19:475:20 | (unsigned int)... | 1.0 | +| test.c:475:24:475:25 | 32 | 1.0 | +| test.c:475:24:475:25 | (unsigned int)... | 1.0 | +| test.c:476:9:495:44 | (...) | 1.8667469147684545E39 | +| test.c:476:10:476:10 | 4 | 1.0 | +| test.c:476:10:476:10 | (unsigned int)... | 1.0 | +| test.c:476:10:476:27 | ... * ... | 10419.0 | +| test.c:476:10:477:28 | ... + ... | 1.08555561E8 | +| test.c:476:10:478:28 | ... + ... | 1.131040390059E12 | +| test.c:476:10:484:24 | ... + ... | 1.0235492350954187E25 | +| test.c:476:10:485:39 | ... > ... | 1.0 | +| test.c:476:10:495:43 | ... ? ... : ... | 1.8667469147684545E39 | +| test.c:476:14:476:27 | (...) | 10419.0 | +| test.c:476:15:476:16 | ip | 10419.0 | +| test.c:476:15:476:21 | ... * ... | 10419.0 | +| test.c:476:15:476:26 | ... + ... | 10419.0 | +| test.c:476:20:476:21 | 14 | 1.0 | +| test.c:476:20:476:21 | (unsigned int)... | 1.0 | +| test.c:476:25:476:26 | 32 | 1.0 | +| test.c:476:25:476:26 | (unsigned int)... | 1.0 | +| test.c:477:11:477:28 | (...) | 10419.0 | +| test.c:477:12:477:12 | 2 | 1.0 | +| test.c:477:12:477:12 | (unsigned int)... | 1.0 | +| test.c:477:12:477:17 | ... * ... | 10419.0 | +| test.c:477:12:477:22 | ... * ... | 10419.0 | +| test.c:477:12:477:27 | ... + ... | 10419.0 | +| test.c:477:16:477:17 | ip | 10419.0 | +| test.c:477:21:477:22 | 14 | 1.0 | +| test.c:477:21:477:22 | (unsigned int)... | 1.0 | +| test.c:477:26:477:27 | 32 | 1.0 | +| test.c:477:26:477:27 | (unsigned int)... | 1.0 | +| test.c:478:11:478:11 | 2 | 1.0 | +| test.c:478:11:478:11 | (unsigned int)... | 1.0 | +| test.c:478:11:478:28 | ... * ... | 10419.0 | +| test.c:478:15:478:28 | (...) | 10419.0 | +| test.c:478:16:478:17 | ip | 10419.0 | +| test.c:478:16:478:22 | ... * ... | 10419.0 | +| test.c:478:16:478:27 | ... + ... | 10419.0 | +| test.c:478:21:478:22 | 14 | 1.0 | +| test.c:478:21:478:22 | (unsigned int)... | 1.0 | +| test.c:478:26:478:27 | 64 | 1.0 | +| test.c:478:26:478:27 | (unsigned int)... | 1.0 | +| test.c:479:11:484:24 | (...) | 9.049625849719E12 | +| test.c:479:12:479:23 | (...) | 10419.0 | +| test.c:479:12:479:28 | ... * ... | 10419.0 | +| test.c:479:12:480:61 | ... > ... | 1.0 | +| test.c:479:12:484:23 | ... ? ... : ... | 9.049625849719E12 | +| test.c:479:13:479:13 | 2 | 1.0 | +| test.c:479:13:479:13 | (unsigned int)... | 1.0 | +| test.c:479:13:479:18 | ... * ... | 10419.0 | +| test.c:479:13:479:22 | ... + ... | 10419.0 | +| test.c:479:17:479:18 | ip | 10419.0 | +| test.c:479:22:479:22 | 1 | 1.0 | +| test.c:479:22:479:22 | (unsigned int)... | 1.0 | +| test.c:479:27:479:28 | 14 | 1.0 | +| test.c:479:27:479:28 | (unsigned int)... | 1.0 | +| test.c:480:11:480:61 | (...) | 1.08555561E8 | +| test.c:480:12:480:13 | 14 | 1.0 | +| test.c:480:12:480:13 | (unsigned int)... | 1.0 | +| test.c:480:12:480:24 | ... * ... | 10419.0 | +| test.c:480:12:480:34 | ... > ... | 1.0 | +| test.c:480:12:480:60 | ... ? ... : ... | 1.08555561E8 | +| test.c:480:17:480:24 | (...) | 10419.0 | +| test.c:480:18:480:18 | 2 | 1.0 | +| test.c:480:18:480:18 | (unsigned int)... | 1.0 | +| test.c:480:18:480:23 | ... * ... | 10419.0 | +| test.c:480:22:480:23 | ip | 10419.0 | +| test.c:480:28:480:29 | 17 | 1.0 | +| test.c:480:28:480:29 | (unsigned int)... | 1.0 | +| test.c:480:28:480:34 | ... * ... | 10419.0 | +| test.c:480:33:480:34 | ip | 10419.0 | +| test.c:480:38:480:39 | 17 | 1.0 | +| test.c:480:38:480:39 | (unsigned int)... | 1.0 | +| test.c:480:38:480:50 | ... * ... | 10419.0 | +| test.c:480:43:480:50 | (...) | 10419.0 | +| test.c:480:44:480:44 | 2 | 1.0 | +| test.c:480:44:480:44 | (unsigned int)... | 1.0 | +| test.c:480:44:480:49 | ... * ... | 10419.0 | +| test.c:480:48:480:49 | ip | 10419.0 | +| test.c:480:54:480:55 | 17 | 1.0 | +| test.c:480:54:480:55 | (unsigned int)... | 1.0 | +| test.c:480:54:480:60 | ... * ... | 10419.0 | +| test.c:480:59:480:60 | ip | 10419.0 | +| test.c:481:15:481:26 | (...) | 20839.0 | +| test.c:481:15:481:31 | ... * ... | 20839.0 | +| test.c:481:16:481:16 | 2 | 1.0 | +| test.c:481:16:481:16 | (unsigned int)... | 1.0 | +| test.c:481:16:481:21 | ... * ... | 20839.0 | +| test.c:481:16:481:25 | ... + ... | 20839.0 | +| test.c:481:20:481:21 | ip | 20839.0 | +| test.c:481:25:481:25 | 1 | 1.0 | +| test.c:481:25:481:25 | (unsigned int)... | 1.0 | +| test.c:481:30:481:31 | 14 | 1.0 | +| test.c:481:30:481:31 | (unsigned int)... | 1.0 | +| test.c:482:15:482:16 | 14 | 1.0 | +| test.c:482:15:482:16 | (unsigned int)... | 1.0 | +| test.c:482:15:482:27 | ... * ... | 20839.0 | +| test.c:482:15:482:37 | ... > ... | 1.0 | +| test.c:482:15:484:23 | ... ? ... : ... | 4.34263921E8 | +| test.c:482:20:482:27 | (...) | 20839.0 | +| test.c:482:21:482:21 | 2 | 1.0 | +| test.c:482:21:482:21 | (unsigned int)... | 1.0 | +| test.c:482:21:482:26 | ... * ... | 20839.0 | +| test.c:482:25:482:26 | ip | 20839.0 | +| test.c:482:31:482:32 | 17 | 1.0 | +| test.c:482:31:482:32 | (unsigned int)... | 1.0 | +| test.c:482:31:482:37 | ... * ... | 20839.0 | +| test.c:482:36:482:37 | ip | 20839.0 | +| test.c:483:17:483:18 | 14 | 1.0 | +| test.c:483:17:483:18 | (unsigned int)... | 1.0 | +| test.c:483:17:483:29 | ... * ... | 20839.0 | +| test.c:483:22:483:29 | (...) | 20839.0 | +| test.c:483:23:483:23 | 2 | 1.0 | +| test.c:483:23:483:23 | (unsigned int)... | 1.0 | +| test.c:483:23:483:28 | ... * ... | 20839.0 | +| test.c:483:27:483:28 | ip | 20839.0 | +| test.c:484:17:484:18 | 14 | 1.0 | +| test.c:484:17:484:18 | (unsigned int)... | 1.0 | +| test.c:484:17:484:23 | ... * ... | 20839.0 | +| test.c:484:22:484:23 | ip | 20839.0 | +| test.c:485:9:485:9 | 2 | 1.0 | +| test.c:485:9:485:9 | (unsigned int)... | 1.0 | +| test.c:485:9:485:14 | ... * ... | 62517.0 | +| test.c:485:9:485:19 | ... * ... | 62517.0 | +| test.c:485:9:485:39 | ... + ... | 3.908375289E9 | +| test.c:485:13:485:14 | ip | 62517.0 | +| test.c:485:18:485:19 | 14 | 1.0 | +| test.c:485:18:485:19 | (unsigned int)... | 1.0 | +| test.c:485:23:485:34 | (...) | 62517.0 | +| test.c:485:23:485:39 | ... * ... | 62517.0 | +| test.c:485:24:485:24 | 2 | 1.0 | +| test.c:485:24:485:24 | (unsigned int)... | 1.0 | +| test.c:485:24:485:29 | ... * ... | 62517.0 | +| test.c:485:24:485:33 | ... + ... | 62517.0 | +| test.c:485:28:485:29 | ip | 62517.0 | +| test.c:485:33:485:33 | 1 | 1.0 | +| test.c:485:33:485:33 | (unsigned int)... | 1.0 | +| test.c:485:38:485:39 | 17 | 1.0 | +| test.c:485:38:485:39 | (unsigned int)... | 1.0 | +| test.c:486:13:486:13 | 4 | 1.0 | +| test.c:486:13:486:13 | (unsigned int)... | 1.0 | +| test.c:486:13:486:30 | ... * ... | 62517.0 | +| test.c:486:13:487:30 | ... + ... | 3.908375289E9 | +| test.c:486:13:488:30 | ... + ... | 2.44339897942413E14 | +| test.c:486:13:494:26 | ... + ... | 4.7762734556795386E29 | +| test.c:486:17:486:30 | (...) | 62517.0 | +| test.c:486:18:486:19 | ip | 62517.0 | +| test.c:486:18:486:24 | ... * ... | 62517.0 | +| test.c:486:18:486:29 | ... + ... | 62517.0 | +| test.c:486:23:486:24 | 14 | 1.0 | +| test.c:486:23:486:24 | (unsigned int)... | 1.0 | +| test.c:486:28:486:29 | 32 | 1.0 | +| test.c:486:28:486:29 | (unsigned int)... | 1.0 | +| test.c:487:13:487:30 | (...) | 62517.0 | +| test.c:487:14:487:14 | 2 | 1.0 | +| test.c:487:14:487:14 | (unsigned int)... | 1.0 | +| test.c:487:14:487:19 | ... * ... | 62517.0 | +| test.c:487:14:487:24 | ... * ... | 62517.0 | +| test.c:487:14:487:29 | ... + ... | 62517.0 | +| test.c:487:18:487:19 | ip | 62517.0 | +| test.c:487:23:487:24 | 14 | 1.0 | +| test.c:487:23:487:24 | (unsigned int)... | 1.0 | +| test.c:487:28:487:29 | 32 | 1.0 | +| test.c:487:28:487:29 | (unsigned int)... | 1.0 | +| test.c:488:13:488:13 | 2 | 1.0 | +| test.c:488:13:488:13 | (unsigned int)... | 1.0 | +| test.c:488:13:488:30 | ... * ... | 62517.0 | +| test.c:488:17:488:30 | (...) | 62517.0 | +| test.c:488:18:488:19 | ip | 62517.0 | +| test.c:488:18:488:24 | ... * ... | 62517.0 | +| test.c:488:18:488:29 | ... + ... | 62517.0 | +| test.c:488:23:488:24 | 14 | 1.0 | +| test.c:488:23:488:24 | (unsigned int)... | 1.0 | +| test.c:488:28:488:29 | 64 | 1.0 | +| test.c:488:28:488:29 | (unsigned int)... | 1.0 | +| test.c:489:13:494:26 | (...) | 1.954766084417875E15 | +| test.c:489:14:489:25 | (...) | 62517.0 | +| test.c:489:14:489:30 | ... * ... | 62517.0 | +| test.c:489:14:490:63 | ... > ... | 1.0 | +| test.c:489:14:494:25 | ... ? ... : ... | 1.954766084417875E15 | +| test.c:489:15:489:15 | 2 | 1.0 | +| test.c:489:15:489:15 | (unsigned int)... | 1.0 | +| test.c:489:15:489:20 | ... * ... | 62517.0 | +| test.c:489:15:489:24 | ... + ... | 62517.0 | +| test.c:489:19:489:20 | ip | 62517.0 | +| test.c:489:24:489:24 | 1 | 1.0 | +| test.c:489:24:489:24 | (unsigned int)... | 1.0 | +| test.c:489:29:489:30 | 14 | 1.0 | +| test.c:489:29:489:30 | (unsigned int)... | 1.0 | +| test.c:490:13:490:63 | (...) | 3.908375289E9 | +| test.c:490:14:490:15 | 14 | 1.0 | +| test.c:490:14:490:15 | (unsigned int)... | 1.0 | +| test.c:490:14:490:26 | ... * ... | 62517.0 | +| test.c:490:14:490:36 | ... > ... | 1.0 | +| test.c:490:14:490:62 | ... ? ... : ... | 3.908375289E9 | +| test.c:490:19:490:26 | (...) | 62517.0 | +| test.c:490:20:490:20 | 2 | 1.0 | +| test.c:490:20:490:20 | (unsigned int)... | 1.0 | +| test.c:490:20:490:25 | ... * ... | 62517.0 | +| test.c:490:24:490:25 | ip | 62517.0 | +| test.c:490:30:490:31 | 17 | 1.0 | +| test.c:490:30:490:31 | (unsigned int)... | 1.0 | +| test.c:490:30:490:36 | ... * ... | 62517.0 | +| test.c:490:35:490:36 | ip | 62517.0 | +| test.c:490:40:490:41 | 17 | 1.0 | +| test.c:490:40:490:41 | (unsigned int)... | 1.0 | +| test.c:490:40:490:52 | ... * ... | 62517.0 | +| test.c:490:45:490:52 | (...) | 62517.0 | +| test.c:490:46:490:46 | 2 | 1.0 | +| test.c:490:46:490:46 | (unsigned int)... | 1.0 | +| test.c:490:46:490:51 | ... * ... | 62517.0 | +| test.c:490:50:490:51 | ip | 62517.0 | +| test.c:490:56:490:57 | 17 | 1.0 | +| test.c:490:56:490:57 | (unsigned int)... | 1.0 | +| test.c:490:56:490:62 | ... * ... | 62517.0 | +| test.c:490:61:490:62 | ip | 62517.0 | +| test.c:491:17:491:28 | (...) | 125035.0 | +| test.c:491:17:491:33 | ... * ... | 125035.0 | +| test.c:491:18:491:18 | 2 | 1.0 | +| test.c:491:18:491:18 | (unsigned int)... | 1.0 | +| test.c:491:18:491:23 | ... * ... | 125035.0 | +| test.c:491:18:491:27 | ... + ... | 125035.0 | +| test.c:491:22:491:23 | ip | 125035.0 | +| test.c:491:27:491:27 | 1 | 1.0 | +| test.c:491:27:491:27 | (unsigned int)... | 1.0 | +| test.c:491:32:491:33 | 14 | 1.0 | +| test.c:491:32:491:33 | (unsigned int)... | 1.0 | +| test.c:492:17:492:18 | 14 | 1.0 | +| test.c:492:17:492:18 | (unsigned int)... | 1.0 | +| test.c:492:17:492:29 | ... * ... | 125035.0 | +| test.c:492:17:492:39 | ... > ... | 1.0 | +| test.c:492:17:494:25 | ... ? ... : ... | 1.5633751225E10 | +| test.c:492:22:492:29 | (...) | 125035.0 | +| test.c:492:23:492:23 | 2 | 1.0 | +| test.c:492:23:492:23 | (unsigned int)... | 1.0 | +| test.c:492:23:492:28 | ... * ... | 125035.0 | +| test.c:492:27:492:28 | ip | 125035.0 | +| test.c:492:33:492:34 | 17 | 1.0 | +| test.c:492:33:492:34 | (unsigned int)... | 1.0 | +| test.c:492:33:492:39 | ... * ... | 125035.0 | +| test.c:492:38:492:39 | ip | 125035.0 | +| test.c:493:19:493:20 | 14 | 1.0 | +| test.c:493:19:493:20 | (unsigned int)... | 1.0 | +| test.c:493:19:493:31 | ... * ... | 125035.0 | +| test.c:493:24:493:31 | (...) | 125035.0 | +| test.c:493:25:493:25 | 2 | 1.0 | +| test.c:493:25:493:25 | (unsigned int)... | 1.0 | +| test.c:493:25:493:30 | ... * ... | 125035.0 | +| test.c:493:29:493:30 | ip | 125035.0 | +| test.c:494:19:494:20 | 14 | 1.0 | +| test.c:494:19:494:20 | (unsigned int)... | 1.0 | +| test.c:494:19:494:25 | ... * ... | 125035.0 | +| test.c:494:24:494:25 | ip | 125035.0 | +| test.c:495:13:495:13 | 2 | 1.0 | +| test.c:495:13:495:13 | (unsigned int)... | 1.0 | +| test.c:495:13:495:18 | ... * ... | 62517.0 | +| test.c:495:13:495:23 | ... * ... | 62517.0 | +| test.c:495:13:495:43 | ... + ... | 3.908375289E9 | +| test.c:495:17:495:18 | ip | 62517.0 | +| test.c:495:22:495:23 | 14 | 1.0 | +| test.c:495:22:495:23 | (unsigned int)... | 1.0 | +| test.c:495:27:495:38 | (...) | 62517.0 | +| test.c:495:27:495:43 | ... * ... | 62517.0 | +| test.c:495:28:495:28 | 2 | 1.0 | +| test.c:495:28:495:28 | (unsigned int)... | 1.0 | +| test.c:495:28:495:33 | ... * ... | 62517.0 | +| test.c:495:28:495:37 | ... + ... | 62517.0 | +| test.c:495:32:495:33 | ip | 62517.0 | +| test.c:495:37:495:37 | 1 | 1.0 | +| test.c:495:37:495:37 | (unsigned int)... | 1.0 | +| test.c:495:42:495:43 | 17 | 1.0 | +| test.c:495:42:495:43 | (unsigned int)... | 1.0 | +| test.c:496:9:496:9 | 4 | 1.0 | +| test.c:496:9:496:9 | (unsigned int)... | 1.0 | +| test.c:496:9:496:26 | ... * ... | 10419.0 | +| test.c:496:9:497:30 | ... + ... | 1.08555561E8 | +| test.c:496:9:498:30 | ... + ... | 1.131040390059E12 | +| test.c:496:9:504:26 | ... + ... | 1.0235492350954187E25 | +| test.c:496:9:505:61 | ... > ... | 1.0 | +| test.c:496:9:517:25 | ... ? ... : ... | 4.778814771623795E41 | +| test.c:496:13:496:26 | (...) | 10419.0 | +| test.c:496:14:496:15 | ip | 10419.0 | +| test.c:496:14:496:20 | ... * ... | 10419.0 | +| test.c:496:14:496:25 | ... + ... | 10419.0 | +| test.c:496:19:496:20 | 14 | 1.0 | +| test.c:496:19:496:20 | (unsigned int)... | 1.0 | +| test.c:496:24:496:25 | 32 | 1.0 | +| test.c:496:24:496:25 | (unsigned int)... | 1.0 | +| test.c:497:13:497:30 | (...) | 10419.0 | +| test.c:497:14:497:14 | 2 | 1.0 | +| test.c:497:14:497:14 | (unsigned int)... | 1.0 | +| test.c:497:14:497:19 | ... * ... | 10419.0 | +| test.c:497:14:497:24 | ... * ... | 10419.0 | +| test.c:497:14:497:29 | ... + ... | 10419.0 | +| test.c:497:18:497:19 | ip | 10419.0 | +| test.c:497:23:497:24 | 14 | 1.0 | +| test.c:497:23:497:24 | (unsigned int)... | 1.0 | +| test.c:497:28:497:29 | 32 | 1.0 | +| test.c:497:28:497:29 | (unsigned int)... | 1.0 | +| test.c:498:13:498:13 | 2 | 1.0 | +| test.c:498:13:498:13 | (unsigned int)... | 1.0 | +| test.c:498:13:498:30 | ... * ... | 10419.0 | +| test.c:498:17:498:30 | (...) | 10419.0 | +| test.c:498:18:498:19 | ip | 10419.0 | +| test.c:498:18:498:24 | ... * ... | 10419.0 | +| test.c:498:18:498:29 | ... + ... | 10419.0 | +| test.c:498:23:498:24 | 14 | 1.0 | +| test.c:498:23:498:24 | (unsigned int)... | 1.0 | +| test.c:498:28:498:29 | 64 | 1.0 | +| test.c:498:28:498:29 | (unsigned int)... | 1.0 | +| test.c:499:13:504:26 | (...) | 9.049625849719E12 | +| test.c:499:14:499:25 | (...) | 10419.0 | +| test.c:499:14:499:30 | ... * ... | 10419.0 | +| test.c:499:14:500:63 | ... > ... | 1.0 | +| test.c:499:14:504:25 | ... ? ... : ... | 9.049625849719E12 | +| test.c:499:15:499:15 | 2 | 1.0 | +| test.c:499:15:499:15 | (unsigned int)... | 1.0 | +| test.c:499:15:499:20 | ... * ... | 10419.0 | +| test.c:499:15:499:24 | ... + ... | 10419.0 | +| test.c:499:19:499:20 | ip | 10419.0 | +| test.c:499:24:499:24 | 1 | 1.0 | +| test.c:499:24:499:24 | (unsigned int)... | 1.0 | +| test.c:499:29:499:30 | 14 | 1.0 | +| test.c:499:29:499:30 | (unsigned int)... | 1.0 | +| test.c:500:13:500:63 | (...) | 1.08555561E8 | +| test.c:500:14:500:15 | 14 | 1.0 | +| test.c:500:14:500:15 | (unsigned int)... | 1.0 | +| test.c:500:14:500:26 | ... * ... | 10419.0 | +| test.c:500:14:500:36 | ... > ... | 1.0 | +| test.c:500:14:500:62 | ... ? ... : ... | 1.08555561E8 | +| test.c:500:19:500:26 | (...) | 10419.0 | +| test.c:500:20:500:20 | 2 | 1.0 | +| test.c:500:20:500:20 | (unsigned int)... | 1.0 | +| test.c:500:20:500:25 | ... * ... | 10419.0 | +| test.c:500:24:500:25 | ip | 10419.0 | +| test.c:500:30:500:31 | 17 | 1.0 | +| test.c:500:30:500:31 | (unsigned int)... | 1.0 | +| test.c:500:30:500:36 | ... * ... | 10419.0 | +| test.c:500:35:500:36 | ip | 10419.0 | +| test.c:500:40:500:41 | 17 | 1.0 | +| test.c:500:40:500:41 | (unsigned int)... | 1.0 | +| test.c:500:40:500:52 | ... * ... | 10419.0 | +| test.c:500:45:500:52 | (...) | 10419.0 | +| test.c:500:46:500:46 | 2 | 1.0 | +| test.c:500:46:500:46 | (unsigned int)... | 1.0 | +| test.c:500:46:500:51 | ... * ... | 10419.0 | +| test.c:500:50:500:51 | ip | 10419.0 | +| test.c:500:56:500:57 | 17 | 1.0 | +| test.c:500:56:500:57 | (unsigned int)... | 1.0 | +| test.c:500:56:500:62 | ... * ... | 10419.0 | +| test.c:500:61:500:62 | ip | 10419.0 | +| test.c:501:17:501:28 | (...) | 20839.0 | +| test.c:501:17:501:33 | ... * ... | 20839.0 | +| test.c:501:18:501:18 | 2 | 1.0 | +| test.c:501:18:501:18 | (unsigned int)... | 1.0 | +| test.c:501:18:501:23 | ... * ... | 20839.0 | +| test.c:501:18:501:27 | ... + ... | 20839.0 | +| test.c:501:22:501:23 | ip | 20839.0 | +| test.c:501:27:501:27 | 1 | 1.0 | +| test.c:501:27:501:27 | (unsigned int)... | 1.0 | +| test.c:501:32:501:33 | 14 | 1.0 | +| test.c:501:32:501:33 | (unsigned int)... | 1.0 | +| test.c:502:17:502:18 | 14 | 1.0 | +| test.c:502:17:502:18 | (unsigned int)... | 1.0 | +| test.c:502:17:502:29 | ... * ... | 20839.0 | +| test.c:502:17:502:39 | ... > ... | 1.0 | +| test.c:502:17:504:25 | ... ? ... : ... | 4.34263921E8 | +| test.c:502:22:502:29 | (...) | 20839.0 | +| test.c:502:23:502:23 | 2 | 1.0 | +| test.c:502:23:502:23 | (unsigned int)... | 1.0 | +| test.c:502:23:502:28 | ... * ... | 20839.0 | +| test.c:502:27:502:28 | ip | 20839.0 | +| test.c:502:33:502:34 | 17 | 1.0 | +| test.c:502:33:502:34 | (unsigned int)... | 1.0 | +| test.c:502:33:502:39 | ... * ... | 20839.0 | +| test.c:502:38:502:39 | ip | 20839.0 | +| test.c:503:19:503:20 | 14 | 1.0 | +| test.c:503:19:503:20 | (unsigned int)... | 1.0 | +| test.c:503:19:503:31 | ... * ... | 20839.0 | +| test.c:503:24:503:31 | (...) | 20839.0 | +| test.c:503:25:503:25 | 2 | 1.0 | +| test.c:503:25:503:25 | (unsigned int)... | 1.0 | +| test.c:503:25:503:30 | ... * ... | 20839.0 | +| test.c:503:29:503:30 | ip | 20839.0 | +| test.c:504:19:504:20 | 14 | 1.0 | +| test.c:504:19:504:20 | (unsigned int)... | 1.0 | +| test.c:504:19:504:25 | ... * ... | 20839.0 | +| test.c:504:24:504:25 | ip | 20839.0 | +| test.c:505:11:505:61 | (...) | 3.908375289E9 | +| test.c:505:12:505:13 | 14 | 1.0 | +| test.c:505:12:505:13 | (unsigned int)... | 1.0 | +| test.c:505:12:505:18 | ... * ... | 62517.0 | +| test.c:505:12:505:34 | ... > ... | 1.0 | +| test.c:505:12:505:60 | ... ? ... : ... | 3.908375289E9 | +| test.c:505:17:505:18 | ip | 62517.0 | +| test.c:505:22:505:29 | (...) | 62517.0 | +| test.c:505:22:505:34 | ... * ... | 62517.0 | +| test.c:505:23:505:24 | ip | 62517.0 | +| test.c:505:23:505:28 | ... + ... | 62517.0 | +| test.c:505:28:505:28 | 1 | 1.0 | +| test.c:505:28:505:28 | (unsigned int)... | 1.0 | +| test.c:505:33:505:34 | 17 | 1.0 | +| test.c:505:33:505:34 | (unsigned int)... | 1.0 | +| test.c:505:38:505:39 | 17 | 1.0 | +| test.c:505:38:505:39 | (unsigned int)... | 1.0 | +| test.c:505:38:505:44 | ... * ... | 62517.0 | +| test.c:505:43:505:44 | ip | 62517.0 | +| test.c:505:48:505:55 | (...) | 62517.0 | +| test.c:505:48:505:60 | ... * ... | 62517.0 | +| test.c:505:49:505:50 | ip | 62517.0 | +| test.c:505:49:505:54 | ... + ... | 62517.0 | +| test.c:505:54:505:54 | 1 | 1.0 | +| test.c:505:54:505:54 | (unsigned int)... | 1.0 | +| test.c:505:59:505:60 | 17 | 1.0 | +| test.c:505:59:505:60 | (unsigned int)... | 1.0 | +| test.c:506:11:506:11 | 4 | 1.0 | +| test.c:506:11:506:11 | (unsigned int)... | 1.0 | +| test.c:506:11:506:28 | ... * ... | 125034.0 | +| test.c:506:11:507:28 | ... + ... | 1.5633501156E10 | +| test.c:506:11:508:28 | ... + ... | 1.954719183539304E15 | +| test.c:506:11:514:24 | ... + ... | 3.056778340269433E31 | +| test.c:506:15:506:28 | (...) | 125034.0 | +| test.c:506:16:506:17 | ip | 125034.0 | +| test.c:506:16:506:22 | ... * ... | 125034.0 | +| test.c:506:16:506:27 | ... + ... | 125034.0 | +| test.c:506:21:506:22 | 14 | 1.0 | +| test.c:506:21:506:22 | (unsigned int)... | 1.0 | +| test.c:506:26:506:27 | 32 | 1.0 | +| test.c:506:26:506:27 | (unsigned int)... | 1.0 | +| test.c:507:11:507:28 | (...) | 125034.0 | +| test.c:507:12:507:12 | 2 | 1.0 | +| test.c:507:12:507:12 | (unsigned int)... | 1.0 | +| test.c:507:12:507:17 | ... * ... | 125034.0 | +| test.c:507:12:507:22 | ... * ... | 125034.0 | +| test.c:507:12:507:27 | ... + ... | 125034.0 | +| test.c:507:16:507:17 | ip | 125034.0 | +| test.c:507:21:507:22 | 14 | 1.0 | +| test.c:507:21:507:22 | (unsigned int)... | 1.0 | +| test.c:507:26:507:27 | 32 | 1.0 | +| test.c:507:26:507:27 | (unsigned int)... | 1.0 | +| test.c:508:11:508:11 | 2 | 1.0 | +| test.c:508:11:508:11 | (unsigned int)... | 1.0 | +| test.c:508:11:508:28 | ... * ... | 125034.0 | +| test.c:508:15:508:28 | (...) | 125034.0 | +| test.c:508:16:508:17 | ip | 125034.0 | +| test.c:508:16:508:22 | ... * ... | 125034.0 | +| test.c:508:16:508:27 | ... + ... | 125034.0 | +| test.c:508:21:508:22 | 14 | 1.0 | +| test.c:508:21:508:22 | (unsigned int)... | 1.0 | +| test.c:508:26:508:27 | 64 | 1.0 | +| test.c:508:26:508:27 | (unsigned int)... | 1.0 | +| test.c:509:11:514:24 | (...) | 1.5637941071078508E16 | +| test.c:509:12:509:23 | (...) | 125034.0 | +| test.c:509:12:509:28 | ... * ... | 125034.0 | +| test.c:509:12:510:61 | ... > ... | 1.0 | +| test.c:509:12:514:23 | ... ? ... : ... | 1.5637941071078508E16 | +| test.c:509:13:509:13 | 2 | 1.0 | +| test.c:509:13:509:13 | (unsigned int)... | 1.0 | +| test.c:509:13:509:18 | ... * ... | 125034.0 | +| test.c:509:13:509:22 | ... + ... | 125034.0 | +| test.c:509:17:509:18 | ip | 125034.0 | +| test.c:509:22:509:22 | 1 | 1.0 | +| test.c:509:22:509:22 | (unsigned int)... | 1.0 | +| test.c:509:27:509:28 | 14 | 1.0 | +| test.c:509:27:509:28 | (unsigned int)... | 1.0 | +| test.c:510:11:510:61 | (...) | 1.5633501156E10 | +| test.c:510:12:510:13 | 14 | 1.0 | +| test.c:510:12:510:13 | (unsigned int)... | 1.0 | +| test.c:510:12:510:24 | ... * ... | 125034.0 | +| test.c:510:12:510:34 | ... > ... | 1.0 | +| test.c:510:12:510:60 | ... ? ... : ... | 1.5633501156E10 | +| test.c:510:17:510:24 | (...) | 125034.0 | +| test.c:510:18:510:18 | 2 | 1.0 | +| test.c:510:18:510:18 | (unsigned int)... | 1.0 | +| test.c:510:18:510:23 | ... * ... | 125034.0 | +| test.c:510:22:510:23 | ip | 125034.0 | +| test.c:510:28:510:29 | 17 | 1.0 | +| test.c:510:28:510:29 | (unsigned int)... | 1.0 | +| test.c:510:28:510:34 | ... * ... | 125034.0 | +| test.c:510:33:510:34 | ip | 125034.0 | +| test.c:510:38:510:39 | 17 | 1.0 | +| test.c:510:38:510:39 | (unsigned int)... | 1.0 | +| test.c:510:38:510:50 | ... * ... | 125034.0 | +| test.c:510:43:510:50 | (...) | 125034.0 | +| test.c:510:44:510:44 | 2 | 1.0 | +| test.c:510:44:510:44 | (unsigned int)... | 1.0 | +| test.c:510:44:510:49 | ... * ... | 125034.0 | +| test.c:510:48:510:49 | ip | 125034.0 | +| test.c:510:54:510:55 | 17 | 1.0 | +| test.c:510:54:510:55 | (unsigned int)... | 1.0 | +| test.c:510:54:510:60 | ... * ... | 125034.0 | +| test.c:510:59:510:60 | ip | 125034.0 | +| test.c:511:15:511:26 | (...) | 250069.0 | +| test.c:511:15:511:31 | ... * ... | 250069.0 | +| test.c:511:16:511:16 | 2 | 1.0 | +| test.c:511:16:511:16 | (unsigned int)... | 1.0 | +| test.c:511:16:511:21 | ... * ... | 250069.0 | +| test.c:511:16:511:25 | ... + ... | 250069.0 | +| test.c:511:20:511:21 | ip | 250069.0 | +| test.c:511:25:511:25 | 1 | 1.0 | +| test.c:511:25:511:25 | (unsigned int)... | 1.0 | +| test.c:511:30:511:31 | 14 | 1.0 | +| test.c:511:30:511:31 | (unsigned int)... | 1.0 | +| test.c:512:15:512:16 | 14 | 1.0 | +| test.c:512:15:512:16 | (unsigned int)... | 1.0 | +| test.c:512:15:512:27 | ... * ... | 250069.0 | +| test.c:512:15:512:37 | ... > ... | 1.0 | +| test.c:512:15:514:23 | ... ? ... : ... | 6.2534504761E10 | +| test.c:512:20:512:27 | (...) | 250069.0 | +| test.c:512:21:512:21 | 2 | 1.0 | +| test.c:512:21:512:21 | (unsigned int)... | 1.0 | +| test.c:512:21:512:26 | ... * ... | 250069.0 | +| test.c:512:25:512:26 | ip | 250069.0 | +| test.c:512:31:512:32 | 17 | 1.0 | +| test.c:512:31:512:32 | (unsigned int)... | 1.0 | +| test.c:512:31:512:37 | ... * ... | 250069.0 | +| test.c:512:36:512:37 | ip | 250069.0 | +| test.c:513:17:513:18 | 14 | 1.0 | +| test.c:513:17:513:18 | (unsigned int)... | 1.0 | +| test.c:513:17:513:29 | ... * ... | 250069.0 | +| test.c:513:22:513:29 | (...) | 250069.0 | +| test.c:513:23:513:23 | 2 | 1.0 | +| test.c:513:23:513:23 | (unsigned int)... | 1.0 | +| test.c:513:23:513:28 | ... * ... | 250069.0 | +| test.c:513:27:513:28 | ip | 250069.0 | +| test.c:514:17:514:18 | 14 | 1.0 | +| test.c:514:17:514:18 | (unsigned int)... | 1.0 | +| test.c:514:17:514:23 | ... * ... | 250069.0 | +| test.c:514:22:514:23 | ip | 250069.0 | +| test.c:515:11:515:12 | 14 | 1.0 | +| test.c:515:11:515:12 | (unsigned int)... | 1.0 | +| test.c:515:11:515:17 | ... * ... | 125034.0 | +| test.c:515:11:515:33 | ... > ... | 1.0 | +| test.c:515:11:517:25 | ... ? ... : ... | 1.5633501156E10 | +| test.c:515:16:515:17 | ip | 125034.0 | +| test.c:515:21:515:28 | (...) | 125034.0 | +| test.c:515:21:515:33 | ... * ... | 125034.0 | +| test.c:515:22:515:23 | ip | 125034.0 | +| test.c:515:22:515:27 | ... + ... | 125034.0 | +| test.c:515:27:515:27 | 1 | 1.0 | +| test.c:515:27:515:27 | (unsigned int)... | 1.0 | +| test.c:515:32:515:33 | 17 | 1.0 | +| test.c:515:32:515:33 | (unsigned int)... | 1.0 | +| test.c:516:13:516:14 | 14 | 1.0 | +| test.c:516:13:516:14 | (unsigned int)... | 1.0 | +| test.c:516:13:516:19 | ... * ... | 125034.0 | +| test.c:516:18:516:19 | ip | 125034.0 | +| test.c:517:13:517:20 | (...) | 125034.0 | +| test.c:517:13:517:25 | ... * ... | 125034.0 | +| test.c:517:14:517:15 | ip | 125034.0 | +| test.c:517:14:517:19 | ... + ... | 125034.0 | +| test.c:517:19:517:19 | 1 | 1.0 | +| test.c:517:19:517:19 | (unsigned int)... | 1.0 | +| test.c:517:24:517:25 | 14 | 1.0 | +| test.c:517:24:517:25 | (unsigned int)... | 1.0 | +| test.c:518:9:518:10 | 14 | 1.0 | +| test.c:518:9:518:10 | (unsigned int)... | 1.0 | +| test.c:518:9:518:15 | ... * ... | 1437897.0 | +| test.c:518:9:518:59 | ... > ... | 1.0 | +| test.c:518:9:520:51 | ... ? ... : ... | 2.9729207539701335E18 | +| test.c:518:14:518:15 | ip | 1437897.0 | +| test.c:518:19:518:30 | (...) | 1437897.0 | +| test.c:518:19:518:35 | ... * ... | 1437897.0 | +| test.c:518:19:518:59 | ... + ... | 2.067547782609E12 | +| test.c:518:20:518:20 | 2 | 1.0 | +| test.c:518:20:518:20 | (unsigned int)... | 1.0 | +| test.c:518:20:518:25 | ... * ... | 1437897.0 | +| test.c:518:20:518:29 | ... + ... | 1437897.0 | +| test.c:518:24:518:25 | ip | 1437897.0 | +| test.c:518:29:518:29 | 1 | 1.0 | +| test.c:518:29:518:29 | (unsigned int)... | 1.0 | +| test.c:518:34:518:35 | 17 | 1.0 | +| test.c:518:34:518:35 | (unsigned int)... | 1.0 | +| test.c:518:39:518:54 | (...) | 1437897.0 | +| test.c:518:39:518:59 | ... * ... | 1437897.0 | +| test.c:518:40:518:40 | 2 | 1.0 | +| test.c:518:40:518:40 | (unsigned int)... | 1.0 | +| test.c:518:40:518:45 | ... * ... | 1437897.0 | +| test.c:518:40:518:49 | ... + ... | 1437897.0 | +| test.c:518:40:518:53 | ... + ... | 1437897.0 | +| test.c:518:44:518:45 | ip | 1437897.0 | +| test.c:518:49:518:49 | 1 | 1.0 | +| test.c:518:49:518:49 | (unsigned int)... | 1.0 | +| test.c:518:53:518:53 | 1 | 1.0 | +| test.c:518:53:518:53 | (unsigned int)... | 1.0 | +| test.c:518:58:518:59 | 17 | 1.0 | +| test.c:518:58:518:59 | (unsigned int)... | 1.0 | +| test.c:519:11:519:12 | 14 | 1.0 | +| test.c:519:11:519:12 | (unsigned int)... | 1.0 | +| test.c:519:11:519:17 | ... * ... | 1437897.0 | +| test.c:519:16:519:17 | ip | 1437897.0 | +| test.c:520:11:520:22 | (...) | 1437897.0 | +| test.c:520:11:520:27 | ... * ... | 1437897.0 | +| test.c:520:11:520:51 | ... + ... | 2.067547782609E12 | +| test.c:520:12:520:12 | 2 | 1.0 | +| test.c:520:12:520:12 | (unsigned int)... | 1.0 | +| test.c:520:12:520:17 | ... * ... | 1437897.0 | +| test.c:520:12:520:21 | ... + ... | 1437897.0 | +| test.c:520:16:520:17 | ip | 1437897.0 | +| test.c:520:21:520:21 | 1 | 1.0 | +| test.c:520:21:520:21 | (unsigned int)... | 1.0 | +| test.c:520:26:520:27 | 14 | 1.0 | +| test.c:520:26:520:27 | (unsigned int)... | 1.0 | +| test.c:520:31:520:46 | (...) | 1437897.0 | +| test.c:520:31:520:51 | ... * ... | 1437897.0 | +| test.c:520:32:520:32 | 2 | 1.0 | +| test.c:520:32:520:32 | (unsigned int)... | 1.0 | +| test.c:520:32:520:37 | ... * ... | 1437897.0 | +| test.c:520:32:520:41 | ... + ... | 1437897.0 | +| test.c:520:32:520:45 | ... + ... | 1437897.0 | +| test.c:520:36:520:37 | ip | 1437897.0 | +| test.c:520:41:520:41 | 1 | 1.0 | +| test.c:520:41:520:41 | (unsigned int)... | 1.0 | +| test.c:520:45:520:45 | 1 | 1.0 | +| test.c:520:45:520:45 | (unsigned int)... | 1.0 | +| test.c:520:50:520:51 | 17 | 1.0 | +| test.c:520:50:520:51 | (unsigned int)... | 1.0 | +| test.c:521:9:521:9 | 2 | 1.0 | +| test.c:521:9:521:9 | (unsigned int)... | 1.0 | +| test.c:521:9:521:26 | ... * ... | 1437897.0 | +| test.c:521:9:541:48 | ... + ... | 3.5306223994138077E62 | +| test.c:521:9:563:30 | ... > ... | 1.0 | +| test.c:521:9:606:27 | ... ? ... : ... | 4.3658022750663434E182 | +| test.c:521:13:521:26 | (...) | 1437897.0 | +| test.c:521:14:521:15 | ip | 1437897.0 | +| test.c:521:14:521:20 | ... * ... | 1437897.0 | +| test.c:521:14:521:25 | ... + ... | 1437897.0 | +| test.c:521:19:521:20 | 14 | 1.0 | +| test.c:521:19:521:20 | (unsigned int)... | 1.0 | +| test.c:521:24:521:25 | 32 | 1.0 | +| test.c:521:24:521:25 | (unsigned int)... | 1.0 | +| test.c:522:13:541:48 | (...) | 2.4554070280512497E56 | +| test.c:522:14:522:14 | 4 | 1.0 | +| test.c:522:14:522:14 | (unsigned int)... | 1.0 | +| test.c:522:14:522:31 | ... * ... | 1437897.0 | +| test.c:522:14:523:32 | ... + ... | 2.067547782609E12 | +| test.c:522:14:524:32 | ... + ... | 2.9729207539701335E18 | +| test.c:522:14:530:28 | ... + ... | 7.070613623498497E37 | +| test.c:522:14:531:43 | ... > ... | 1.0 | +| test.c:522:14:541:47 | ... ? ... : ... | 2.4554070280512497E56 | +| test.c:522:18:522:31 | (...) | 1437897.0 | +| test.c:522:19:522:20 | ip | 1437897.0 | +| test.c:522:19:522:25 | ... * ... | 1437897.0 | +| test.c:522:19:522:30 | ... + ... | 1437897.0 | +| test.c:522:24:522:25 | 14 | 1.0 | +| test.c:522:24:522:25 | (unsigned int)... | 1.0 | +| test.c:522:29:522:30 | 32 | 1.0 | +| test.c:522:29:522:30 | (unsigned int)... | 1.0 | +| test.c:523:15:523:32 | (...) | 1437897.0 | +| test.c:523:16:523:16 | 2 | 1.0 | +| test.c:523:16:523:16 | (unsigned int)... | 1.0 | +| test.c:523:16:523:21 | ... * ... | 1437897.0 | +| test.c:523:16:523:26 | ... * ... | 1437897.0 | +| test.c:523:16:523:31 | ... + ... | 1437897.0 | +| test.c:523:20:523:21 | ip | 1437897.0 | +| test.c:523:25:523:26 | 14 | 1.0 | +| test.c:523:25:523:26 | (unsigned int)... | 1.0 | +| test.c:523:30:523:31 | 32 | 1.0 | +| test.c:523:30:523:31 | (unsigned int)... | 1.0 | +| test.c:524:15:524:15 | 2 | 1.0 | +| test.c:524:15:524:15 | (unsigned int)... | 1.0 | +| test.c:524:15:524:32 | ... * ... | 1437897.0 | +| test.c:524:19:524:32 | (...) | 1437897.0 | +| test.c:524:20:524:21 | ip | 1437897.0 | +| test.c:524:20:524:26 | ... * ... | 1437897.0 | +| test.c:524:20:524:31 | ... + ... | 1437897.0 | +| test.c:524:25:524:26 | 14 | 1.0 | +| test.c:524:25:524:26 | (unsigned int)... | 1.0 | +| test.c:524:30:524:31 | 64 | 1.0 | +| test.c:524:30:524:31 | (unsigned int)... | 1.0 | +| test.c:525:15:530:28 | (...) | 2.3783390842343084E19 | +| test.c:525:16:525:27 | (...) | 1437897.0 | +| test.c:525:16:525:32 | ... * ... | 1437897.0 | +| test.c:525:16:526:65 | ... > ... | 1.0 | +| test.c:525:16:530:27 | ... ? ... : ... | 2.3783390842343084E19 | +| test.c:525:17:525:17 | 2 | 1.0 | +| test.c:525:17:525:17 | (unsigned int)... | 1.0 | +| test.c:525:17:525:22 | ... * ... | 1437897.0 | +| test.c:525:17:525:26 | ... + ... | 1437897.0 | +| test.c:525:21:525:22 | ip | 1437897.0 | +| test.c:525:26:525:26 | 1 | 1.0 | +| test.c:525:26:525:26 | (unsigned int)... | 1.0 | +| test.c:525:31:525:32 | 14 | 1.0 | +| test.c:525:31:525:32 | (unsigned int)... | 1.0 | +| test.c:526:15:526:65 | (...) | 2.067547782609E12 | +| test.c:526:16:526:17 | 14 | 1.0 | +| test.c:526:16:526:17 | (unsigned int)... | 1.0 | +| test.c:526:16:526:28 | ... * ... | 1437897.0 | +| test.c:526:16:526:38 | ... > ... | 1.0 | +| test.c:526:16:526:64 | ... ? ... : ... | 2.067547782609E12 | +| test.c:526:21:526:28 | (...) | 1437897.0 | +| test.c:526:22:526:22 | 2 | 1.0 | +| test.c:526:22:526:22 | (unsigned int)... | 1.0 | +| test.c:526:22:526:27 | ... * ... | 1437897.0 | +| test.c:526:26:526:27 | ip | 1437897.0 | +| test.c:526:32:526:33 | 17 | 1.0 | +| test.c:526:32:526:33 | (unsigned int)... | 1.0 | +| test.c:526:32:526:38 | ... * ... | 1437897.0 | +| test.c:526:37:526:38 | ip | 1437897.0 | +| test.c:526:42:526:43 | 17 | 1.0 | +| test.c:526:42:526:43 | (unsigned int)... | 1.0 | +| test.c:526:42:526:54 | ... * ... | 1437897.0 | +| test.c:526:47:526:54 | (...) | 1437897.0 | +| test.c:526:48:526:48 | 2 | 1.0 | +| test.c:526:48:526:48 | (unsigned int)... | 1.0 | +| test.c:526:48:526:53 | ... * ... | 1437897.0 | +| test.c:526:52:526:53 | ip | 1437897.0 | +| test.c:526:58:526:59 | 17 | 1.0 | +| test.c:526:58:526:59 | (unsigned int)... | 1.0 | +| test.c:526:58:526:64 | ... * ... | 1437897.0 | +| test.c:526:63:526:64 | ip | 1437897.0 | +| test.c:527:19:527:30 | (...) | 2875795.0 | +| test.c:527:19:527:35 | ... * ... | 2875795.0 | +| test.c:527:20:527:20 | 2 | 1.0 | +| test.c:527:20:527:20 | (unsigned int)... | 1.0 | +| test.c:527:20:527:25 | ... * ... | 2875795.0 | +| test.c:527:20:527:29 | ... + ... | 2875795.0 | +| test.c:527:24:527:25 | ip | 2875795.0 | +| test.c:527:29:527:29 | 1 | 1.0 | +| test.c:527:29:527:29 | (unsigned int)... | 1.0 | +| test.c:527:34:527:35 | 14 | 1.0 | +| test.c:527:34:527:35 | (unsigned int)... | 1.0 | +| test.c:528:19:528:20 | 14 | 1.0 | +| test.c:528:19:528:20 | (unsigned int)... | 1.0 | +| test.c:528:19:528:31 | ... * ... | 2875795.0 | +| test.c:528:19:528:41 | ... > ... | 1.0 | +| test.c:528:19:530:27 | ... ? ... : ... | 8.270196882025E12 | +| test.c:528:24:528:31 | (...) | 2875795.0 | +| test.c:528:25:528:25 | 2 | 1.0 | +| test.c:528:25:528:25 | (unsigned int)... | 1.0 | +| test.c:528:25:528:30 | ... * ... | 2875795.0 | +| test.c:528:29:528:30 | ip | 2875795.0 | +| test.c:528:35:528:36 | 17 | 1.0 | +| test.c:528:35:528:36 | (unsigned int)... | 1.0 | +| test.c:528:35:528:41 | ... * ... | 2875795.0 | +| test.c:528:40:528:41 | ip | 2875795.0 | +| test.c:529:21:529:22 | 14 | 1.0 | +| test.c:529:21:529:22 | (unsigned int)... | 1.0 | +| test.c:529:21:529:33 | ... * ... | 2875795.0 | +| test.c:529:26:529:33 | (...) | 2875795.0 | +| test.c:529:27:529:27 | 2 | 1.0 | +| test.c:529:27:529:27 | (unsigned int)... | 1.0 | +| test.c:529:27:529:32 | ... * ... | 2875795.0 | +| test.c:529:31:529:32 | ip | 2875795.0 | +| test.c:530:21:530:22 | 14 | 1.0 | +| test.c:530:21:530:22 | (unsigned int)... | 1.0 | +| test.c:530:21:530:27 | ... * ... | 2875795.0 | +| test.c:530:26:530:27 | ip | 2875795.0 | +| test.c:531:13:531:13 | 2 | 1.0 | +| test.c:531:13:531:13 | (unsigned int)... | 1.0 | +| test.c:531:13:531:18 | ... * ... | 8627385.0 | +| test.c:531:13:531:23 | ... * ... | 8627385.0 | +| test.c:531:13:531:43 | ... + ... | 7.4431771938225E13 | +| test.c:531:17:531:18 | ip | 8627385.0 | +| test.c:531:22:531:23 | 14 | 1.0 | +| test.c:531:22:531:23 | (unsigned int)... | 1.0 | +| test.c:531:27:531:38 | (...) | 8627385.0 | +| test.c:531:27:531:43 | ... * ... | 8627385.0 | +| test.c:531:28:531:28 | 2 | 1.0 | +| test.c:531:28:531:28 | (unsigned int)... | 1.0 | +| test.c:531:28:531:33 | ... * ... | 8627385.0 | +| test.c:531:28:531:37 | ... + ... | 8627385.0 | +| test.c:531:32:531:33 | ip | 8627385.0 | +| test.c:531:37:531:37 | 1 | 1.0 | +| test.c:531:37:531:37 | (unsigned int)... | 1.0 | +| test.c:531:42:531:43 | 17 | 1.0 | +| test.c:531:42:531:43 | (unsigned int)... | 1.0 | +| test.c:532:17:532:17 | 4 | 1.0 | +| test.c:532:17:532:17 | (unsigned int)... | 1.0 | +| test.c:532:17:532:34 | ... * ... | 8627385.0 | +| test.c:532:17:533:34 | ... + ... | 7.4431771938225E13 | +| test.c:532:17:534:34 | ... + ... | 6.421515527432633E20 | +| test.c:532:17:540:30 | ... + ... | 3.298869507082441E42 | +| test.c:532:21:532:34 | (...) | 8627385.0 | +| test.c:532:22:532:23 | ip | 8627385.0 | +| test.c:532:22:532:28 | ... * ... | 8627385.0 | +| test.c:532:22:532:33 | ... + ... | 8627385.0 | +| test.c:532:27:532:28 | 14 | 1.0 | +| test.c:532:27:532:28 | (unsigned int)... | 1.0 | +| test.c:532:32:532:33 | 32 | 1.0 | +| test.c:532:32:532:33 | (unsigned int)... | 1.0 | +| test.c:533:17:533:34 | (...) | 8627385.0 | +| test.c:533:18:533:18 | 2 | 1.0 | +| test.c:533:18:533:18 | (unsigned int)... | 1.0 | +| test.c:533:18:533:23 | ... * ... | 8627385.0 | +| test.c:533:18:533:28 | ... * ... | 8627385.0 | +| test.c:533:18:533:33 | ... + ... | 8627385.0 | +| test.c:533:22:533:23 | ip | 8627385.0 | +| test.c:533:27:533:28 | 14 | 1.0 | +| test.c:533:27:533:28 | (unsigned int)... | 1.0 | +| test.c:533:32:533:33 | 32 | 1.0 | +| test.c:533:32:533:33 | (unsigned int)... | 1.0 | +| test.c:534:17:534:17 | 2 | 1.0 | +| test.c:534:17:534:17 | (unsigned int)... | 1.0 | +| test.c:534:17:534:34 | ... * ... | 8627385.0 | +| test.c:534:21:534:34 | (...) | 8627385.0 | +| test.c:534:22:534:23 | ip | 8627385.0 | +| test.c:534:22:534:28 | ... * ... | 8627385.0 | +| test.c:534:22:534:33 | ... + ... | 8627385.0 | +| test.c:534:27:534:28 | 14 | 1.0 | +| test.c:534:27:534:28 | (unsigned int)... | 1.0 | +| test.c:534:32:534:33 | 64 | 1.0 | +| test.c:534:32:534:33 | (unsigned int)... | 1.0 | +| test.c:535:17:540:30 | (...) | 5.137213315127421E21 | +| test.c:535:18:535:29 | (...) | 8627385.0 | +| test.c:535:18:535:34 | ... * ... | 8627385.0 | +| test.c:535:18:536:67 | ... > ... | 1.0 | +| test.c:535:18:540:29 | ... ? ... : ... | 5.137213315127421E21 | +| test.c:535:19:535:19 | 2 | 1.0 | +| test.c:535:19:535:19 | (unsigned int)... | 1.0 | +| test.c:535:19:535:24 | ... * ... | 8627385.0 | +| test.c:535:19:535:28 | ... + ... | 8627385.0 | +| test.c:535:23:535:24 | ip | 8627385.0 | +| test.c:535:28:535:28 | 1 | 1.0 | +| test.c:535:28:535:28 | (unsigned int)... | 1.0 | +| test.c:535:33:535:34 | 14 | 1.0 | +| test.c:535:33:535:34 | (unsigned int)... | 1.0 | +| test.c:536:17:536:67 | (...) | 7.4431771938225E13 | +| test.c:536:18:536:19 | 14 | 1.0 | +| test.c:536:18:536:19 | (unsigned int)... | 1.0 | +| test.c:536:18:536:30 | ... * ... | 8627385.0 | +| test.c:536:18:536:40 | ... > ... | 1.0 | +| test.c:536:18:536:66 | ... ? ... : ... | 7.4431771938225E13 | +| test.c:536:23:536:30 | (...) | 8627385.0 | +| test.c:536:24:536:24 | 2 | 1.0 | +| test.c:536:24:536:24 | (unsigned int)... | 1.0 | +| test.c:536:24:536:29 | ... * ... | 8627385.0 | +| test.c:536:28:536:29 | ip | 8627385.0 | +| test.c:536:34:536:35 | 17 | 1.0 | +| test.c:536:34:536:35 | (unsigned int)... | 1.0 | +| test.c:536:34:536:40 | ... * ... | 8627385.0 | +| test.c:536:39:536:40 | ip | 8627385.0 | +| test.c:536:44:536:45 | 17 | 1.0 | +| test.c:536:44:536:45 | (unsigned int)... | 1.0 | +| test.c:536:44:536:56 | ... * ... | 8627385.0 | +| test.c:536:49:536:56 | (...) | 8627385.0 | +| test.c:536:50:536:50 | 2 | 1.0 | +| test.c:536:50:536:50 | (unsigned int)... | 1.0 | +| test.c:536:50:536:55 | ... * ... | 8627385.0 | +| test.c:536:54:536:55 | ip | 8627385.0 | +| test.c:536:60:536:61 | 17 | 1.0 | +| test.c:536:60:536:61 | (unsigned int)... | 1.0 | +| test.c:536:60:536:66 | ... * ... | 8627385.0 | +| test.c:536:65:536:66 | ip | 8627385.0 | +| test.c:537:21:537:32 | (...) | 1.7254771E7 | +| test.c:537:21:537:37 | ... * ... | 1.7254771E7 | +| test.c:537:22:537:22 | 2 | 1.0 | +| test.c:537:22:537:22 | (unsigned int)... | 1.0 | +| test.c:537:22:537:27 | ... * ... | 1.7254771E7 | +| test.c:537:22:537:31 | ... + ... | 1.7254771E7 | +| test.c:537:26:537:27 | ip | 1.7254771E7 | +| test.c:537:31:537:31 | 1 | 1.0 | +| test.c:537:31:537:31 | (unsigned int)... | 1.0 | +| test.c:537:36:537:37 | 14 | 1.0 | +| test.c:537:36:537:37 | (unsigned int)... | 1.0 | +| test.c:538:21:538:22 | 14 | 1.0 | +| test.c:538:21:538:22 | (unsigned int)... | 1.0 | +| test.c:538:21:538:33 | ... * ... | 1.7254771E7 | +| test.c:538:21:538:43 | ... > ... | 1.0 | +| test.c:538:21:540:29 | ... ? ... : ... | 2.97727122262441E14 | +| test.c:538:26:538:33 | (...) | 1.7254771E7 | +| test.c:538:27:538:27 | 2 | 1.0 | +| test.c:538:27:538:27 | (unsigned int)... | 1.0 | +| test.c:538:27:538:32 | ... * ... | 1.7254771E7 | +| test.c:538:31:538:32 | ip | 1.7254771E7 | +| test.c:538:37:538:38 | 17 | 1.0 | +| test.c:538:37:538:38 | (unsigned int)... | 1.0 | +| test.c:538:37:538:43 | ... * ... | 1.7254771E7 | +| test.c:538:42:538:43 | ip | 1.7254771E7 | +| test.c:539:23:539:24 | 14 | 1.0 | +| test.c:539:23:539:24 | (unsigned int)... | 1.0 | +| test.c:539:23:539:35 | ... * ... | 1.7254771E7 | +| test.c:539:28:539:35 | (...) | 1.7254771E7 | +| test.c:539:29:539:29 | 2 | 1.0 | +| test.c:539:29:539:29 | (unsigned int)... | 1.0 | +| test.c:539:29:539:34 | ... * ... | 1.7254771E7 | +| test.c:539:33:539:34 | ip | 1.7254771E7 | +| test.c:540:23:540:24 | 14 | 1.0 | +| test.c:540:23:540:24 | (unsigned int)... | 1.0 | +| test.c:540:23:540:29 | ... * ... | 1.7254771E7 | +| test.c:540:28:540:29 | ip | 1.7254771E7 | +| test.c:541:17:541:17 | 2 | 1.0 | +| test.c:541:17:541:17 | (unsigned int)... | 1.0 | +| test.c:541:17:541:22 | ... * ... | 8627385.0 | +| test.c:541:17:541:27 | ... * ... | 8627385.0 | +| test.c:541:17:541:47 | ... + ... | 7.4431771938225E13 | +| test.c:541:21:541:22 | ip | 8627385.0 | +| test.c:541:26:541:27 | 14 | 1.0 | +| test.c:541:26:541:27 | (unsigned int)... | 1.0 | +| test.c:541:31:541:42 | (...) | 8627385.0 | +| test.c:541:31:541:47 | ... * ... | 8627385.0 | +| test.c:541:32:541:32 | 2 | 1.0 | +| test.c:541:32:541:32 | (unsigned int)... | 1.0 | +| test.c:541:32:541:37 | ... * ... | 8627385.0 | +| test.c:541:32:541:41 | ... + ... | 8627385.0 | +| test.c:541:36:541:37 | ip | 8627385.0 | +| test.c:541:41:541:41 | 1 | 1.0 | +| test.c:541:41:541:41 | (unsigned int)... | 1.0 | +| test.c:541:46:541:47 | 17 | 1.0 | +| test.c:541:46:541:47 | (unsigned int)... | 1.0 | +| test.c:542:11:563:30 | (...) | 6.08636382738973E71 | +| test.c:542:12:542:12 | 4 | 1.0 | +| test.c:542:12:542:12 | (unsigned int)... | 1.0 | +| test.c:542:12:542:29 | ... * ... | 6.0391698E7 | +| test.c:542:12:543:30 | ... + ... | 3.647157187323204E15 | +| test.c:542:12:544:30 | ... + ... | 2.2025801541535236E23 | +| test.c:542:12:550:26 | ... + ... | 3.881087564774641E47 | +| test.c:542:12:551:61 | ... > ... | 1.0 | +| test.c:542:12:563:29 | ... ? ... : ... | 6.08636382738973E71 | +| test.c:542:16:542:29 | (...) | 6.0391698E7 | +| test.c:542:17:542:18 | ip | 6.0391698E7 | +| test.c:542:17:542:23 | ... * ... | 6.0391698E7 | +| test.c:542:17:542:28 | ... + ... | 6.0391698E7 | +| test.c:542:22:542:23 | 14 | 1.0 | +| test.c:542:22:542:23 | (unsigned int)... | 1.0 | +| test.c:542:27:542:28 | 32 | 1.0 | +| test.c:542:27:542:28 | (unsigned int)... | 1.0 | +| test.c:543:13:543:30 | (...) | 6.0391698E7 | +| test.c:543:14:543:14 | 2 | 1.0 | +| test.c:543:14:543:14 | (unsigned int)... | 1.0 | +| test.c:543:14:543:19 | ... * ... | 6.0391698E7 | +| test.c:543:14:543:24 | ... * ... | 6.0391698E7 | +| test.c:543:14:543:29 | ... + ... | 6.0391698E7 | +| test.c:543:18:543:19 | ip | 6.0391698E7 | +| test.c:543:23:543:24 | 14 | 1.0 | +| test.c:543:23:543:24 | (unsigned int)... | 1.0 | +| test.c:543:28:543:29 | 32 | 1.0 | +| test.c:543:28:543:29 | (unsigned int)... | 1.0 | +| test.c:544:13:544:13 | 2 | 1.0 | +| test.c:544:13:544:13 | (unsigned int)... | 1.0 | +| test.c:544:13:544:30 | ... * ... | 6.0391698E7 | +| test.c:544:17:544:30 | (...) | 6.0391698E7 | +| test.c:544:18:544:19 | ip | 6.0391698E7 | +| test.c:544:18:544:24 | ... * ... | 6.0391698E7 | +| test.c:544:18:544:29 | ... + ... | 6.0391698E7 | +| test.c:544:23:544:24 | 14 | 1.0 | +| test.c:544:23:544:24 | (unsigned int)... | 1.0 | +| test.c:544:28:544:29 | 64 | 1.0 | +| test.c:544:28:544:29 | (unsigned int)... | 1.0 | +| test.c:545:13:550:26 | (...) | 1.7620641670887053E24 | +| test.c:545:14:545:25 | (...) | 6.0391698E7 | +| test.c:545:14:545:30 | ... * ... | 6.0391698E7 | +| test.c:545:14:546:63 | ... > ... | 1.0 | +| test.c:545:14:550:25 | ... ? ... : ... | 1.7620641670887053E24 | +| test.c:545:15:545:15 | 2 | 1.0 | +| test.c:545:15:545:15 | (unsigned int)... | 1.0 | +| test.c:545:15:545:20 | ... * ... | 6.0391698E7 | +| test.c:545:15:545:24 | ... + ... | 6.0391698E7 | +| test.c:545:19:545:20 | ip | 6.0391698E7 | +| test.c:545:24:545:24 | 1 | 1.0 | +| test.c:545:24:545:24 | (unsigned int)... | 1.0 | +| test.c:545:29:545:30 | 14 | 1.0 | +| test.c:545:29:545:30 | (unsigned int)... | 1.0 | +| test.c:546:13:546:63 | (...) | 3.647157187323204E15 | +| test.c:546:14:546:15 | 14 | 1.0 | +| test.c:546:14:546:15 | (unsigned int)... | 1.0 | +| test.c:546:14:546:26 | ... * ... | 6.0391698E7 | +| test.c:546:14:546:36 | ... > ... | 1.0 | +| test.c:546:14:546:62 | ... ? ... : ... | 3.647157187323204E15 | +| test.c:546:19:546:26 | (...) | 6.0391698E7 | +| test.c:546:20:546:20 | 2 | 1.0 | +| test.c:546:20:546:20 | (unsigned int)... | 1.0 | +| test.c:546:20:546:25 | ... * ... | 6.0391698E7 | +| test.c:546:24:546:25 | ip | 6.0391698E7 | +| test.c:546:30:546:31 | 17 | 1.0 | +| test.c:546:30:546:31 | (unsigned int)... | 1.0 | +| test.c:546:30:546:36 | ... * ... | 6.0391698E7 | +| test.c:546:35:546:36 | ip | 6.0391698E7 | +| test.c:546:40:546:41 | 17 | 1.0 | +| test.c:546:40:546:41 | (unsigned int)... | 1.0 | +| test.c:546:40:546:52 | ... * ... | 6.0391698E7 | +| test.c:546:45:546:52 | (...) | 6.0391698E7 | +| test.c:546:46:546:46 | 2 | 1.0 | +| test.c:546:46:546:46 | (unsigned int)... | 1.0 | +| test.c:546:46:546:51 | ... * ... | 6.0391698E7 | +| test.c:546:50:546:51 | ip | 6.0391698E7 | +| test.c:546:56:546:57 | 17 | 1.0 | +| test.c:546:56:546:57 | (unsigned int)... | 1.0 | +| test.c:546:56:546:62 | ... * ... | 6.0391698E7 | +| test.c:546:61:546:62 | ip | 6.0391698E7 | +| test.c:547:17:547:28 | (...) | 1.20783397E8 | +| test.c:547:17:547:33 | ... * ... | 1.20783397E8 | +| test.c:547:18:547:18 | 2 | 1.0 | +| test.c:547:18:547:18 | (unsigned int)... | 1.0 | +| test.c:547:18:547:23 | ... * ... | 1.20783397E8 | +| test.c:547:18:547:27 | ... + ... | 1.20783397E8 | +| test.c:547:22:547:23 | ip | 1.20783397E8 | +| test.c:547:27:547:27 | 1 | 1.0 | +| test.c:547:27:547:27 | (unsigned int)... | 1.0 | +| test.c:547:32:547:33 | 14 | 1.0 | +| test.c:547:32:547:33 | (unsigned int)... | 1.0 | +| test.c:548:17:548:18 | 14 | 1.0 | +| test.c:548:17:548:18 | (unsigned int)... | 1.0 | +| test.c:548:17:548:29 | ... * ... | 1.20783397E8 | +| test.c:548:17:548:39 | ... > ... | 1.0 | +| test.c:548:17:550:25 | ... ? ... : ... | 1.4588628990859608E16 | +| test.c:548:22:548:29 | (...) | 1.20783397E8 | +| test.c:548:23:548:23 | 2 | 1.0 | +| test.c:548:23:548:23 | (unsigned int)... | 1.0 | +| test.c:548:23:548:28 | ... * ... | 1.20783397E8 | +| test.c:548:27:548:28 | ip | 1.20783397E8 | +| test.c:548:33:548:34 | 17 | 1.0 | +| test.c:548:33:548:34 | (unsigned int)... | 1.0 | +| test.c:548:33:548:39 | ... * ... | 1.20783397E8 | +| test.c:548:38:548:39 | ip | 1.20783397E8 | +| test.c:549:19:549:20 | 14 | 1.0 | +| test.c:549:19:549:20 | (unsigned int)... | 1.0 | +| test.c:549:19:549:31 | ... * ... | 1.20783397E8 | +| test.c:549:24:549:31 | (...) | 1.20783397E8 | +| test.c:549:25:549:25 | 2 | 1.0 | +| test.c:549:25:549:25 | (unsigned int)... | 1.0 | +| test.c:549:25:549:30 | ... * ... | 1.20783397E8 | +| test.c:549:29:549:30 | ip | 1.20783397E8 | +| test.c:550:19:550:20 | 14 | 1.0 | +| test.c:550:19:550:20 | (unsigned int)... | 1.0 | +| test.c:550:19:550:25 | ... * ... | 1.20783397E8 | +| test.c:550:24:550:25 | ip | 1.20783397E8 | +| test.c:551:11:551:61 | (...) | 1.3129766091773648E17 | +| test.c:551:12:551:13 | 14 | 1.0 | +| test.c:551:12:551:13 | (unsigned int)... | 1.0 | +| test.c:551:12:551:18 | ... * ... | 3.62350191E8 | +| test.c:551:12:551:34 | ... > ... | 1.0 | +| test.c:551:12:551:60 | ... ? ... : ... | 1.3129766091773648E17 | +| test.c:551:17:551:18 | ip | 3.62350191E8 | +| test.c:551:22:551:29 | (...) | 3.62350191E8 | +| test.c:551:22:551:34 | ... * ... | 3.62350191E8 | +| test.c:551:23:551:24 | ip | 3.62350191E8 | +| test.c:551:23:551:28 | ... + ... | 3.62350191E8 | +| test.c:551:28:551:28 | 1 | 1.0 | +| test.c:551:28:551:28 | (unsigned int)... | 1.0 | +| test.c:551:33:551:34 | 17 | 1.0 | +| test.c:551:33:551:34 | (unsigned int)... | 1.0 | +| test.c:551:38:551:39 | 17 | 1.0 | +| test.c:551:38:551:39 | (unsigned int)... | 1.0 | +| test.c:551:38:551:44 | ... * ... | 3.62350191E8 | +| test.c:551:43:551:44 | ip | 3.62350191E8 | +| test.c:551:48:551:55 | (...) | 3.62350191E8 | +| test.c:551:48:551:60 | ... * ... | 3.62350191E8 | +| test.c:551:49:551:50 | ip | 3.62350191E8 | +| test.c:551:49:551:54 | ... + ... | 3.62350191E8 | +| test.c:551:54:551:54 | 1 | 1.0 | +| test.c:551:54:551:54 | (unsigned int)... | 1.0 | +| test.c:551:59:551:60 | 17 | 1.0 | +| test.c:551:59:551:60 | (unsigned int)... | 1.0 | +| test.c:552:15:552:15 | 4 | 1.0 | +| test.c:552:15:552:15 | (unsigned int)... | 1.0 | +| test.c:552:15:552:32 | ... * ... | 7.24700382E8 | +| test.c:552:15:553:32 | ... + ... | 5.251906436709459E17 | +| test.c:552:15:554:32 | ... + ... | 3.806058600911604E26 | +| test.c:552:15:560:28 | ... + ... | 1.1588865682845433E54 | +| test.c:552:19:552:32 | (...) | 7.24700382E8 | +| test.c:552:20:552:21 | ip | 7.24700382E8 | +| test.c:552:20:552:26 | ... * ... | 7.24700382E8 | +| test.c:552:20:552:31 | ... + ... | 7.24700382E8 | +| test.c:552:25:552:26 | 14 | 1.0 | +| test.c:552:25:552:26 | (unsigned int)... | 1.0 | +| test.c:552:30:552:31 | 32 | 1.0 | +| test.c:552:30:552:31 | (unsigned int)... | 1.0 | +| test.c:553:15:553:32 | (...) | 7.24700382E8 | +| test.c:553:16:553:16 | 2 | 1.0 | +| test.c:553:16:553:16 | (unsigned int)... | 1.0 | +| test.c:553:16:553:21 | ... * ... | 7.24700382E8 | +| test.c:553:16:553:26 | ... * ... | 7.24700382E8 | +| test.c:553:16:553:31 | ... + ... | 7.24700382E8 | +| test.c:553:20:553:21 | ip | 7.24700382E8 | +| test.c:553:25:553:26 | 14 | 1.0 | +| test.c:553:25:553:26 | (unsigned int)... | 1.0 | +| test.c:553:30:553:31 | 32 | 1.0 | +| test.c:553:30:553:31 | (unsigned int)... | 1.0 | +| test.c:554:15:554:15 | 2 | 1.0 | +| test.c:554:15:554:15 | (unsigned int)... | 1.0 | +| test.c:554:15:554:32 | ... * ... | 7.24700382E8 | +| test.c:554:19:554:32 | (...) | 7.24700382E8 | +| test.c:554:20:554:21 | ip | 7.24700382E8 | +| test.c:554:20:554:26 | ... * ... | 7.24700382E8 | +| test.c:554:20:554:31 | ... + ... | 7.24700382E8 | +| test.c:554:25:554:26 | 14 | 1.0 | +| test.c:554:25:554:26 | (unsigned int)... | 1.0 | +| test.c:554:30:554:31 | 64 | 1.0 | +| test.c:554:30:554:31 | (unsigned int)... | 1.0 | +| test.c:555:15:560:28 | (...) | 3.044846887031571E27 | +| test.c:555:16:555:27 | (...) | 7.24700382E8 | +| test.c:555:16:555:32 | ... * ... | 7.24700382E8 | +| test.c:555:16:556:65 | ... > ... | 1.0 | +| test.c:555:16:560:27 | ... ? ... : ... | 3.044846887031571E27 | +| test.c:555:17:555:17 | 2 | 1.0 | +| test.c:555:17:555:17 | (unsigned int)... | 1.0 | +| test.c:555:17:555:22 | ... * ... | 7.24700382E8 | +| test.c:555:17:555:26 | ... + ... | 7.24700382E8 | +| test.c:555:21:555:22 | ip | 7.24700382E8 | +| test.c:555:26:555:26 | 1 | 1.0 | +| test.c:555:26:555:26 | (unsigned int)... | 1.0 | +| test.c:555:31:555:32 | 14 | 1.0 | +| test.c:555:31:555:32 | (unsigned int)... | 1.0 | +| test.c:556:15:556:65 | (...) | 5.251906436709459E17 | +| test.c:556:16:556:17 | 14 | 1.0 | +| test.c:556:16:556:17 | (unsigned int)... | 1.0 | +| test.c:556:16:556:28 | ... * ... | 7.24700382E8 | +| test.c:556:16:556:38 | ... > ... | 1.0 | +| test.c:556:16:556:64 | ... ? ... : ... | 5.251906436709459E17 | +| test.c:556:21:556:28 | (...) | 7.24700382E8 | +| test.c:556:22:556:22 | 2 | 1.0 | +| test.c:556:22:556:22 | (unsigned int)... | 1.0 | +| test.c:556:22:556:27 | ... * ... | 7.24700382E8 | +| test.c:556:26:556:27 | ip | 7.24700382E8 | +| test.c:556:32:556:33 | 17 | 1.0 | +| test.c:556:32:556:33 | (unsigned int)... | 1.0 | +| test.c:556:32:556:38 | ... * ... | 7.24700382E8 | +| test.c:556:37:556:38 | ip | 7.24700382E8 | +| test.c:556:42:556:43 | 17 | 1.0 | +| test.c:556:42:556:43 | (unsigned int)... | 1.0 | +| test.c:556:42:556:54 | ... * ... | 7.24700382E8 | +| test.c:556:47:556:54 | (...) | 7.24700382E8 | +| test.c:556:48:556:48 | 2 | 1.0 | +| test.c:556:48:556:48 | (unsigned int)... | 1.0 | +| test.c:556:48:556:53 | ... * ... | 7.24700382E8 | +| test.c:556:52:556:53 | ip | 7.24700382E8 | +| test.c:556:58:556:59 | 17 | 1.0 | +| test.c:556:58:556:59 | (unsigned int)... | 1.0 | +| test.c:556:58:556:64 | ... * ... | 7.24700382E8 | +| test.c:556:63:556:64 | ip | 7.24700382E8 | +| test.c:557:19:557:30 | (...) | 1.449400765E9 | +| test.c:557:19:557:35 | ... * ... | 1.449400765E9 | +| test.c:557:20:557:20 | 2 | 1.0 | +| test.c:557:20:557:20 | (unsigned int)... | 1.0 | +| test.c:557:20:557:25 | ... * ... | 1.449400765E9 | +| test.c:557:20:557:29 | ... + ... | 1.449400765E9 | +| test.c:557:24:557:25 | ip | 1.449400765E9 | +| test.c:557:29:557:29 | 1 | 1.0 | +| test.c:557:29:557:29 | (unsigned int)... | 1.0 | +| test.c:557:34:557:35 | 14 | 1.0 | +| test.c:557:34:557:35 | (unsigned int)... | 1.0 | +| test.c:558:19:558:20 | 14 | 1.0 | +| test.c:558:19:558:20 | (unsigned int)... | 1.0 | +| test.c:558:19:558:31 | ... * ... | 1.449400765E9 | +| test.c:558:19:558:41 | ... > ... | 1.0 | +| test.c:558:19:560:27 | ... ? ... : ... | 2.1007625775825853E18 | +| test.c:558:24:558:31 | (...) | 1.449400765E9 | +| test.c:558:25:558:25 | 2 | 1.0 | +| test.c:558:25:558:25 | (unsigned int)... | 1.0 | +| test.c:558:25:558:30 | ... * ... | 1.449400765E9 | +| test.c:558:29:558:30 | ip | 1.449400765E9 | +| test.c:558:35:558:36 | 17 | 1.0 | +| test.c:558:35:558:36 | (unsigned int)... | 1.0 | +| test.c:558:35:558:41 | ... * ... | 1.449400765E9 | +| test.c:558:40:558:41 | ip | 1.449400765E9 | +| test.c:559:21:559:22 | 14 | 1.0 | +| test.c:559:21:559:22 | (unsigned int)... | 1.0 | +| test.c:559:21:559:33 | ... * ... | 1.449400765E9 | +| test.c:559:26:559:33 | (...) | 1.449400765E9 | +| test.c:559:27:559:27 | 2 | 1.0 | +| test.c:559:27:559:27 | (unsigned int)... | 1.0 | +| test.c:559:27:559:32 | ... * ... | 1.449400765E9 | +| test.c:559:31:559:32 | ip | 1.449400765E9 | +| test.c:560:21:560:22 | 14 | 1.0 | +| test.c:560:21:560:22 | (unsigned int)... | 1.0 | +| test.c:560:21:560:27 | ... * ... | 1.449400765E9 | +| test.c:560:26:560:27 | ip | 1.449400765E9 | +| test.c:561:15:561:16 | 14 | 1.0 | +| test.c:561:15:561:16 | (unsigned int)... | 1.0 | +| test.c:561:15:561:21 | ... * ... | 7.24700382E8 | +| test.c:561:15:561:37 | ... > ... | 1.0 | +| test.c:561:15:563:29 | ... ? ... : ... | 5.251906436709459E17 | +| test.c:561:20:561:21 | ip | 7.24700382E8 | +| test.c:561:25:561:32 | (...) | 7.24700382E8 | +| test.c:561:25:561:37 | ... * ... | 7.24700382E8 | +| test.c:561:26:561:27 | ip | 7.24700382E8 | +| test.c:561:26:561:31 | ... + ... | 7.24700382E8 | +| test.c:561:31:561:31 | 1 | 1.0 | +| test.c:561:31:561:31 | (unsigned int)... | 1.0 | +| test.c:561:36:561:37 | 17 | 1.0 | +| test.c:561:36:561:37 | (unsigned int)... | 1.0 | +| test.c:562:17:562:18 | 14 | 1.0 | +| test.c:562:17:562:18 | (unsigned int)... | 1.0 | +| test.c:562:17:562:23 | ... * ... | 7.24700382E8 | +| test.c:562:22:562:23 | ip | 7.24700382E8 | +| test.c:563:17:563:24 | (...) | 7.24700382E8 | +| test.c:563:17:563:29 | ... * ... | 7.24700382E8 | +| test.c:563:18:563:19 | ip | 7.24700382E8 | +| test.c:563:18:563:23 | ... + ... | 7.24700382E8 | +| test.c:563:23:563:23 | 1 | 1.0 | +| test.c:563:23:563:23 | (unsigned int)... | 1.0 | +| test.c:563:28:563:29 | 14 | 1.0 | +| test.c:563:28:563:29 | (unsigned int)... | 1.0 | +| test.c:564:11:564:11 | 2 | 1.0 | +| test.c:564:11:564:11 | (unsigned int)... | 1.0 | +| test.c:564:11:564:28 | ... * ... | 5.797603059E9 | +| test.c:564:11:584:46 | ... + ... | 9.943431528813442E94 | +| test.c:564:15:564:28 | (...) | 5.797603059E9 | +| test.c:564:16:564:17 | ip | 5.797603059E9 | +| test.c:564:16:564:22 | ... * ... | 5.797603059E9 | +| test.c:564:16:564:27 | ... + ... | 5.797603059E9 | +| test.c:564:21:564:22 | 14 | 1.0 | +| test.c:564:21:564:22 | (unsigned int)... | 1.0 | +| test.c:564:26:564:27 | 32 | 1.0 | +| test.c:564:26:564:27 | (unsigned int)... | 1.0 | +| test.c:565:11:584:46 | (...) | 1.715093535659983E85 | +| test.c:565:12:565:12 | 4 | 1.0 | +| test.c:565:12:565:12 | (unsigned int)... | 1.0 | +| test.c:565:12:565:29 | ... * ... | 5.797603059E9 | +| test.c:565:12:566:30 | ... + ... | 3.361220122972616E19 | +| test.c:565:12:567:30 | ... + ... | 1.9487020066918396E29 | +| test.c:565:12:573:26 | ... + ... | 3.0379516094938436E59 | +| test.c:565:12:574:41 | ... > ... | 1.0 | +| test.c:565:12:584:45 | ... ? ... : ... | 1.715093535659983E85 | +| test.c:565:16:565:29 | (...) | 5.797603059E9 | +| test.c:565:17:565:18 | ip | 5.797603059E9 | +| test.c:565:17:565:23 | ... * ... | 5.797603059E9 | +| test.c:565:17:565:28 | ... + ... | 5.797603059E9 | +| test.c:565:22:565:23 | 14 | 1.0 | +| test.c:565:22:565:23 | (unsigned int)... | 1.0 | +| test.c:565:27:565:28 | 32 | 1.0 | +| test.c:565:27:565:28 | (unsigned int)... | 1.0 | +| test.c:566:13:566:30 | (...) | 5.797603059E9 | +| test.c:566:14:566:14 | 2 | 1.0 | +| test.c:566:14:566:14 | (unsigned int)... | 1.0 | +| test.c:566:14:566:19 | ... * ... | 5.797603059E9 | +| test.c:566:14:566:24 | ... * ... | 5.797603059E9 | +| test.c:566:14:566:29 | ... + ... | 5.797603059E9 | +| test.c:566:18:566:19 | ip | 5.797603059E9 | +| test.c:566:23:566:24 | 14 | 1.0 | +| test.c:566:23:566:24 | (unsigned int)... | 1.0 | +| test.c:566:28:566:29 | 32 | 1.0 | +| test.c:566:28:566:29 | (unsigned int)... | 1.0 | +| test.c:567:13:567:13 | 2 | 1.0 | +| test.c:567:13:567:13 | (unsigned int)... | 1.0 | +| test.c:567:13:567:30 | ... * ... | 5.797603059E9 | +| test.c:567:17:567:30 | (...) | 5.797603059E9 | +| test.c:567:18:567:19 | ip | 5.797603059E9 | +| test.c:567:18:567:24 | ... * ... | 5.797603059E9 | +| test.c:567:18:567:29 | ... + ... | 5.797603059E9 | +| test.c:567:23:567:24 | 14 | 1.0 | +| test.c:567:23:567:24 | (unsigned int)... | 1.0 | +| test.c:567:28:567:29 | 64 | 1.0 | +| test.c:567:28:567:29 | (unsigned int)... | 1.0 | +| test.c:568:13:573:26 | (...) | 1.558961605756818E30 | +| test.c:568:14:568:25 | (...) | 5.797603059E9 | +| test.c:568:14:568:30 | ... * ... | 5.797603059E9 | +| test.c:568:14:569:63 | ... > ... | 1.0 | +| test.c:568:14:573:25 | ... ? ... : ... | 1.558961605756818E30 | +| test.c:568:15:568:15 | 2 | 1.0 | +| test.c:568:15:568:15 | (unsigned int)... | 1.0 | +| test.c:568:15:568:20 | ... * ... | 5.797603059E9 | +| test.c:568:15:568:24 | ... + ... | 5.797603059E9 | +| test.c:568:19:568:20 | ip | 5.797603059E9 | +| test.c:568:24:568:24 | 1 | 1.0 | +| test.c:568:24:568:24 | (unsigned int)... | 1.0 | +| test.c:568:29:568:30 | 14 | 1.0 | +| test.c:568:29:568:30 | (unsigned int)... | 1.0 | +| test.c:569:13:569:63 | (...) | 3.361220122972616E19 | +| test.c:569:14:569:15 | 14 | 1.0 | +| test.c:569:14:569:15 | (unsigned int)... | 1.0 | +| test.c:569:14:569:26 | ... * ... | 5.797603059E9 | +| test.c:569:14:569:36 | ... > ... | 1.0 | +| test.c:569:14:569:62 | ... ? ... : ... | 3.361220122972616E19 | +| test.c:569:19:569:26 | (...) | 5.797603059E9 | +| test.c:569:20:569:20 | 2 | 1.0 | +| test.c:569:20:569:20 | (unsigned int)... | 1.0 | +| test.c:569:20:569:25 | ... * ... | 5.797603059E9 | +| test.c:569:24:569:25 | ip | 5.797603059E9 | +| test.c:569:30:569:31 | 17 | 1.0 | +| test.c:569:30:569:31 | (unsigned int)... | 1.0 | +| test.c:569:30:569:36 | ... * ... | 5.797603059E9 | +| test.c:569:35:569:36 | ip | 5.797603059E9 | +| test.c:569:40:569:41 | 17 | 1.0 | +| test.c:569:40:569:41 | (unsigned int)... | 1.0 | +| test.c:569:40:569:52 | ... * ... | 5.797603059E9 | +| test.c:569:45:569:52 | (...) | 5.797603059E9 | +| test.c:569:46:569:46 | 2 | 1.0 | +| test.c:569:46:569:46 | (unsigned int)... | 1.0 | +| test.c:569:46:569:51 | ... * ... | 5.797603059E9 | +| test.c:569:50:569:51 | ip | 5.797603059E9 | +| test.c:569:56:569:57 | 17 | 1.0 | +| test.c:569:56:569:57 | (unsigned int)... | 1.0 | +| test.c:569:56:569:62 | ... * ... | 5.797603059E9 | +| test.c:569:61:569:62 | ip | 5.797603059E9 | +| test.c:570:17:570:28 | (...) | 1.1595206119E10 | +| test.c:570:17:570:33 | ... * ... | 1.1595206119E10 | +| test.c:570:18:570:18 | 2 | 1.0 | +| test.c:570:18:570:18 | (unsigned int)... | 1.0 | +| test.c:570:18:570:23 | ... * ... | 1.1595206119E10 | +| test.c:570:18:570:27 | ... + ... | 1.1595206119E10 | +| test.c:570:22:570:23 | ip | 1.1595206119E10 | +| test.c:570:27:570:27 | 1 | 1.0 | +| test.c:570:27:570:27 | (unsigned int)... | 1.0 | +| test.c:570:32:570:33 | 14 | 1.0 | +| test.c:570:32:570:33 | (unsigned int)... | 1.0 | +| test.c:571:17:571:18 | 14 | 1.0 | +| test.c:571:17:571:18 | (unsigned int)... | 1.0 | +| test.c:571:17:571:29 | ... * ... | 1.1595206119E10 | +| test.c:571:17:571:39 | ... > ... | 1.0 | +| test.c:571:17:573:25 | ... ? ... : ... | 1.3444880494209504E20 | +| test.c:571:22:571:29 | (...) | 1.1595206119E10 | +| test.c:571:23:571:23 | 2 | 1.0 | +| test.c:571:23:571:23 | (unsigned int)... | 1.0 | +| test.c:571:23:571:28 | ... * ... | 1.1595206119E10 | +| test.c:571:27:571:28 | ip | 1.1595206119E10 | +| test.c:571:33:571:34 | 17 | 1.0 | +| test.c:571:33:571:34 | (unsigned int)... | 1.0 | +| test.c:571:33:571:39 | ... * ... | 1.1595206119E10 | +| test.c:571:38:571:39 | ip | 1.1595206119E10 | +| test.c:572:19:572:20 | 14 | 1.0 | +| test.c:572:19:572:20 | (unsigned int)... | 1.0 | +| test.c:572:19:572:31 | ... * ... | 1.1595206119E10 | +| test.c:572:24:572:31 | (...) | 1.1595206119E10 | +| test.c:572:25:572:25 | 2 | 1.0 | +| test.c:572:25:572:25 | (unsigned int)... | 1.0 | +| test.c:572:25:572:30 | ... * ... | 1.1595206119E10 | +| test.c:572:29:572:30 | ip | 1.1595206119E10 | +| test.c:573:19:573:20 | 14 | 1.0 | +| test.c:573:19:573:20 | (unsigned int)... | 1.0 | +| test.c:573:19:573:25 | ... * ... | 1.1595206119E10 | +| test.c:573:24:573:25 | ip | 1.1595206119E10 | +| test.c:574:11:574:11 | 2 | 1.0 | +| test.c:574:11:574:11 | (unsigned int)... | 1.0 | +| test.c:574:11:574:16 | ... * ... | 3.4785618357E10 | +| test.c:574:11:574:21 | ... * ... | 3.4785618357E10 | +| test.c:574:11:574:41 | ... + ... | 1.2100392444788552E21 | +| test.c:574:15:574:16 | ip | 3.4785618357E10 | +| test.c:574:20:574:21 | 14 | 1.0 | +| test.c:574:20:574:21 | (unsigned int)... | 1.0 | +| test.c:574:25:574:36 | (...) | 3.4785618357E10 | +| test.c:574:25:574:41 | ... * ... | 3.4785618357E10 | +| test.c:574:26:574:26 | 2 | 1.0 | +| test.c:574:26:574:26 | (unsigned int)... | 1.0 | +| test.c:574:26:574:31 | ... * ... | 3.4785618357E10 | +| test.c:574:26:574:35 | ... + ... | 3.4785618357E10 | +| test.c:574:30:574:31 | ip | 3.4785618357E10 | +| test.c:574:35:574:35 | 1 | 1.0 | +| test.c:574:35:574:35 | (unsigned int)... | 1.0 | +| test.c:574:40:574:41 | 17 | 1.0 | +| test.c:574:40:574:41 | (unsigned int)... | 1.0 | +| test.c:575:15:575:15 | 4 | 1.0 | +| test.c:575:15:575:15 | (unsigned int)... | 1.0 | +| test.c:575:15:575:32 | ... * ... | 3.4785618357E10 | +| test.c:575:15:576:32 | ... + ... | 1.2100392444788552E21 | +| test.c:575:15:577:32 | ... + ... | 4.209196335543408E31 | +| test.c:575:15:583:28 | ... + ... | 1.417386703353284E64 | +| test.c:575:19:575:32 | (...) | 3.4785618357E10 | +| test.c:575:20:575:21 | ip | 3.4785618357E10 | +| test.c:575:20:575:26 | ... * ... | 3.4785618357E10 | +| test.c:575:20:575:31 | ... + ... | 3.4785618357E10 | +| test.c:575:25:575:26 | 14 | 1.0 | +| test.c:575:25:575:26 | (unsigned int)... | 1.0 | +| test.c:575:30:575:31 | 32 | 1.0 | +| test.c:575:30:575:31 | (unsigned int)... | 1.0 | +| test.c:576:15:576:32 | (...) | 3.4785618357E10 | +| test.c:576:16:576:16 | 2 | 1.0 | +| test.c:576:16:576:16 | (unsigned int)... | 1.0 | +| test.c:576:16:576:21 | ... * ... | 3.4785618357E10 | +| test.c:576:16:576:26 | ... * ... | 3.4785618357E10 | +| test.c:576:16:576:31 | ... + ... | 3.4785618357E10 | +| test.c:576:20:576:21 | ip | 3.4785618357E10 | +| test.c:576:25:576:26 | 14 | 1.0 | +| test.c:576:25:576:26 | (unsigned int)... | 1.0 | +| test.c:576:30:576:31 | 32 | 1.0 | +| test.c:576:30:576:31 | (unsigned int)... | 1.0 | +| test.c:577:15:577:15 | 2 | 1.0 | +| test.c:577:15:577:15 | (unsigned int)... | 1.0 | +| test.c:577:15:577:32 | ... * ... | 3.4785618357E10 | +| test.c:577:19:577:32 | (...) | 3.4785618357E10 | +| test.c:577:20:577:21 | ip | 3.4785618357E10 | +| test.c:577:20:577:26 | ... * ... | 3.4785618357E10 | +| test.c:577:20:577:31 | ... + ... | 3.4785618357E10 | +| test.c:577:25:577:26 | 14 | 1.0 | +| test.c:577:25:577:26 | (unsigned int)... | 1.0 | +| test.c:577:30:577:31 | 64 | 1.0 | +| test.c:577:30:577:31 | (unsigned int)... | 1.0 | +| test.c:578:15:583:28 | (...) | 3.367357068579931E32 | +| test.c:578:16:578:27 | (...) | 3.4785618357E10 | +| test.c:578:16:578:32 | ... * ... | 3.4785618357E10 | +| test.c:578:16:579:65 | ... > ... | 1.0 | +| test.c:578:16:583:27 | ... ? ... : ... | 3.367357068579931E32 | +| test.c:578:17:578:17 | 2 | 1.0 | +| test.c:578:17:578:17 | (unsigned int)... | 1.0 | +| test.c:578:17:578:22 | ... * ... | 3.4785618357E10 | +| test.c:578:17:578:26 | ... + ... | 3.4785618357E10 | +| test.c:578:21:578:22 | ip | 3.4785618357E10 | +| test.c:578:26:578:26 | 1 | 1.0 | +| test.c:578:26:578:26 | (unsigned int)... | 1.0 | +| test.c:578:31:578:32 | 14 | 1.0 | +| test.c:578:31:578:32 | (unsigned int)... | 1.0 | +| test.c:579:15:579:65 | (...) | 1.2100392444788552E21 | +| test.c:579:16:579:17 | 14 | 1.0 | +| test.c:579:16:579:17 | (unsigned int)... | 1.0 | +| test.c:579:16:579:28 | ... * ... | 3.4785618357E10 | +| test.c:579:16:579:38 | ... > ... | 1.0 | +| test.c:579:16:579:64 | ... ? ... : ... | 1.2100392444788552E21 | +| test.c:579:21:579:28 | (...) | 3.4785618357E10 | +| test.c:579:22:579:22 | 2 | 1.0 | +| test.c:579:22:579:22 | (unsigned int)... | 1.0 | +| test.c:579:22:579:27 | ... * ... | 3.4785618357E10 | +| test.c:579:26:579:27 | ip | 3.4785618357E10 | +| test.c:579:32:579:33 | 17 | 1.0 | +| test.c:579:32:579:33 | (unsigned int)... | 1.0 | +| test.c:579:32:579:38 | ... * ... | 3.4785618357E10 | +| test.c:579:37:579:38 | ip | 3.4785618357E10 | +| test.c:579:42:579:43 | 17 | 1.0 | +| test.c:579:42:579:43 | (unsigned int)... | 1.0 | +| test.c:579:42:579:54 | ... * ... | 3.4785618357E10 | +| test.c:579:47:579:54 | (...) | 3.4785618357E10 | +| test.c:579:48:579:48 | 2 | 1.0 | +| test.c:579:48:579:48 | (unsigned int)... | 1.0 | +| test.c:579:48:579:53 | ... * ... | 3.4785618357E10 | +| test.c:579:52:579:53 | ip | 3.4785618357E10 | +| test.c:579:58:579:59 | 17 | 1.0 | +| test.c:579:58:579:59 | (unsigned int)... | 1.0 | +| test.c:579:58:579:64 | ... * ... | 3.4785618357E10 | +| test.c:579:63:579:64 | ip | 3.4785618357E10 | +| test.c:580:19:580:30 | (...) | 6.9571236715E10 | +| test.c:580:19:580:35 | ... * ... | 6.9571236715E10 | +| test.c:580:20:580:20 | 2 | 1.0 | +| test.c:580:20:580:20 | (unsigned int)... | 1.0 | +| test.c:580:20:580:25 | ... * ... | 6.9571236715E10 | +| test.c:580:20:580:29 | ... + ... | 6.9571236715E10 | +| test.c:580:24:580:25 | ip | 6.9571236715E10 | +| test.c:580:29:580:29 | 1 | 1.0 | +| test.c:580:29:580:29 | (unsigned int)... | 1.0 | +| test.c:580:34:580:35 | 14 | 1.0 | +| test.c:580:34:580:35 | (unsigned int)... | 1.0 | +| test.c:581:19:581:20 | 14 | 1.0 | +| test.c:581:19:581:20 | (unsigned int)... | 1.0 | +| test.c:581:19:581:31 | ... * ... | 6.9571236715E10 | +| test.c:581:19:581:41 | ... > ... | 1.0 | +| test.c:581:19:583:27 | ... ? ... : ... | 4.840156978054564E21 | +| test.c:581:24:581:31 | (...) | 6.9571236715E10 | +| test.c:581:25:581:25 | 2 | 1.0 | +| test.c:581:25:581:25 | (unsigned int)... | 1.0 | +| test.c:581:25:581:30 | ... * ... | 6.9571236715E10 | +| test.c:581:29:581:30 | ip | 6.9571236715E10 | +| test.c:581:35:581:36 | 17 | 1.0 | +| test.c:581:35:581:36 | (unsigned int)... | 1.0 | +| test.c:581:35:581:41 | ... * ... | 6.9571236715E10 | +| test.c:581:40:581:41 | ip | 6.9571236715E10 | +| test.c:582:21:582:22 | 14 | 1.0 | +| test.c:582:21:582:22 | (unsigned int)... | 1.0 | +| test.c:582:21:582:33 | ... * ... | 6.9571236715E10 | +| test.c:582:26:582:33 | (...) | 6.9571236715E10 | +| test.c:582:27:582:27 | 2 | 1.0 | +| test.c:582:27:582:27 | (unsigned int)... | 1.0 | +| test.c:582:27:582:32 | ... * ... | 6.9571236715E10 | +| test.c:582:31:582:32 | ip | 6.9571236715E10 | +| test.c:583:21:583:22 | 14 | 1.0 | +| test.c:583:21:583:22 | (unsigned int)... | 1.0 | +| test.c:583:21:583:27 | ... * ... | 6.9571236715E10 | +| test.c:583:26:583:27 | ip | 6.9571236715E10 | +| test.c:584:15:584:15 | 2 | 1.0 | +| test.c:584:15:584:15 | (unsigned int)... | 1.0 | +| test.c:584:15:584:20 | ... * ... | 3.4785618357E10 | +| test.c:584:15:584:25 | ... * ... | 3.4785618357E10 | +| test.c:584:15:584:45 | ... + ... | 1.2100392444788552E21 | +| test.c:584:19:584:20 | ip | 3.4785618357E10 | +| test.c:584:24:584:25 | 14 | 1.0 | +| test.c:584:24:584:25 | (unsigned int)... | 1.0 | +| test.c:584:29:584:40 | (...) | 3.4785618357E10 | +| test.c:584:29:584:45 | ... * ... | 3.4785618357E10 | +| test.c:584:30:584:30 | 2 | 1.0 | +| test.c:584:30:584:30 | (unsigned int)... | 1.0 | +| test.c:584:30:584:35 | ... * ... | 3.4785618357E10 | +| test.c:584:30:584:39 | ... + ... | 3.4785618357E10 | +| test.c:584:34:584:35 | ip | 3.4785618357E10 | +| test.c:584:39:584:39 | 1 | 1.0 | +| test.c:584:39:584:39 | (unsigned int)... | 1.0 | +| test.c:584:44:584:45 | 17 | 1.0 | +| test.c:584:44:584:45 | (unsigned int)... | 1.0 | +| test.c:585:11:585:11 | 4 | 1.0 | +| test.c:585:11:585:11 | (unsigned int)... | 1.0 | +| test.c:585:11:585:28 | ... * ... | 5.797603059E9 | +| test.c:585:11:586:32 | ... + ... | 3.361220122972616E19 | +| test.c:585:11:587:32 | ... + ... | 1.9487020066918396E29 | +| test.c:585:11:593:28 | ... + ... | 3.0379516094938436E59 | +| test.c:585:11:594:63 | ... > ... | 1.0 | +| test.c:585:11:606:27 | ... ? ... : ... | 4.390639451194891E87 | +| test.c:585:15:585:28 | (...) | 5.797603059E9 | +| test.c:585:16:585:17 | ip | 5.797603059E9 | +| test.c:585:16:585:22 | ... * ... | 5.797603059E9 | +| test.c:585:16:585:27 | ... + ... | 5.797603059E9 | +| test.c:585:21:585:22 | 14 | 1.0 | +| test.c:585:21:585:22 | (unsigned int)... | 1.0 | +| test.c:585:26:585:27 | 32 | 1.0 | +| test.c:585:26:585:27 | (unsigned int)... | 1.0 | +| test.c:586:15:586:32 | (...) | 5.797603059E9 | +| test.c:586:16:586:16 | 2 | 1.0 | +| test.c:586:16:586:16 | (unsigned int)... | 1.0 | +| test.c:586:16:586:21 | ... * ... | 5.797603059E9 | +| test.c:586:16:586:26 | ... * ... | 5.797603059E9 | +| test.c:586:16:586:31 | ... + ... | 5.797603059E9 | +| test.c:586:20:586:21 | ip | 5.797603059E9 | +| test.c:586:25:586:26 | 14 | 1.0 | +| test.c:586:25:586:26 | (unsigned int)... | 1.0 | +| test.c:586:30:586:31 | 32 | 1.0 | +| test.c:586:30:586:31 | (unsigned int)... | 1.0 | +| test.c:587:15:587:15 | 2 | 1.0 | +| test.c:587:15:587:15 | (unsigned int)... | 1.0 | +| test.c:587:15:587:32 | ... * ... | 5.797603059E9 | +| test.c:587:19:587:32 | (...) | 5.797603059E9 | +| test.c:587:20:587:21 | ip | 5.797603059E9 | +| test.c:587:20:587:26 | ... * ... | 5.797603059E9 | +| test.c:587:20:587:31 | ... + ... | 5.797603059E9 | +| test.c:587:25:587:26 | 14 | 1.0 | +| test.c:587:25:587:26 | (unsigned int)... | 1.0 | +| test.c:587:30:587:31 | 64 | 1.0 | +| test.c:587:30:587:31 | (unsigned int)... | 1.0 | +| test.c:588:15:593:28 | (...) | 1.558961605756818E30 | +| test.c:588:16:588:27 | (...) | 5.797603059E9 | +| test.c:588:16:588:32 | ... * ... | 5.797603059E9 | +| test.c:588:16:589:65 | ... > ... | 1.0 | +| test.c:588:16:593:27 | ... ? ... : ... | 1.558961605756818E30 | +| test.c:588:17:588:17 | 2 | 1.0 | +| test.c:588:17:588:17 | (unsigned int)... | 1.0 | +| test.c:588:17:588:22 | ... * ... | 5.797603059E9 | +| test.c:588:17:588:26 | ... + ... | 5.797603059E9 | +| test.c:588:21:588:22 | ip | 5.797603059E9 | +| test.c:588:26:588:26 | 1 | 1.0 | +| test.c:588:26:588:26 | (unsigned int)... | 1.0 | +| test.c:588:31:588:32 | 14 | 1.0 | +| test.c:588:31:588:32 | (unsigned int)... | 1.0 | +| test.c:589:15:589:65 | (...) | 3.361220122972616E19 | +| test.c:589:16:589:17 | 14 | 1.0 | +| test.c:589:16:589:17 | (unsigned int)... | 1.0 | +| test.c:589:16:589:28 | ... * ... | 5.797603059E9 | +| test.c:589:16:589:38 | ... > ... | 1.0 | +| test.c:589:16:589:64 | ... ? ... : ... | 3.361220122972616E19 | +| test.c:589:21:589:28 | (...) | 5.797603059E9 | +| test.c:589:22:589:22 | 2 | 1.0 | +| test.c:589:22:589:22 | (unsigned int)... | 1.0 | +| test.c:589:22:589:27 | ... * ... | 5.797603059E9 | +| test.c:589:26:589:27 | ip | 5.797603059E9 | +| test.c:589:32:589:33 | 17 | 1.0 | +| test.c:589:32:589:33 | (unsigned int)... | 1.0 | +| test.c:589:32:589:38 | ... * ... | 5.797603059E9 | +| test.c:589:37:589:38 | ip | 5.797603059E9 | +| test.c:589:42:589:43 | 17 | 1.0 | +| test.c:589:42:589:43 | (unsigned int)... | 1.0 | +| test.c:589:42:589:54 | ... * ... | 5.797603059E9 | +| test.c:589:47:589:54 | (...) | 5.797603059E9 | +| test.c:589:48:589:48 | 2 | 1.0 | +| test.c:589:48:589:48 | (unsigned int)... | 1.0 | +| test.c:589:48:589:53 | ... * ... | 5.797603059E9 | +| test.c:589:52:589:53 | ip | 5.797603059E9 | +| test.c:589:58:589:59 | 17 | 1.0 | +| test.c:589:58:589:59 | (unsigned int)... | 1.0 | +| test.c:589:58:589:64 | ... * ... | 5.797603059E9 | +| test.c:589:63:589:64 | ip | 5.797603059E9 | +| test.c:590:19:590:30 | (...) | 1.1595206119E10 | +| test.c:590:19:590:35 | ... * ... | 1.1595206119E10 | +| test.c:590:20:590:20 | 2 | 1.0 | +| test.c:590:20:590:20 | (unsigned int)... | 1.0 | +| test.c:590:20:590:25 | ... * ... | 1.1595206119E10 | +| test.c:590:20:590:29 | ... + ... | 1.1595206119E10 | +| test.c:590:24:590:25 | ip | 1.1595206119E10 | +| test.c:590:29:590:29 | 1 | 1.0 | +| test.c:590:29:590:29 | (unsigned int)... | 1.0 | +| test.c:590:34:590:35 | 14 | 1.0 | +| test.c:590:34:590:35 | (unsigned int)... | 1.0 | +| test.c:591:19:591:20 | 14 | 1.0 | +| test.c:591:19:591:20 | (unsigned int)... | 1.0 | +| test.c:591:19:591:31 | ... * ... | 1.1595206119E10 | +| test.c:591:19:591:41 | ... > ... | 1.0 | +| test.c:591:19:593:27 | ... ? ... : ... | 1.3444880494209504E20 | +| test.c:591:24:591:31 | (...) | 1.1595206119E10 | +| test.c:591:25:591:25 | 2 | 1.0 | +| test.c:591:25:591:25 | (unsigned int)... | 1.0 | +| test.c:591:25:591:30 | ... * ... | 1.1595206119E10 | +| test.c:591:29:591:30 | ip | 1.1595206119E10 | +| test.c:591:35:591:36 | 17 | 1.0 | +| test.c:591:35:591:36 | (unsigned int)... | 1.0 | +| test.c:591:35:591:41 | ... * ... | 1.1595206119E10 | +| test.c:591:40:591:41 | ip | 1.1595206119E10 | +| test.c:592:21:592:22 | 14 | 1.0 | +| test.c:592:21:592:22 | (unsigned int)... | 1.0 | +| test.c:592:21:592:33 | ... * ... | 1.1595206119E10 | +| test.c:592:26:592:33 | (...) | 1.1595206119E10 | +| test.c:592:27:592:27 | 2 | 1.0 | +| test.c:592:27:592:27 | (unsigned int)... | 1.0 | +| test.c:592:27:592:32 | ... * ... | 1.1595206119E10 | +| test.c:592:31:592:32 | ip | 1.1595206119E10 | +| test.c:593:21:593:22 | 14 | 1.0 | +| test.c:593:21:593:22 | (unsigned int)... | 1.0 | +| test.c:593:21:593:27 | ... * ... | 1.1595206119E10 | +| test.c:593:26:593:27 | ip | 1.1595206119E10 | +| test.c:594:13:594:63 | (...) | 1.2100392444788552E21 | +| test.c:594:14:594:15 | 14 | 1.0 | +| test.c:594:14:594:15 | (unsigned int)... | 1.0 | +| test.c:594:14:594:20 | ... * ... | 3.4785618357E10 | +| test.c:594:14:594:36 | ... > ... | 1.0 | +| test.c:594:14:594:62 | ... ? ... : ... | 1.2100392444788552E21 | +| test.c:594:19:594:20 | ip | 3.4785618357E10 | +| test.c:594:24:594:31 | (...) | 3.4785618357E10 | +| test.c:594:24:594:36 | ... * ... | 3.4785618357E10 | +| test.c:594:25:594:26 | ip | 3.4785618357E10 | +| test.c:594:25:594:30 | ... + ... | 3.4785618357E10 | +| test.c:594:30:594:30 | 1 | 1.0 | +| test.c:594:30:594:30 | (unsigned int)... | 1.0 | +| test.c:594:35:594:36 | 17 | 1.0 | +| test.c:594:35:594:36 | (unsigned int)... | 1.0 | +| test.c:594:40:594:41 | 17 | 1.0 | +| test.c:594:40:594:41 | (unsigned int)... | 1.0 | +| test.c:594:40:594:46 | ... * ... | 3.4785618357E10 | +| test.c:594:45:594:46 | ip | 3.4785618357E10 | +| test.c:594:50:594:57 | (...) | 3.4785618357E10 | +| test.c:594:50:594:62 | ... * ... | 3.4785618357E10 | +| test.c:594:51:594:52 | ip | 3.4785618357E10 | +| test.c:594:51:594:56 | ... + ... | 3.4785618357E10 | +| test.c:594:56:594:56 | 1 | 1.0 | +| test.c:594:56:594:56 | (unsigned int)... | 1.0 | +| test.c:594:61:594:62 | 17 | 1.0 | +| test.c:594:61:594:62 | (unsigned int)... | 1.0 | +| test.c:595:13:595:13 | 4 | 1.0 | +| test.c:595:13:595:13 | (unsigned int)... | 1.0 | +| test.c:595:13:595:30 | ... * ... | 6.9571236714E10 | +| test.c:595:13:596:30 | ... + ... | 4.840156977915421E21 | +| test.c:595:13:597:30 | ... + ... | 3.3673570684347266E32 | +| test.c:595:13:603:26 | ... + ... | 9.071274901265435E65 | +| test.c:595:17:595:30 | (...) | 6.9571236714E10 | +| test.c:595:18:595:19 | ip | 6.9571236714E10 | +| test.c:595:18:595:24 | ... * ... | 6.9571236714E10 | +| test.c:595:18:595:29 | ... + ... | 6.9571236714E10 | +| test.c:595:23:595:24 | 14 | 1.0 | +| test.c:595:23:595:24 | (unsigned int)... | 1.0 | +| test.c:595:28:595:29 | 32 | 1.0 | +| test.c:595:28:595:29 | (unsigned int)... | 1.0 | +| test.c:596:13:596:30 | (...) | 6.9571236714E10 | +| test.c:596:14:596:14 | 2 | 1.0 | +| test.c:596:14:596:14 | (unsigned int)... | 1.0 | +| test.c:596:14:596:19 | ... * ... | 6.9571236714E10 | +| test.c:596:14:596:24 | ... * ... | 6.9571236714E10 | +| test.c:596:14:596:29 | ... + ... | 6.9571236714E10 | +| test.c:596:18:596:19 | ip | 6.9571236714E10 | +| test.c:596:23:596:24 | 14 | 1.0 | +| test.c:596:23:596:24 | (unsigned int)... | 1.0 | +| test.c:596:28:596:29 | 32 | 1.0 | +| test.c:596:28:596:29 | (unsigned int)... | 1.0 | +| test.c:597:13:597:13 | 2 | 1.0 | +| test.c:597:13:597:13 | (unsigned int)... | 1.0 | +| test.c:597:13:597:30 | ... * ... | 6.9571236714E10 | +| test.c:597:17:597:30 | (...) | 6.9571236714E10 | +| test.c:597:18:597:19 | ip | 6.9571236714E10 | +| test.c:597:18:597:24 | ... * ... | 6.9571236714E10 | +| test.c:597:18:597:29 | ... + ... | 6.9571236714E10 | +| test.c:597:23:597:24 | 14 | 1.0 | +| test.c:597:23:597:24 | (unsigned int)... | 1.0 | +| test.c:597:28:597:29 | 64 | 1.0 | +| test.c:597:28:597:29 | (unsigned int)... | 1.0 | +| test.c:598:13:603:26 | (...) | 2.693885654805863E33 | +| test.c:598:14:598:25 | (...) | 6.9571236714E10 | +| test.c:598:14:598:30 | ... * ... | 6.9571236714E10 | +| test.c:598:14:599:63 | ... > ... | 1.0 | +| test.c:598:14:603:25 | ... ? ... : ... | 2.693885654805863E33 | +| test.c:598:15:598:15 | 2 | 1.0 | +| test.c:598:15:598:15 | (unsigned int)... | 1.0 | +| test.c:598:15:598:20 | ... * ... | 6.9571236714E10 | +| test.c:598:15:598:24 | ... + ... | 6.9571236714E10 | +| test.c:598:19:598:20 | ip | 6.9571236714E10 | +| test.c:598:24:598:24 | 1 | 1.0 | +| test.c:598:24:598:24 | (unsigned int)... | 1.0 | +| test.c:598:29:598:30 | 14 | 1.0 | +| test.c:598:29:598:30 | (unsigned int)... | 1.0 | +| test.c:599:13:599:63 | (...) | 4.840156977915421E21 | +| test.c:599:14:599:15 | 14 | 1.0 | +| test.c:599:14:599:15 | (unsigned int)... | 1.0 | +| test.c:599:14:599:26 | ... * ... | 6.9571236714E10 | +| test.c:599:14:599:36 | ... > ... | 1.0 | +| test.c:599:14:599:62 | ... ? ... : ... | 4.840156977915421E21 | +| test.c:599:19:599:26 | (...) | 6.9571236714E10 | +| test.c:599:20:599:20 | 2 | 1.0 | +| test.c:599:20:599:20 | (unsigned int)... | 1.0 | +| test.c:599:20:599:25 | ... * ... | 6.9571236714E10 | +| test.c:599:24:599:25 | ip | 6.9571236714E10 | +| test.c:599:30:599:31 | 17 | 1.0 | +| test.c:599:30:599:31 | (unsigned int)... | 1.0 | +| test.c:599:30:599:36 | ... * ... | 6.9571236714E10 | +| test.c:599:35:599:36 | ip | 6.9571236714E10 | +| test.c:599:40:599:41 | 17 | 1.0 | +| test.c:599:40:599:41 | (unsigned int)... | 1.0 | +| test.c:599:40:599:52 | ... * ... | 6.9571236714E10 | +| test.c:599:45:599:52 | (...) | 6.9571236714E10 | +| test.c:599:46:599:46 | 2 | 1.0 | +| test.c:599:46:599:46 | (unsigned int)... | 1.0 | +| test.c:599:46:599:51 | ... * ... | 6.9571236714E10 | +| test.c:599:50:599:51 | ip | 6.9571236714E10 | +| test.c:599:56:599:57 | 17 | 1.0 | +| test.c:599:56:599:57 | (unsigned int)... | 1.0 | +| test.c:599:56:599:62 | ... * ... | 6.9571236714E10 | +| test.c:599:61:599:62 | ip | 6.9571236714E10 | +| test.c:600:17:600:28 | (...) | 1.39142473429E11 | +| test.c:600:17:600:33 | ... * ... | 1.39142473429E11 | +| test.c:600:18:600:18 | 2 | 1.0 | +| test.c:600:18:600:18 | (unsigned int)... | 1.0 | +| test.c:600:18:600:23 | ... * ... | 1.39142473429E11 | +| test.c:600:18:600:27 | ... + ... | 1.39142473429E11 | +| test.c:600:22:600:23 | ip | 1.39142473429E11 | +| test.c:600:27:600:27 | 1 | 1.0 | +| test.c:600:27:600:27 | (unsigned int)... | 1.0 | +| test.c:600:32:600:33 | 14 | 1.0 | +| test.c:600:32:600:33 | (unsigned int)... | 1.0 | +| test.c:601:17:601:18 | 14 | 1.0 | +| test.c:601:17:601:18 | (unsigned int)... | 1.0 | +| test.c:601:17:601:29 | ... * ... | 1.39142473429E11 | +| test.c:601:17:601:39 | ... > ... | 1.0 | +| test.c:601:17:603:25 | ... ? ... : ... | 1.936062791193997E22 | +| test.c:601:22:601:29 | (...) | 1.39142473429E11 | +| test.c:601:23:601:23 | 2 | 1.0 | +| test.c:601:23:601:23 | (unsigned int)... | 1.0 | +| test.c:601:23:601:28 | ... * ... | 1.39142473429E11 | +| test.c:601:27:601:28 | ip | 1.39142473429E11 | +| test.c:601:33:601:34 | 17 | 1.0 | +| test.c:601:33:601:34 | (unsigned int)... | 1.0 | +| test.c:601:33:601:39 | ... * ... | 1.39142473429E11 | +| test.c:601:38:601:39 | ip | 1.39142473429E11 | +| test.c:602:19:602:20 | 14 | 1.0 | +| test.c:602:19:602:20 | (unsigned int)... | 1.0 | +| test.c:602:19:602:31 | ... * ... | 1.39142473429E11 | +| test.c:602:24:602:31 | (...) | 1.39142473429E11 | +| test.c:602:25:602:25 | 2 | 1.0 | +| test.c:602:25:602:25 | (unsigned int)... | 1.0 | +| test.c:602:25:602:30 | ... * ... | 1.39142473429E11 | +| test.c:602:29:602:30 | ip | 1.39142473429E11 | +| test.c:603:19:603:20 | 14 | 1.0 | +| test.c:603:19:603:20 | (unsigned int)... | 1.0 | +| test.c:603:19:603:25 | ... * ... | 1.39142473429E11 | +| test.c:603:24:603:25 | ip | 1.39142473429E11 | +| test.c:604:13:604:14 | 14 | 1.0 | +| test.c:604:13:604:14 | (unsigned int)... | 1.0 | +| test.c:604:13:604:19 | ... * ... | 6.9571236714E10 | +| test.c:604:13:604:35 | ... > ... | 1.0 | +| test.c:604:13:606:27 | ... ? ... : ... | 4.840156977915421E21 | +| test.c:604:18:604:19 | ip | 6.9571236714E10 | +| test.c:604:23:604:30 | (...) | 6.9571236714E10 | +| test.c:604:23:604:35 | ... * ... | 6.9571236714E10 | +| test.c:604:24:604:25 | ip | 6.9571236714E10 | +| test.c:604:24:604:29 | ... + ... | 6.9571236714E10 | +| test.c:604:29:604:29 | 1 | 1.0 | +| test.c:604:29:604:29 | (unsigned int)... | 1.0 | +| test.c:604:34:604:35 | 17 | 1.0 | +| test.c:604:34:604:35 | (unsigned int)... | 1.0 | +| test.c:605:15:605:16 | 14 | 1.0 | +| test.c:605:15:605:16 | (unsigned int)... | 1.0 | +| test.c:605:15:605:21 | ... * ... | 6.9571236714E10 | +| test.c:605:20:605:21 | ip | 6.9571236714E10 | +| test.c:606:15:606:22 | (...) | 6.9571236714E10 | +| test.c:606:15:606:27 | ... * ... | 6.9571236714E10 | +| test.c:606:16:606:17 | ip | 6.9571236714E10 | +| test.c:606:16:606:21 | ... + ... | 6.9571236714E10 | +| test.c:606:21:606:21 | 1 | 1.0 | +| test.c:606:21:606:21 | (unsigned int)... | 1.0 | +| test.c:606:26:606:27 | 14 | 1.0 | +| test.c:606:26:606:27 | (unsigned int)... | 1.0 | +| test.c:607:10:607:23 | special_number | 1.297918419127476E201 | +| test.c:614:10:614:11 | 0 | 1.0 | +| test.c:615:7:615:8 | c1 | 1.0 | +| test.c:615:13:615:13 | x | 1.0 | +| test.c:615:13:615:23 | ... += ... | 1.0 | +| test.c:615:18:615:23 | 748596 | 1.0 | +| test.c:616:7:616:8 | c2 | 1.0 | +| test.c:616:13:616:13 | x | 2.0 | +| test.c:616:13:616:25 | ... += ... | 2.0 | +| test.c:616:18:616:25 | 84652395 | 1.0 | +| test.c:617:7:617:8 | c3 | 1.0 | +| test.c:617:13:617:13 | x | 4.0 | +| test.c:617:13:617:24 | ... += ... | 4.0 | +| test.c:617:18:617:24 | 3675895 | 1.0 | +| test.c:618:7:618:8 | c4 | 1.0 | +| test.c:618:13:618:13 | x | 8.0 | +| test.c:618:13:618:22 | ... += ... | 8.0 | +| test.c:618:18:618:22 | 98634 | 1.0 | +| test.c:619:7:619:8 | c5 | 1.0 | +| test.c:619:13:619:13 | x | 16.0 | +| test.c:619:13:619:24 | ... += ... | 16.0 | +| test.c:619:18:619:24 | 7834985 | 1.0 | +| test.c:620:7:620:8 | c1 | 2.0 | +| test.c:620:7:620:14 | ... && ... | 1.0 | +| test.c:620:13:620:14 | c2 | 2.0 | +| test.c:620:19:620:19 | x | 32.0 | +| test.c:620:19:620:32 | ... += ... | 32.0 | +| test.c:620:24:620:32 | 938457398 | 1.0 | +| test.c:621:7:621:8 | c1 | 3.0 | +| test.c:621:7:621:14 | ... && ... | 1.0 | +| test.c:621:13:621:14 | c3 | 2.0 | +| test.c:621:19:621:19 | x | 64.0 | +| test.c:621:19:621:31 | ... += ... | 64.0 | +| test.c:621:24:621:31 | 73895648 | 1.0 | +| test.c:622:7:622:8 | c1 | 4.0 | +| test.c:622:7:622:14 | ... && ... | 1.0 | +| test.c:622:13:622:14 | c4 | 2.0 | +| test.c:622:19:622:19 | x | 128.0 | +| test.c:622:19:622:31 | ... += ... | 128.0 | +| test.c:622:24:622:31 | 12345432 | 1.0 | +| test.c:623:7:623:8 | c1 | 5.0 | +| test.c:623:7:623:14 | ... && ... | 1.0 | +| test.c:623:13:623:14 | c5 | 2.0 | +| test.c:623:19:623:19 | x | 256.0 | +| test.c:623:19:623:28 | ... += ... | 256.0 | +| test.c:623:24:623:28 | 38847 | 1.0 | +| test.c:624:7:624:8 | c2 | 5.0 | +| test.c:624:7:624:14 | ... && ... | 1.0 | +| test.c:624:13:624:14 | c3 | 5.0 | +| test.c:624:19:624:19 | x | 512.0 | +| test.c:624:19:624:26 | ... += ... | 512.0 | +| test.c:624:24:624:26 | 234 | 1.0 | +| test.c:626:11:626:11 | x | 1024.0 | +| test.c:626:11:626:15 | ... + ... | 1048576.0 | +| test.c:626:11:626:19 | ... + ... | 1.073741824E9 | +| test.c:626:11:626:23 | ... + ... | 1.099511627776E12 | +| test.c:626:11:626:27 | ... + ... | 1.125899906842624E15 | +| test.c:626:11:626:31 | ... + ... | 1.152921504606847E18 | +| test.c:626:11:626:35 | ... + ... | 1.1805916207174113E21 | +| test.c:626:11:626:39 | ... + ... | 1.2089258196146292E24 | +| test.c:626:11:626:43 | ... + ... | 1.2379400392853803E27 | +| test.c:626:11:626:47 | ... + ... | 1.2676506002282294E30 | +| test.c:626:11:626:51 | ... + ... | 1.298074214633707E33 | +| test.c:626:11:626:55 | ... + ... | 1.329227995784916E36 | +| test.c:626:15:626:15 | x | 1024.0 | +| test.c:626:19:626:19 | x | 1024.0 | +| test.c:626:23:626:23 | x | 1024.0 | +| test.c:626:27:626:27 | x | 1024.0 | +| test.c:626:31:626:31 | x | 1024.0 | +| test.c:626:35:626:35 | x | 1024.0 | +| test.c:626:39:626:39 | x | 1024.0 | +| test.c:626:43:626:43 | x | 1024.0 | +| test.c:626:47:626:47 | x | 1024.0 | +| test.c:626:51:626:51 | x | 1024.0 | +| test.c:626:55:626:55 | x | 1024.0 | +| test.c:627:10:627:10 | y | 1.329227995784916E36 | +| test.c:632:20:632:20 | x | 1.0 | +| test.c:632:20:632:26 | ... < ... | 1.0 | +| test.c:632:20:632:36 | ... ? ... : ... | 1.0 | +| test.c:632:24:632:26 | 100 | 1.0 | +| test.c:632:24:632:26 | (unsigned int)... | 1.0 | +| test.c:632:30:632:30 | x | 1.0 | +| test.c:632:34:632:36 | 100 | 1.0 | +| test.c:632:34:632:36 | (unsigned int)... | 1.0 | +| test.c:635:3:635:4 | y1 | 1.0 | +| test.c:635:9:635:11 | ++ ... | 1.0 | +| test.c:635:11:635:11 | y | 1.0 | +| test.c:636:3:636:4 | y2 | 1.0 | +| test.c:636:19:636:19 | 3 | 1.0 | +| test.c:636:19:636:19 | (unsigned int)... | 1.0 | +| test.c:645:3:645:3 | i | 1.0 | +| test.c:645:3:645:8 | ... = ... | 1.0 | +| test.c:645:7:645:8 | 10 | 1.0 | +| test.c:646:7:646:7 | i | 1.0 | +| test.c:648:3:648:3 | i | 1.0 | +| test.c:648:3:648:8 | ... = ... | 1.0 | +| test.c:648:7:648:8 | 10 | 1.0 | +| test.c:649:3:649:3 | i | 1.0 | +| test.c:649:3:649:9 | ... += ... | 1.0 | +| test.c:649:8:649:9 | 10 | 1.0 | +| test.c:650:7:650:7 | i | 1.0 | +| test.c:652:3:652:3 | i | 1.0 | +| test.c:652:3:652:8 | ... = ... | 1.0 | +| test.c:652:7:652:8 | 40 | 1.0 | +| test.c:653:3:653:3 | i | 1.0 | +| test.c:653:3:653:9 | ... -= ... | 1.0 | +| test.c:653:8:653:9 | 10 | 1.0 | +| test.c:654:7:654:7 | i | 1.0 | +| test.c:656:3:656:3 | i | 1.0 | +| test.c:656:3:656:12 | ... = ... | 1.0 | +| test.c:656:7:656:7 | j | 1.0 | +| test.c:656:7:656:12 | ... = ... | 1.0 | +| test.c:656:11:656:12 | 40 | 1.0 | +| test.c:657:7:657:7 | i | 1.0 | +| test.c:659:3:659:3 | i | 1.0 | +| test.c:659:3:659:15 | ... = ... | 1.0 | +| test.c:659:7:659:15 | (...) | 1.0 | +| test.c:659:8:659:8 | j | 1.0 | +| test.c:659:8:659:14 | ... += ... | 1.0 | +| test.c:659:13:659:14 | 10 | 1.0 | +| test.c:660:7:660:7 | i | 1.0 | +| test.c:662:3:662:3 | i | 1.0 | +| test.c:662:3:662:20 | ... = ... | 1.0 | +| test.c:662:7:662:8 | 20 | 1.0 | +| test.c:662:7:662:20 | ... + ... | 1.0 | +| test.c:662:12:662:20 | (...) | 1.0 | +| test.c:662:13:662:13 | j | 1.0 | +| test.c:662:13:662:19 | ... -= ... | 1.0 | +| test.c:662:18:662:19 | 10 | 1.0 | +| test.c:663:7:663:7 | i | 1.0 | +| test.c:668:14:668:15 | 0 | 1.0 | +| test.c:670:7:670:7 | 3 | 1.0 | +| test.c:670:7:670:7 | (unsigned int)... | 1.0 | +| test.c:670:7:670:12 | ... <= ... | 1.0 | +| test.c:670:7:670:23 | ... && ... | 1.0 | +| test.c:670:7:670:33 | ... && ... | 1.0 | +| test.c:670:7:670:44 | ... && ... | 1.0 | +| test.c:670:12:670:12 | a | 1.0 | +| test.c:670:17:670:17 | a | 1.0 | +| test.c:670:17:670:23 | ... <= ... | 1.0 | +| test.c:670:22:670:23 | 11 | 1.0 | +| test.c:670:22:670:23 | (unsigned int)... | 1.0 | +| test.c:670:28:670:28 | 5 | 1.0 | +| test.c:670:28:670:28 | (unsigned int)... | 1.0 | +| test.c:670:28:670:33 | ... <= ... | 1.0 | +| test.c:670:33:670:33 | b | 1.0 | +| test.c:670:38:670:38 | b | 1.0 | +| test.c:670:38:670:44 | ... <= ... | 1.0 | +| test.c:670:43:670:44 | 23 | 1.0 | +| test.c:670:43:670:44 | (unsigned int)... | 1.0 | +| test.c:671:13:671:13 | a | 1.0 | +| test.c:671:13:671:15 | (int)... | 1.0 | +| test.c:671:13:671:15 | ... * ... | 1.0 | +| test.c:671:15:671:15 | b | 1.0 | +| test.c:672:5:672:9 | total | 1.0 | +| test.c:672:5:672:14 | ... += ... | 1.0 | +| test.c:672:14:672:14 | r | 1.0 | +| test.c:674:7:674:7 | 3 | 1.0 | +| test.c:674:7:674:7 | (unsigned int)... | 1.0 | +| test.c:674:7:674:12 | ... <= ... | 1.0 | +| test.c:674:7:674:23 | ... && ... | 1.0 | +| test.c:674:7:674:33 | ... && ... | 1.0 | +| test.c:674:7:674:44 | ... && ... | 1.0 | +| test.c:674:12:674:12 | a | 2.0 | +| test.c:674:17:674:17 | a | 2.0 | +| test.c:674:17:674:23 | ... <= ... | 1.0 | +| test.c:674:22:674:23 | 11 | 1.0 | +| test.c:674:22:674:23 | (unsigned int)... | 1.0 | +| test.c:674:28:674:28 | 0 | 1.0 | +| test.c:674:28:674:28 | (unsigned int)... | 1.0 | +| test.c:674:28:674:33 | ... <= ... | 1.0 | +| test.c:674:33:674:33 | b | 3.0 | +| test.c:674:38:674:38 | b | 3.0 | +| test.c:674:38:674:44 | ... <= ... | 1.0 | +| test.c:674:43:674:44 | 23 | 1.0 | +| test.c:674:43:674:44 | (unsigned int)... | 1.0 | +| test.c:675:13:675:13 | a | 2.0 | +| test.c:675:13:675:15 | (int)... | 6.0 | +| test.c:675:13:675:15 | ... * ... | 6.0 | +| test.c:675:15:675:15 | b | 3.0 | +| test.c:676:5:676:9 | total | 2.0 | +| test.c:676:5:676:14 | ... += ... | 12.0 | +| test.c:676:14:676:14 | r | 6.0 | +| test.c:678:7:678:7 | 3 | 1.0 | +| test.c:678:7:678:7 | (unsigned int)... | 1.0 | +| test.c:678:7:678:12 | ... <= ... | 1.0 | +| test.c:678:7:678:23 | ... && ... | 1.0 | +| test.c:678:7:678:34 | ... && ... | 1.0 | +| test.c:678:7:678:45 | ... && ... | 1.0 | +| test.c:678:12:678:12 | a | 3.0 | +| test.c:678:17:678:17 | a | 3.0 | +| test.c:678:17:678:23 | ... <= ... | 1.0 | +| test.c:678:22:678:23 | 11 | 1.0 | +| test.c:678:22:678:23 | (unsigned int)... | 1.0 | +| test.c:678:28:678:29 | 13 | 1.0 | +| test.c:678:28:678:29 | (unsigned int)... | 1.0 | +| test.c:678:28:678:34 | ... <= ... | 1.0 | +| test.c:678:34:678:34 | b | 7.0 | +| test.c:678:39:678:39 | b | 7.0 | +| test.c:678:39:678:45 | ... <= ... | 1.0 | +| test.c:678:44:678:45 | 23 | 1.0 | +| test.c:678:44:678:45 | (unsigned int)... | 1.0 | +| test.c:679:13:679:13 | a | 3.0 | +| test.c:679:13:679:15 | (int)... | 21.0 | +| test.c:679:13:679:15 | ... * ... | 21.0 | +| test.c:679:15:679:15 | b | 7.0 | +| test.c:680:5:680:9 | total | 14.0 | +| test.c:680:5:680:14 | ... += ... | 294.0 | +| test.c:680:14:680:14 | r | 21.0 | +| test.c:683:10:683:14 | total | 308.0 | +| test.c:687:14:687:15 | 0 | 1.0 | +| test.c:689:7:689:7 | 5 | 1.0 | +| test.c:689:7:689:7 | (unsigned int)... | 1.0 | +| test.c:689:7:689:12 | ... <= ... | 1.0 | +| test.c:689:7:689:23 | ... && ... | 1.0 | +| test.c:689:12:689:12 | b | 1.0 | +| test.c:689:17:689:17 | b | 1.0 | +| test.c:689:17:689:23 | ... <= ... | 1.0 | +| test.c:689:22:689:23 | 23 | 1.0 | +| test.c:689:22:689:23 | (unsigned int)... | 1.0 | +| test.c:690:13:690:14 | 11 | 1.0 | +| test.c:690:13:690:14 | (unsigned int)... | 1.0 | +| test.c:690:13:690:16 | (int)... | 1.0 | +| test.c:690:13:690:16 | ... * ... | 1.0 | +| test.c:690:16:690:16 | b | 1.0 | +| test.c:691:5:691:9 | total | 1.0 | +| test.c:691:5:691:14 | ... += ... | 1.0 | +| test.c:691:14:691:14 | r | 1.0 | +| test.c:693:7:693:7 | 0 | 1.0 | +| test.c:693:7:693:7 | (unsigned int)... | 1.0 | +| test.c:693:7:693:12 | ... <= ... | 1.0 | +| test.c:693:7:693:23 | ... && ... | 1.0 | +| test.c:693:12:693:12 | b | 2.0 | +| test.c:693:17:693:17 | b | 2.0 | +| test.c:693:17:693:23 | ... <= ... | 1.0 | +| test.c:693:22:693:23 | 23 | 1.0 | +| test.c:693:22:693:23 | (unsigned int)... | 1.0 | +| test.c:694:13:694:14 | 11 | 1.0 | +| test.c:694:13:694:14 | (unsigned int)... | 1.0 | +| test.c:694:13:694:16 | (int)... | 2.0 | +| test.c:694:13:694:16 | ... * ... | 2.0 | +| test.c:694:16:694:16 | b | 2.0 | +| test.c:695:5:695:9 | total | 2.0 | +| test.c:695:5:695:14 | ... += ... | 4.0 | +| test.c:695:14:695:14 | r | 2.0 | +| test.c:697:7:697:8 | 13 | 1.0 | +| test.c:697:7:697:8 | (unsigned int)... | 1.0 | +| test.c:697:7:697:13 | ... <= ... | 1.0 | +| test.c:697:7:697:24 | ... && ... | 1.0 | +| test.c:697:13:697:13 | b | 3.0 | +| test.c:697:18:697:18 | b | 3.0 | +| test.c:697:18:697:24 | ... <= ... | 1.0 | +| test.c:697:23:697:24 | 23 | 1.0 | +| test.c:697:23:697:24 | (unsigned int)... | 1.0 | +| test.c:698:13:698:14 | 11 | 1.0 | +| test.c:698:13:698:14 | (unsigned int)... | 1.0 | +| test.c:698:13:698:16 | (int)... | 3.0 | +| test.c:698:13:698:16 | ... * ... | 3.0 | +| test.c:698:16:698:16 | b | 3.0 | +| test.c:699:5:699:9 | total | 6.0 | +| test.c:699:5:699:14 | ... += ... | 18.0 | +| test.c:699:14:699:14 | r | 3.0 | +| test.c:702:10:702:14 | total | 24.0 | +| test.c:707:3:707:3 | x | 1.0 | +| test.c:707:3:707:22 | ... = ... | 1.0 | +| test.c:707:7:707:7 | y | 1.0 | +| test.c:707:7:707:22 | ... = ... | 1.0 | +| test.c:707:11:707:22 | 1000000003 | 1.0 | +| test.c:708:3:708:4 | xy | 1.0 | +| test.c:708:3:708:12 | ... = ... | 1.0 | +| test.c:708:8:708:8 | x | 1.0 | +| test.c:708:8:708:12 | ... * ... | 1.0 | +| test.c:708:12:708:12 | y | 1.0 | +| test.c:709:10:709:11 | xy | 1.0 | +| test.c:714:3:714:3 | x | 1.0 | +| test.c:714:3:714:14 | ... = ... | 1.0 | +| test.c:714:7:714:14 | 274177 | 1.0 | +| test.c:715:3:715:3 | y | 1.0 | +| test.c:715:3:715:22 | ... = ... | 1.0 | +| test.c:715:7:715:22 | 67280421310721 | 1.0 | +| test.c:716:3:716:4 | xy | 1.0 | +| test.c:716:3:716:12 | ... = ... | 1.0 | +| test.c:716:8:716:8 | x | 1.0 | +| test.c:716:8:716:12 | ... * ... | 1.0 | +| test.c:716:12:716:12 | y | 1.0 | +| test.c:717:10:717:11 | xy | 1.0 | +| test.c:721:7:721:8 | ui | 1.0 | +| test.c:721:7:721:14 | ... >= ... | 1.0 | +| test.c:721:13:721:14 | 10 | 1.0 | +| test.c:721:13:721:14 | (unsigned int)... | 1.0 | +| test.c:722:28:722:44 | (unsigned long)... | 1.0 | +| test.c:722:28:722:49 | ... * ... | 1.0 | +| test.c:722:43:722:44 | ui | 1.0 | +| test.c:722:48:722:49 | (unsigned long)... | 1.0 | +| test.c:722:48:722:49 | ui | 1.0 | +| test.c:723:12:723:17 | result | 1.0 | +| test.c:725:7:725:8 | ul | 1.0 | +| test.c:725:7:725:14 | ... >= ... | 1.0 | +| test.c:725:13:725:14 | 10 | 1.0 | +| test.c:725:13:725:14 | (unsigned long)... | 1.0 | +| test.c:726:28:726:29 | ul | 1.0 | +| test.c:726:28:726:34 | ... * ... | 1.0 | +| test.c:726:33:726:34 | ul | 1.0 | +| test.c:727:12:727:17 | result | 1.0 | +| test.c:729:10:729:10 | 0 | 1.0 | +| test.c:729:10:729:10 | (unsigned long)... | 1.0 | +| test.c:733:7:733:8 | ui | 1.0 | +| test.c:733:7:733:14 | ... <= ... | 1.0 | +| test.c:733:7:733:25 | ... && ... | 1.0 | +| test.c:733:13:733:14 | 10 | 1.0 | +| test.c:733:13:733:14 | (unsigned int)... | 1.0 | +| test.c:733:19:733:20 | ui | 1.0 | +| test.c:733:19:733:25 | ... >= ... | 1.0 | +| test.c:733:25:733:25 | 2 | 1.0 | +| test.c:733:25:733:25 | (unsigned int)... | 1.0 | +| test.c:734:5:734:6 | ui | 1.0 | +| test.c:734:5:734:16 | ... *= ... | 1.0 | +| test.c:734:11:734:12 | ui | 1.0 | +| test.c:734:11:734:16 | ... + ... | 1.0 | +| test.c:734:16:734:16 | 0 | 1.0 | +| test.c:734:16:734:16 | (unsigned int)... | 1.0 | +| test.c:735:12:735:13 | (unsigned long)... | 1.0 | +| test.c:735:12:735:13 | ui | 1.0 | +| test.c:738:26:738:27 | 10 | 1.0 | +| test.c:738:26:738:27 | (unsigned int)... | 1.0 | +| test.c:739:3:739:9 | uiconst | 1.0 | +| test.c:739:3:739:14 | ... *= ... | 1.0 | +| test.c:739:14:739:14 | 4 | 1.0 | +| test.c:739:14:739:14 | (unsigned int)... | 1.0 | +| test.c:741:27:741:28 | 10 | 1.0 | +| test.c:741:27:741:28 | (unsigned long)... | 1.0 | +| test.c:742:3:742:9 | ulconst | 1.0 | +| test.c:742:3:742:14 | ... *= ... | 1.0 | +| test.c:742:14:742:14 | 4 | 1.0 | +| test.c:742:14:742:14 | (unsigned long)... | 1.0 | +| test.c:743:10:743:16 | (unsigned long)... | 1.0 | +| test.c:743:10:743:16 | uiconst | 1.0 | +| test.c:743:10:743:26 | ... + ... | 1.0 | +| test.c:743:20:743:26 | ulconst | 1.0 | +| test.c:747:7:747:7 | i | 1.0 | +| test.c:747:7:747:13 | ... >= ... | 1.0 | +| test.c:747:7:747:23 | ... && ... | 1.0 | +| test.c:747:12:747:13 | - ... | 1.0 | +| test.c:747:13:747:13 | 1 | 1.0 | +| test.c:747:18:747:18 | i | 1.0 | +| test.c:747:18:747:23 | ... <= ... | 1.0 | +| test.c:747:23:747:23 | 2 | 1.0 | +| test.c:748:5:748:5 | i | 1.0 | +| test.c:748:5:748:13 | ... = ... | 1.0 | +| test.c:748:9:748:9 | 5 | 1.0 | +| test.c:748:9:748:13 | ... * ... | 1.0 | +| test.c:748:13:748:13 | i | 1.0 | +| test.c:749:9:749:9 | i | 1.0 | +| test.c:751:5:751:5 | i | 1.0 | +| test.c:751:5:751:14 | ... = ... | 1.0 | +| test.c:751:9:751:9 | i | 1.0 | +| test.c:751:9:751:14 | ... * ... | 1.0 | +| test.c:751:13:751:14 | - ... | 1.0 | +| test.c:751:14:751:14 | 3 | 1.0 | +| test.c:752:9:752:9 | i | 1.0 | +| test.c:754:5:754:5 | i | 1.0 | +| test.c:754:5:754:10 | ... *= ... | 1.0 | +| test.c:754:10:754:10 | 7 | 1.0 | +| test.c:755:9:755:9 | i | 1.0 | +| test.c:757:5:757:5 | i | 1.0 | +| test.c:757:5:757:12 | ... *= ... | 1.0 | +| test.c:757:10:757:12 | - ... | 1.0 | +| test.c:757:11:757:12 | 11 | 1.0 | +| test.c:758:9:758:9 | i | 1.0 | +| test.c:760:7:760:7 | i | 2.0 | +| test.c:760:7:760:13 | ... == ... | 1.0 | +| test.c:760:12:760:13 | - ... | 1.0 | +| test.c:760:13:760:13 | 1 | 1.0 | +| test.c:761:5:761:5 | i | 1.0 | +| test.c:761:5:761:27 | ... = ... | 2.0 | +| test.c:761:9:761:9 | i | 2.0 | +| test.c:761:9:761:27 | ... * ... | 2.0 | +| test.c:761:13:761:27 | (int)... | 1.0 | +| test.c:761:18:761:27 | 4294967295 | 1.0 | +| test.c:762:9:762:9 | i | 2.0 | +| test.c:764:3:764:3 | i | 1.0 | +| test.c:764:3:764:12 | ... = ... | 4.0 | +| test.c:764:7:764:7 | i | 4.0 | +| test.c:764:7:764:12 | ... * ... | 4.0 | +| test.c:764:11:764:12 | - ... | 1.0 | +| test.c:764:12:764:12 | 1 | 1.0 | +| test.c:765:10:765:10 | i | 4.0 | +| test.c:767:20:767:20 | 1 | 1.0 | +| test.c:767:20:767:20 | (signed char)... | 1.0 | +| test.c:768:3:768:3 | i | 1.0 | +| test.c:768:3:768:17 | ... = ... | 1.0 | +| test.c:768:7:768:17 | (...) | 1.0 | +| test.c:768:7:768:17 | (int)... | 1.0 | +| test.c:768:8:768:11 | * ... | 1.0 | +| test.c:768:8:768:16 | ... *= ... | 1.0 | +| test.c:768:10:768:11 | sc | 1.0 | +| test.c:768:16:768:16 | 2 | 1.0 | +| test.c:770:7:770:7 | i | 1.0 | +| test.c:772:10:772:10 | 0 | 1.0 | +| test.c:777:7:777:7 | (int)... | 1.0 | +| test.c:777:7:777:7 | n | 1.0 | +| test.c:779:7:779:7 | n | 1.0 | +| test.c:779:7:779:11 | ... > ... | 1.0 | +| test.c:779:11:779:11 | 0 | 1.0 | +| test.c:779:11:779:11 | (unsigned int)... | 1.0 | +| test.c:780:9:780:9 | (int)... | 1.0 | +| test.c:780:9:780:9 | n | 1.0 | +| test.c:783:7:783:7 | n | 2.0 | +| test.c:783:7:783:12 | ... != ... | 1.0 | +| test.c:783:12:783:12 | 0 | 1.0 | +| test.c:783:12:783:12 | (unsigned int)... | 1.0 | +| test.c:784:9:784:9 | (int)... | 2.0 | +| test.c:784:9:784:9 | n | 2.0 | +| test.c:786:9:786:9 | (int)... | 2.0 | +| test.c:786:9:786:9 | n | 2.0 | +| test.c:789:7:789:8 | ! ... | 1.0 | +| test.c:789:8:789:8 | n | 4.0 | +| test.c:790:9:790:9 | (int)... | 4.0 | +| test.c:790:9:790:9 | n | 4.0 | +| test.c:792:9:792:9 | (int)... | 4.0 | +| test.c:792:9:792:9 | n | 4.0 | +| test.c:795:10:795:10 | n | 13.0 | +| test.c:795:10:795:15 | ... != ... | 1.0 | +| test.c:795:15:795:15 | 0 | 1.0 | +| test.c:795:15:795:15 | (unsigned int)... | 1.0 | +| test.c:796:5:796:5 | n | 13.0 | +| test.c:796:5:796:7 | ... -- | 13.0 | +| test.c:799:7:799:7 | (int)... | 13.0 | +| test.c:799:7:799:7 | n | 13.0 | +| test.c:803:7:803:7 | (int)... | 1.0 | +| test.c:803:7:803:7 | n | 1.0 | +| test.c:803:7:803:11 | ... < ... | 1.0 | +| test.c:803:11:803:11 | 0 | 1.0 | +| test.c:806:7:806:7 | (int)... | 1.0 | +| test.c:806:7:806:7 | n | 1.0 | +| test.c:806:7:806:12 | ... == ... | 1.0 | +| test.c:806:12:806:12 | 0 | 1.0 | +| test.c:807:9:807:9 | (int)... | 1.0 | +| test.c:807:9:807:9 | n | 1.0 | +| test.c:809:9:809:9 | (int)... | 1.0 | +| test.c:809:9:809:9 | n | 1.0 | +| test.c:812:7:812:7 | n | 2.0 | +| test.c:813:9:813:9 | (int)... | 2.0 | +| test.c:813:9:813:9 | n | 2.0 | +| test.c:815:9:815:9 | (int)... | 2.0 | +| test.c:815:9:815:9 | n | 2.0 | +| test.c:818:10:818:10 | (int)... | 13.0 | +| test.c:818:10:818:10 | n | 12.0 | +| test.c:818:10:818:15 | ... != ... | 1.0 | +| test.c:818:15:818:15 | 0 | 1.0 | +| test.c:819:5:819:5 | n | 12.0 | +| test.c:819:5:819:7 | ... -- | 12.0 | +| test.c:822:7:822:7 | (int)... | 12.0 | +| test.c:822:7:822:7 | n | 12.0 | +| test.c:826:7:826:7 | (int)... | 1.0 | +| test.c:826:7:826:7 | n | 1.0 | +| test.c:826:7:826:12 | ... != ... | 1.0 | +| test.c:826:12:826:12 | 0 | 1.0 | +| test.c:827:9:827:9 | (int)... | 1.0 | +| test.c:827:9:827:9 | n | 1.0 | +| test.c:827:9:827:14 | ... >= ... | 1.0 | +| test.c:827:14:827:14 | 0 | 1.0 | +| test.c:828:11:828:11 | (int)... | 1.0 | +| test.c:828:11:828:11 | n | 1.0 | +| test.c:832:7:832:7 | (int)... | 2.0 | +| test.c:832:7:832:7 | n | 2.0 | +| test.c:832:7:832:12 | ... >= ... | 1.0 | +| test.c:832:12:832:12 | 5 | 1.0 | +| test.c:833:9:833:9 | 2 | 1.0 | +| test.c:833:9:833:13 | ... * ... | 2.0 | +| test.c:833:9:833:18 | ... - ... | 2.0 | +| test.c:833:9:833:23 | ... == ... | 1.0 | +| test.c:833:13:833:13 | (int)... | 2.0 | +| test.c:833:13:833:13 | n | 2.0 | +| test.c:833:17:833:18 | 10 | 1.0 | +| test.c:833:23:833:23 | 0 | 1.0 | +| test.c:836:9:836:9 | (int)... | 2.0 | +| test.c:836:9:836:9 | n | 2.0 | +| test.c:839:7:839:7 | (int)... | 3.0 | +| test.c:839:7:839:7 | n | 3.0 | +| test.c:839:7:839:17 | ... != ... | 1.0 | +| test.c:839:7:839:32 | ... && ... | 1.0 | +| test.c:839:12:839:17 | - ... | 1.0 | +| test.c:839:13:839:17 | 32768 | 1.0 | +| test.c:839:22:839:22 | (int)... | 3.0 | +| test.c:839:22:839:22 | n | 3.0 | +| test.c:839:22:839:32 | ... != ... | 1.0 | +| test.c:839:27:839:32 | - ... | 1.0 | +| test.c:839:28:839:32 | 32767 | 1.0 | +| test.c:840:9:840:9 | (int)... | 3.0 | +| test.c:840:9:840:9 | n | 3.0 | +| test.c:843:7:843:7 | (int)... | 4.0 | +| test.c:843:7:843:7 | n | 4.0 | +| test.c:843:7:843:12 | ... >= ... | 1.0 | +| test.c:843:12:843:12 | 0 | 1.0 | +| test.c:844:5:844:5 | n | 4.0 | +| test.c:844:5:844:14 | ... ? ... : ... | 16.0 | +| test.c:844:10:844:10 | (int)... | 4.0 | +| test.c:844:10:844:10 | n | 4.0 | +| test.c:844:14:844:14 | (int)... | 4.0 | +| test.c:844:14:844:14 | n | 4.0 | +| test.c:845:5:845:6 | ! ... | 1.0 | +| test.c:845:5:845:14 | ... ? ... : ... | 64.0 | +| test.c:845:6:845:6 | n | 8.0 | +| test.c:845:10:845:10 | (int)... | 8.0 | +| test.c:845:10:845:10 | n | 8.0 | +| test.c:845:14:845:14 | (int)... | 8.0 | +| test.c:845:14:845:14 | n | 8.0 | +| test.c:856:7:856:8 | (unsigned long)... | 1.0 | +| test.c:856:7:856:8 | ss | 1.0 | +| test.c:856:7:856:22 | ... < ... | 1.0 | +| test.c:856:12:856:22 | sizeof(int) | 1.0 | +| test.c:857:9:857:10 | (int)... | 1.0 | +| test.c:857:9:857:10 | ss | 1.0 | +| test.c:860:7:860:8 | (int)... | 2.0 | +| test.c:860:7:860:8 | ss | 2.0 | +| test.c:860:7:860:17 | ... < ... | 1.0 | +| test.c:860:12:860:17 | 32769 | 1.0 | +| test.c:861:9:861:10 | (int)... | 2.0 | +| test.c:861:9:861:10 | ss | 2.0 | +| test.c:864:7:864:15 | (int)... | 1.0 | +| test.c:864:7:864:15 | (short)... | 1.0 | +| test.c:864:7:864:20 | ... >= ... | 1.0 | +| test.c:864:14:864:15 | us | 1.0 | +| test.c:864:20:864:20 | 0 | 1.0 | +| test.c:865:9:865:10 | (int)... | 1.0 | +| test.c:865:9:865:10 | us | 1.0 | +| test.c:868:7:868:15 | (int)... | 2.0 | +| test.c:868:7:868:15 | (short)... | 2.0 | +| test.c:868:7:868:21 | ... >= ... | 1.0 | +| test.c:868:14:868:15 | us | 2.0 | +| test.c:868:20:868:21 | - ... | 1.0 | +| test.c:868:21:868:21 | 1 | 1.0 | +| test.c:869:9:869:10 | (int)... | 2.0 | +| test.c:869:9:869:10 | us | 2.0 | +| test.c:872:7:872:8 | (unsigned long)... | 3.0 | +| test.c:872:7:872:8 | ss | 3.0 | +| test.c:872:7:872:23 | ... >= ... | 1.0 | +| test.c:872:13:872:23 | sizeof(int) | 1.0 | +| test.c:873:9:873:10 | (int)... | 3.0 | +| test.c:873:9:873:10 | ss | 3.0 | +| test.c:876:7:876:8 | (int)... | 4.0 | +| test.c:876:7:876:8 | ss | 4.0 | +| test.c:876:7:876:12 | (unsigned long)... | 4.0 | +| test.c:876:7:876:12 | ... + ... | 4.0 | +| test.c:876:7:876:26 | ... < ... | 1.0 | +| test.c:876:12:876:12 | 1 | 1.0 | +| test.c:876:16:876:26 | sizeof(int) | 1.0 | +| test.c:877:9:877:10 | (int)... | 4.0 | +| test.c:877:9:877:10 | ss | 4.0 | +| test.c:883:8:883:8 | s | 1.0 | +| test.c:883:8:883:12 | ... = ... | 1.0 | +| test.c:883:12:883:12 | 0 | 1.0 | +| test.c:883:15:883:15 | s | 13.0 | +| test.c:883:15:883:20 | ... < ... | 1.0 | +| test.c:883:19:883:20 | 10 | 1.0 | +| test.c:883:23:883:23 | s | 13.0 | +| test.c:883:23:883:25 | ... ++ | 13.0 | +| test.c:884:18:884:18 | s | 13.0 | +| test.c:884:18:884:22 | ... + ... | 13.0 | +| test.c:884:22:884:22 | s | 13.0 | +| test.c:885:9:885:14 | result | 13.0 | +| test.c:890:10:890:11 | 0 | 1.0 | +| test.c:891:7:891:7 | i | 1.0 | +| test.c:891:7:891:11 | ... < ... | 1.0 | +| test.c:891:11:891:11 | 0 | 1.0 | +| test.c:892:9:892:9 | i | 1.0 | +| test.c:895:20:895:20 | 0 | 1.0 | +| test.c:895:20:895:20 | (unsigned int)... | 1.0 | +| test.c:896:7:896:7 | u | 1.0 | +| test.c:896:7:896:11 | ... < ... | 1.0 | +| test.c:896:11:896:11 | 0 | 1.0 | +| test.c:896:11:896:11 | (unsigned int)... | 1.0 | +| test.c:897:9:897:9 | (int)... | 1.0 | +| test.c:897:9:897:9 | u | 1.0 | +| test.c:902:12:902:12 | s | 1.0 | +| test.c:902:12:902:16 | ... % ... | 1.0 | +| test.c:902:16:902:16 | 5 | 1.0 | +| test.c:903:7:903:8 | s2 | 1.0 | +| test.c:908:7:908:7 | x | 1.0 | +| test.c:909:9:909:9 | y | 1.0 | +| test.c:909:9:909:14 | ... != ... | 1.0 | +| test.c:909:14:909:14 | 0 | 1.0 | +| test.c:910:12:910:12 | 0 | 1.0 | +| test.c:913:7:913:7 | y | 2.0 | +| test.c:922:7:922:7 | x | 1.0 | +| test.c:922:7:922:13 | ... >= ... | 1.0 | +| test.c:922:12:922:13 | 10 | 1.0 | +| test.c:927:7:927:7 | x | 13.0 | +| test.c:932:16:932:26 | 2147483647 | 1.0 | +| test.c:933:16:933:19 | 256 | 1.0 | +| test.c:934:7:934:13 | (...) | 1.0 | +| test.c:934:7:934:20 | ... <= ... | 1.0 | +| test.c:934:8:934:8 | x | 1.0 | +| test.c:934:8:934:12 | ... + ... | 1.0 | +| test.c:934:12:934:12 | y | 1.0 | +| test.c:934:18:934:20 | 512 | 1.0 | +| test.c:935:9:935:9 | x | 1.0 | +| test.c:936:9:936:9 | y | 1.0 | +| test.cpp:9:11:9:12 | - ... | 1.0 | +| test.cpp:9:12:9:12 | 1 | 1.0 | +| test.cpp:10:7:10:7 | (bool)... | 1.0 | +| test.cpp:10:7:10:7 | b | 1.0 | +| test.cpp:11:5:11:5 | x | 1.0 | +| test.cpp:11:5:11:14 | ... = ... | 1.0 | +| test.cpp:11:12:11:12 | call to operator[] | 1.0 | +| test.cpp:11:12:11:14 | (reference dereference) | 1.0 | +| test.cpp:11:13:11:13 | 3 | 1.0 | +| test.cpp:13:10:13:10 | x | 2.0 | +| test.cpp:18:12:18:31 | (int)... | 1.0 | +| test.cpp:18:12:18:31 | static_cast... | 1.0 | +| test.cpp:18:30:18:30 | x | 1.0 | +| test.cpp:19:10:19:11 | x0 | 1.0 | +| test.cpp:27:7:27:7 | y | 1.0 | +| test.cpp:27:7:27:12 | ... == ... | 1.0 | +| test.cpp:27:12:27:12 | 0 | 1.0 | +| test.cpp:28:5:28:5 | x | 1.0 | +| test.cpp:28:5:28:9 | ... = ... | 1.0 | +| test.cpp:28:9:28:9 | 0 | 1.0 | +| test.cpp:30:7:30:7 | y | 2.0 | +| test.cpp:30:7:30:13 | ... == ... | 1.0 | +| test.cpp:30:12:30:13 | - ... | 1.0 | +| test.cpp:30:13:30:13 | 1 | 1.0 | +| test.cpp:31:5:31:5 | x | 1.0 | +| test.cpp:31:5:31:10 | ... = ... | 1.0 | +| test.cpp:31:9:31:10 | - ... | 1.0 | +| test.cpp:31:10:31:10 | 1 | 1.0 | +| test.cpp:33:7:33:7 | y | 4.0 | +| test.cpp:33:7:33:12 | ... == ... | 1.0 | +| test.cpp:33:12:33:12 | 1 | 1.0 | +| test.cpp:34:5:34:5 | x | 1.0 | +| test.cpp:34:5:34:9 | ... = ... | 1.0 | +| test.cpp:34:9:34:9 | 1 | 1.0 | +| test.cpp:36:7:36:7 | y | 8.0 | +| test.cpp:36:7:36:15 | ... == ... | 1.0 | +| test.cpp:36:12:36:15 | - ... | 1.0 | +| test.cpp:36:13:36:15 | 128 | 1.0 | +| test.cpp:37:5:37:5 | x | 1.0 | +| test.cpp:37:5:37:12 | ... = ... | 1.0 | +| test.cpp:37:9:37:12 | - ... | 1.0 | +| test.cpp:37:10:37:12 | 128 | 1.0 | +| test.cpp:39:7:39:7 | y | 16.0 | +| test.cpp:39:7:39:14 | ... == ... | 1.0 | +| test.cpp:39:12:39:14 | 128 | 1.0 | +| test.cpp:40:5:40:5 | x | 1.0 | +| test.cpp:40:5:40:11 | ... = ... | 1.0 | +| test.cpp:40:9:40:11 | 128 | 1.0 | +| test.cpp:42:7:42:7 | y | 32.0 | +| test.cpp:42:7:42:16 | ... == ... | 1.0 | +| test.cpp:42:12:42:16 | - ... | 1.0 | +| test.cpp:42:13:42:16 | 1024 | 1.0 | +| test.cpp:43:5:43:5 | x | 1.0 | +| test.cpp:43:5:43:13 | ... = ... | 1.0 | +| test.cpp:43:9:43:13 | - ... | 1.0 | +| test.cpp:43:10:43:13 | 1024 | 1.0 | +| test.cpp:45:7:45:7 | y | 64.0 | +| test.cpp:45:7:45:15 | ... == ... | 1.0 | +| test.cpp:45:12:45:15 | 1024 | 1.0 | +| test.cpp:46:5:46:5 | x | 1.0 | +| test.cpp:46:5:46:12 | ... = ... | 1.0 | +| test.cpp:46:9:46:12 | 1024 | 1.0 | +| test.cpp:49:10:49:11 | 0 | 1.0 | +| test.cpp:51:7:51:7 | x | 8.0 | +| test.cpp:51:7:51:12 | ... == ... | 1.0 | +| test.cpp:51:12:51:12 | 0 | 1.0 | +| test.cpp:52:15:52:21 | (bool)... | 1.0 | +| test.cpp:52:21:52:21 | x | 8.0 | +| test.cpp:53:5:53:5 | t | 1.0 | +| test.cpp:53:5:53:16 | ... += ... | 8.0 | +| test.cpp:53:10:53:16 | (int)... | 8.0 | +| test.cpp:53:15:53:16 | xb | 8.0 | +| test.cpp:56:7:56:7 | x | 16.0 | +| test.cpp:56:7:56:11 | ... > ... | 1.0 | +| test.cpp:56:11:56:11 | 0 | 1.0 | +| test.cpp:57:15:57:21 | (bool)... | 1.0 | +| test.cpp:57:21:57:21 | x | 16.0 | +| test.cpp:58:5:58:5 | t | 9.0 | +| test.cpp:58:5:58:16 | ... += ... | 144.0 | +| test.cpp:58:10:58:16 | (int)... | 16.0 | +| test.cpp:58:15:58:16 | xb | 16.0 | +| test.cpp:61:7:61:7 | x | 17.0 | +| test.cpp:61:7:61:11 | ... < ... | 1.0 | +| test.cpp:61:11:61:11 | 0 | 1.0 | +| test.cpp:62:15:62:21 | (bool)... | 1.0 | +| test.cpp:62:21:62:21 | x | 17.0 | +| test.cpp:63:5:63:5 | t | 153.0 | +| test.cpp:63:5:63:16 | ... += ... | 2601.0 | +| test.cpp:63:10:63:16 | (int)... | 17.0 | +| test.cpp:63:15:63:16 | xb | 17.0 | +| test.cpp:66:13:66:19 | (bool)... | 1.0 | +| test.cpp:66:19:66:19 | x | 18.0 | +| test.cpp:67:3:67:3 | t | 2754.0 | +| test.cpp:67:3:67:14 | ... += ... | 49572.0 | +| test.cpp:67:8:67:14 | (int)... | 18.0 | +| test.cpp:67:13:67:14 | xb | 18.0 | +| test.cpp:69:10:69:10 | b | 1.0 | +| test.cpp:69:10:69:21 | ... \|\| ... | 1.0 | +| test.cpp:69:15:69:21 | (bool)... | 1.0 | +| test.cpp:69:21:69:21 | t | 49572.0 | +| test.cpp:74:30:74:30 | (int)... | 1.0 | +| test.cpp:74:30:74:30 | c | 1.0 | +| test.cpp:74:30:74:34 | (unsigned short)... | 1.0 | +| test.cpp:74:30:74:34 | ... + ... | 1.0 | +| test.cpp:74:34:74:34 | (int)... | 1.0 | +| test.cpp:74:34:74:34 | c | 1.0 | +| test.cpp:75:7:75:30 | (int)... | 1.0 | +| test.cpp:75:7:75:30 | (unsigned char)... | 1.0 | +| test.cpp:75:7:75:35 | ... == ... | 1.0 | +| test.cpp:75:22:75:30 | c_times_2 | 1.0 | +| test.cpp:75:35:75:35 | 0 | 1.0 | +| test.cpp:77:5:77:13 | c_times_2 | 1.0 | +| test.cpp:79:3:79:11 | c_times_2 | 1.0 | +| test.cpp:83:16:83:22 | (reference dereference) | 1.0 | +| test.cpp:83:16:83:22 | (reference to) | 1.0 | +| test.cpp:83:16:83:22 | aliased | 1.0 | +| test.cpp:85:7:85:7 | (reference dereference) | 1.0 | +| test.cpp:85:7:85:7 | i | 1.0 | +| test.cpp:85:7:85:12 | ... >= ... | 1.0 | +| test.cpp:85:12:85:12 | 2 | 1.0 | +| test.cpp:86:12:86:12 | (reference dereference) | 1.0 | +| test.cpp:86:12:86:12 | i | 1.0 | +| test.cpp:88:7:88:8 | (reference dereference) | 1.0 | +| test.cpp:88:7:88:8 | ci | 1.0 | +| test.cpp:88:7:88:13 | ... >= ... | 1.0 | +| test.cpp:88:13:88:13 | 2 | 1.0 | +| test.cpp:89:12:89:13 | (reference dereference) | 1.0 | +| test.cpp:89:12:89:13 | ci | 1.0 | +| test.cpp:91:7:91:13 | (reference dereference) | 1.0 | +| test.cpp:91:7:91:13 | aliased | 1.0 | +| test.cpp:91:7:91:18 | ... >= ... | 1.0 | +| test.cpp:91:18:91:18 | 2 | 1.0 | +| test.cpp:92:12:92:18 | (reference dereference) | 1.0 | +| test.cpp:92:12:92:18 | aliased | 1.0 | +| test.cpp:94:7:94:11 | (reference dereference) | 1.0 | +| test.cpp:94:7:94:11 | alias | 1.0 | +| test.cpp:94:7:94:16 | ... >= ... | 1.0 | +| test.cpp:94:16:94:16 | 2 | 1.0 | +| test.cpp:95:12:95:16 | (reference dereference) | 1.0 | +| test.cpp:95:12:95:16 | alias | 1.0 | +| test.cpp:97:10:97:10 | (reference dereference) | 13.0 | +| test.cpp:97:10:97:19 | ... <= ... | 1.0 | +| test.cpp:97:15:97:19 | 12345 | 1.0 | +| test.cpp:97:22:97:22 | (reference dereference) | 13.0 | +| test.cpp:97:22:97:24 | ... ++ | 13.0 | +| test.cpp:98:5:98:5 | (reference dereference) | 1.0 | +| test.cpp:98:5:98:5 | i | 1.0 | +| test.cpp:98:5:98:9 | ... = ... | 13.0 | +| test.cpp:98:9:98:9 | (reference dereference) | 13.0 | +| test.cpp:99:5:99:5 | (reference dereference) | 13.0 | +| test.cpp:102:10:102:10 | 0 | 1.0 | +| test.cpp:106:7:106:7 | (int)... | 1.0 | +| test.cpp:106:7:106:7 | n | 1.0 | +| test.cpp:106:7:106:11 | ... < ... | 1.0 | +| test.cpp:106:11:106:11 | 0 | 1.0 | +| test.cpp:109:7:109:7 | (bool)... | 1.0 | +| test.cpp:109:7:109:7 | n | 1.0 | +| test.cpp:110:5:110:5 | n | 1.0 | +| test.cpp:112:5:112:5 | n | 1.0 | +| test.cpp:115:7:115:8 | ! ... | 1.0 | +| test.cpp:115:8:115:8 | (bool)... | 1.0 | +| test.cpp:115:8:115:8 | n | 2.0 | +| test.cpp:116:5:116:5 | n | 2.0 | +| test.cpp:118:5:118:5 | n | 2.0 | +| test.cpp:121:3:121:3 | (bool)... | 1.0 | +| test.cpp:121:3:121:3 | n | 4.0 | +| test.cpp:121:3:121:12 | ... ? ... : ... | 16.0 | +| test.cpp:121:8:121:8 | n | 4.0 | +| test.cpp:121:12:121:12 | n | 4.0 | +| test.cpp:122:3:122:4 | ! ... | 1.0 | +| test.cpp:122:3:122:12 | ... ? ... : ... | 64.0 | +| test.cpp:122:4:122:4 | (bool)... | 1.0 | +| test.cpp:122:4:122:4 | n | 8.0 | +| test.cpp:122:8:122:8 | n | 8.0 | +| test.cpp:122:12:122:12 | n | 8.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.ql b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.ql new file mode 100644 index 000000000000..ec82c44ef825 --- /dev/null +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.ql @@ -0,0 +1,5 @@ +import cpp +import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis + +from Expr e +select e, SimpleRangeAnalysisInternal::estimateNrOfBounds(e) diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected index 0cd2437e0730..1d0415e7a786 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryLower.expected @@ -72,8 +72,77 @@ | test.c:405:22:405:82 | ... ? ... : ... | 0.13204114 | 0.42186276 | 0.13204114 | | test.c:405:26:405:69 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.44996679 | | test.c:405:30:405:56 | ... ? ... : ... | 0.42186276 | 0.42186276 | 0.53843358 | -| test.c:418:20:418:36 | ... ? ... : ... | 0.0 | 0.0 | 100.0 | -| test.c:630:5:630:14 | ... ? ... : ... | 0.0 | 1.0 | 0.0 | -| test.c:631:5:631:14 | ... ? ... : ... | 0.0 | 0.0 | 1.0 | +| test.c:432:4:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:432:5:434:49 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:435:6:517:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:436:8:454:41 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:439:10:443:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:439:31:439:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:441:13:443:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:448:12:453:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:449:12:449:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:451:15:453:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:455:6:474:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:458:8:462:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:458:29:458:77 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:460:11:462:19 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:463:6:463:54 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:467:10:471:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:467:31:467:79 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:469:13:471:21 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:472:9:474:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:476:10:495:43 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:479:12:484:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:480:12:480:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:482:15:484:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:489:14:494:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:490:14:490:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:492:17:494:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:496:9:517:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:499:14:504:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:500:14:500:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:502:17:504:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:505:12:505:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:509:12:514:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:510:12:510:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:512:15:514:23 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:515:11:517:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:518:9:520:51 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:521:9:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:522:14:541:47 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:525:16:530:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:526:16:526:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:528:19:530:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:535:18:540:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:536:18:536:66 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:538:21:540:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:542:12:563:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:545:14:550:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:546:14:546:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:548:17:550:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:551:12:551:60 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:555:16:560:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:556:16:556:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:558:19:560:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:561:15:563:29 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:565:12:584:45 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:568:14:573:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:569:14:569:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:571:17:573:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:578:16:583:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:579:16:579:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:581:19:583:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:585:11:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:588:16:593:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:589:16:589:64 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:591:19:593:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:594:14:594:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:598:14:603:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:599:14:599:62 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:601:17:603:25 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:604:13:606:27 | ... ? ... : ... | 0.0 | 0.0 | 0.0 | +| test.c:632:20:632:36 | ... ? ... : ... | 0.0 | 0.0 | 100.0 | +| test.c:844:5:844:14 | ... ? ... : ... | 0.0 | 1.0 | 0.0 | +| test.c:845:5:845:14 | ... ? ... : ... | 0.0 | 0.0 | 1.0 | | test.cpp:121:3:121:12 | ... ? ... : ... | 0.0 | 1.0 | 0.0 | | test.cpp:122:3:122:12 | ... ? ... : ... | 0.0 | 0.0 | 1.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected index b34beda10d42..4e7d05d9c089 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/ternaryUpper.expected @@ -72,8 +72,77 @@ | test.c:405:22:405:82 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.13204114 | | test.c:405:26:405:69 | ... ? ... : ... | 0.53843358 | 0.53843358 | 0.44996679 | | test.c:405:30:405:56 | ... ? ... : ... | 0.53843358 | 0.42186276 | 0.53843358 | -| test.c:418:20:418:36 | ... ? ... : ... | 100.0 | 99.0 | 100.0 | -| test.c:630:5:630:14 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 | -| test.c:631:5:631:14 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 | +| test.c:432:4:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:432:5:434:49 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:435:6:517:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:436:8:454:41 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:439:10:443:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:439:31:439:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:441:13:443:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:448:12:453:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:449:12:449:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:451:15:453:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:455:6:474:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:458:8:462:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:458:29:458:77 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:460:11:462:19 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:463:6:463:54 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:467:10:471:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:467:31:467:79 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:469:13:471:21 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:472:9:474:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:476:10:495:43 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:479:12:484:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:480:12:480:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:482:15:484:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:489:14:494:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:490:14:490:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:492:17:494:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:496:9:517:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:499:14:504:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:500:14:500:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:502:17:504:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:505:12:505:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:509:12:514:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:510:12:510:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:512:15:514:23 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:515:11:517:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:518:9:520:51 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:521:9:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:522:14:541:47 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:525:16:530:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:526:16:526:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:528:19:530:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:535:18:540:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:536:18:536:66 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:538:21:540:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:542:12:563:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:545:14:550:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:546:14:546:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:548:17:550:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:551:12:551:60 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:555:16:560:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:556:16:556:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:558:19:560:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:561:15:563:29 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:565:12:584:45 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:568:14:573:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:569:14:569:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:571:17:573:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:578:16:583:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:579:16:579:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:581:19:583:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:585:11:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:588:16:593:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:589:16:589:64 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:591:19:593:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:594:14:594:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:598:14:603:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:599:14:599:62 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:601:17:603:25 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:604:13:606:27 | ... ? ... : ... | 4.294967295E9 | 4.294967295E9 | 4.294967295E9 | +| test.c:632:20:632:36 | ... ? ... : ... | 100.0 | 99.0 | 100.0 | +| test.c:844:5:844:14 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 | +| test.c:845:5:845:14 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 | | test.cpp:121:3:121:12 | ... ? ... : ... | 32767.0 | 32767.0 | 0.0 | | test.cpp:122:3:122:12 | ... ? ... : ... | 32767.0 | 0.0 | 32767.0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c index db7c71e00504..c161dcdbb058 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c @@ -413,6 +413,220 @@ double test_ternary_nested_of_literals(double m, double n, double o, double p, d return output; } +int repeated_if_statements(unsigned int rhs) { + // Test how many bounds we estimate for `if` statements without `else` + // branches where the following node is both a normal phi node and a guard phi + // node. + if (rhs < 12) { rhs << 1; } + if (rhs < 13) { rhs << 1; } + if (rhs < 14) { rhs << 1; } + if (rhs < 15) { rhs << 1; } + if (rhs < 16) { rhs << 1; } + return rhs; // rhs has 6 bounds +} + +unsigned int conditional_nested_guards(unsigned int ip) { + // This tests a combinatorial explosion that can happen from a large number of + // nested linear guards. + unsigned int special_number = + (14 * ip > (2 * ip + 1) * 17 + (2 * ip + 1 + 1) * 17 + ? 14 * ip + : (2 * ip + 1) * 14 + (2 * ip + 1 + 1) * 17) > + (2 * (ip * 14 + 32) + + (4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > (17 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + 2 * ip * 14 + (2 * ip + 1) * 17 + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 2 * ip * 14 + (2 * ip + 1) * 17) > + (4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > (17 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + (14 * ip > (ip + 1) * 17 ? 17 * ip : (ip + 1) * 17) + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > (17 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 14 * ip > (ip + 1) * 17 + ? 14 * ip + : (ip + 1) * 14) + ? 2 * (ip * 14 + 32) + + (4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + 2 * ip * 14 + (2 * ip + 1) * 17 + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 2 * ip * 14 + (2 * ip + 1) * 17) + : 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + (14 * ip > (ip + 1) * 17 ? 17 * ip : (ip + 1) * 17) + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 14 * ip > (ip + 1) * 17 + ? 14 * ip + : (ip + 1) * 14) + ? 14 * ip > (2 * ip + 1) * 17 + (2 * ip + 1 + 1) * 17 + ? 14 * ip + : (2 * ip + 1) * 14 + (2 * ip + 1 + 1) * 17 + : 2 * (ip * 14 + 32) + + (4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + 2 * ip * 14 + (2 * ip + 1) * 17 + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 2 * ip * 14 + (2 * ip + 1) * 17) > + (4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + (14 * ip > (ip + 1) * 17 ? 17 * ip : (ip + 1) * 17) + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 14 * ip > (ip + 1) * 17 + ? 14 * ip + : (ip + 1) * 14) + ? 2 * (ip * 14 + 32) + + (4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + 2 * ip * 14 + (2 * ip + 1) * 17 + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 2 * ip * 14 + (2 * ip + 1) * 17) + : 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) > + (14 * ip > (ip + 1) * 17 ? 17 * ip : (ip + 1) * 17) + ? 4 * (ip * 14 + 32) + + (2 * ip * 14 + 32) + + 2 * (ip * 14 + 64) + + ((2 * ip + 1) * 14 > + (14 * (2 * ip) > 17 * ip ? 17 * (2 * ip) : 17 * ip) + ? (2 * ip + 1) * 14 + : 14 * (2 * ip) > 17 * ip + ? 14 * (2 * ip) + : 14 * ip) + : 14 * ip > (ip + 1) * 17 + ? 14 * ip + : (ip + 1) * 14; + return special_number; +} + +int many_conditional_assignments(int c1, int c2, int c3, int c4, int c5) { + // This tests a combinatorial explosion that can happen from many conditional + // assignments, since each conditional assignment doubles the number of + // bounds. + int x = 0; + if (c1) { x += 748596; } + if (c2) { x += 84652395; } + if (c3) { x += 3675895; } + if (c4) { x += 98634; } + if (c5) { x += 7834985; } + if (c1 && c2) { x += 938457398; } + if (c1 && c3) { x += 73895648; } + if (c1 && c4) { x += 12345432; } + if (c1 && c5) { x += 38847; } + if (c2 && c3) { x += 234; } + // x now has 2^10 bounds, the 10 additions below give (2^10)^10 bounds + int y = x + x + x + x + x + x + x + x + x + x + x + x; + return y; +} + // Test the comma expression. unsigned int test_comma01(unsigned int x) { unsigned int y = x < 100 ? x : 100; @@ -700,7 +914,7 @@ void guard_with_exit(int x, int y) { // This test ensures that we correctly identify // that the upper bound for y is max_int when calling `out(y)`. - // The RangeSsa will place guardPhy on `out(y)`, and consequently there is no + // The RangeSsa will place guardPhi on `out(y)`, and consequently there is no // frontier phi node at out(y). } @@ -708,7 +922,7 @@ void test(int x) { if (x >= 10) { return; } - // The basic below has two predecessors. + // The basic block below has two predecessors. label: out(x); goto label; diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected index 8696ecfe8d09..d4c776a065d2 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected @@ -485,197 +485,519 @@ | test.c:411:59:411:59 | k | 0.889553 | | test.c:411:63:411:63 | l | 0.538434 | | test.c:413:10:413:15 | output | 9.284378 | -| test.c:418:20:418:20 | x | 4294967295 | -| test.c:418:30:418:30 | x | 99 | -| test.c:421:3:421:4 | y1 | 4294967295 | -| test.c:421:11:421:11 | y | 100 | -| test.c:421:14:421:14 | y | 101 | -| test.c:422:3:422:4 | y2 | 4294967295 | -| test.c:422:9:422:9 | y | 101 | -| test.c:422:14:422:14 | y | 102 | -| test.c:422:22:422:22 | y | 105 | -| test.c:423:10:423:11 | y1 | 101 | -| test.c:423:15:423:16 | y2 | 105 | -| test.c:431:3:431:3 | i | 2147483647 | -| test.c:432:7:432:7 | i | 10 | -| test.c:434:3:434:3 | i | 2147483647 | -| test.c:435:3:435:3 | i | 10 | -| test.c:436:7:436:7 | i | 20 | -| test.c:438:3:438:3 | i | 2147483647 | -| test.c:439:3:439:3 | i | 40 | -| test.c:440:7:440:7 | i | 30 | -| test.c:442:3:442:3 | i | 2147483647 | -| test.c:442:7:442:7 | j | 2147483647 | -| test.c:443:7:443:7 | i | 40 | -| test.c:445:3:445:3 | i | 2147483647 | -| test.c:445:8:445:8 | j | 40 | -| test.c:446:7:446:7 | i | 50 | -| test.c:448:3:448:3 | i | 2147483647 | -| test.c:448:13:448:13 | j | 50 | -| test.c:449:7:449:7 | i | 60 | -| test.c:456:12:456:12 | a | 4294967295 | -| test.c:456:17:456:17 | a | 4294967295 | -| test.c:456:33:456:33 | b | 4294967295 | -| test.c:456:38:456:38 | b | 4294967295 | -| test.c:457:13:457:13 | a | 11 | -| test.c:457:15:457:15 | b | 23 | -| test.c:458:5:458:9 | total | 0 | -| test.c:458:14:458:14 | r | 253 | -| test.c:460:12:460:12 | a | 4294967295 | -| test.c:460:17:460:17 | a | 4294967295 | -| test.c:460:33:460:33 | b | 4294967295 | -| test.c:460:38:460:38 | b | 4294967295 | -| test.c:461:13:461:13 | a | 11 | -| test.c:461:15:461:15 | b | 23 | -| test.c:462:5:462:9 | total | 253 | -| test.c:462:14:462:14 | r | 253 | -| test.c:464:12:464:12 | a | 4294967295 | -| test.c:464:17:464:17 | a | 4294967295 | -| test.c:464:34:464:34 | b | 4294967295 | -| test.c:464:39:464:39 | b | 4294967295 | -| test.c:465:13:465:13 | a | 11 | -| test.c:465:15:465:15 | b | 23 | -| test.c:466:5:466:9 | total | 506 | -| test.c:466:14:466:14 | r | 253 | -| test.c:469:10:469:14 | total | 759 | -| test.c:475:12:475:12 | b | 4294967295 | -| test.c:475:17:475:17 | b | 4294967295 | -| test.c:476:16:476:16 | b | 23 | -| test.c:477:5:477:9 | total | 0 | -| test.c:477:14:477:14 | r | 253 | -| test.c:479:12:479:12 | b | 4294967295 | -| test.c:479:17:479:17 | b | 4294967295 | -| test.c:480:16:480:16 | b | 23 | -| test.c:481:5:481:9 | total | 253 | -| test.c:481:14:481:14 | r | 253 | -| test.c:483:13:483:13 | b | 4294967295 | -| test.c:483:18:483:18 | b | 4294967295 | -| test.c:484:16:484:16 | b | 23 | -| test.c:485:5:485:9 | total | 506 | -| test.c:485:14:485:14 | r | 253 | -| test.c:488:10:488:14 | total | 759 | -| test.c:493:3:493:3 | x | 18446744073709551616 | -| test.c:493:7:493:7 | y | 18446744073709551616 | -| test.c:494:3:494:4 | xy | 18446744073709551616 | -| test.c:494:8:494:8 | x | 1000000003 | -| test.c:494:12:494:12 | y | 1000000003 | -| test.c:495:10:495:11 | xy | 1000000006000000000 | -| test.c:500:3:500:3 | x | 18446744073709551616 | -| test.c:501:3:501:3 | y | 18446744073709551616 | -| test.c:502:3:502:4 | xy | 18446744073709551616 | -| test.c:502:8:502:8 | x | 274177 | -| test.c:502:12:502:12 | y | 67280421310721 | -| test.c:503:10:503:11 | xy | 18446744073709551616 | -| test.c:507:7:507:8 | ui | 4294967295 | -| test.c:508:43:508:44 | ui | 4294967295 | -| test.c:508:48:508:49 | ui | 4294967295 | -| test.c:509:12:509:17 | result | 18446744065119617024 | -| test.c:511:7:511:8 | ul | 18446744073709551616 | -| test.c:512:28:512:29 | ul | 18446744073709551616 | -| test.c:512:33:512:34 | ul | 18446744073709551616 | -| test.c:513:12:513:17 | result | 18446744073709551616 | -| test.c:519:7:519:8 | ui | 4294967295 | -| test.c:519:19:519:20 | ui | 10 | -| test.c:520:5:520:6 | ui | 10 | -| test.c:520:11:520:12 | ui | 10 | -| test.c:521:12:521:13 | ui | 100 | -| test.c:525:3:525:9 | uiconst | 10 | -| test.c:528:3:528:9 | ulconst | 10 | -| test.c:529:10:529:16 | uiconst | 40 | -| test.c:529:20:529:26 | ulconst | 40 | -| test.c:533:7:533:7 | i | 2147483647 | -| test.c:533:18:533:18 | i | 2147483647 | -| test.c:534:5:534:5 | i | 2147483647 | -| test.c:534:13:534:13 | i | 2 | -| test.c:535:9:535:9 | i | 10 | -| test.c:537:5:537:5 | i | 2147483647 | -| test.c:537:9:537:9 | i | 10 | -| test.c:538:9:538:9 | i | 15 | -| test.c:540:5:540:5 | i | 15 | -| test.c:541:9:541:9 | i | 105 | -| test.c:543:5:543:5 | i | 105 | -| test.c:544:9:544:9 | i | 2310 | -| test.c:546:7:546:7 | i | 2147483647 | -| test.c:547:5:547:5 | i | 2147483647 | -| test.c:547:9:547:9 | i | -1 | -| test.c:548:9:548:9 | i | 1 | -| test.c:550:3:550:3 | i | 2147483647 | -| test.c:550:7:550:7 | i | 2147483647 | -| test.c:551:10:551:10 | i | 2147483647 | -| test.c:554:3:554:3 | i | 2147483647 | -| test.c:554:10:554:11 | sc | 1 | -| test.c:556:7:556:7 | i | 127 | -| test.c:563:7:563:7 | n | 4294967295 | -| test.c:565:7:565:7 | n | 4294967295 | -| test.c:566:9:566:9 | n | 4294967295 | -| test.c:569:7:569:7 | n | 4294967295 | -| test.c:570:9:570:9 | n | 4294967295 | -| test.c:572:9:572:9 | n | 0 | -| test.c:575:8:575:8 | n | 4294967295 | -| test.c:576:9:576:9 | n | 0 | -| test.c:578:9:578:9 | n | 4294967295 | -| test.c:581:10:581:10 | n | 4294967295 | -| test.c:582:5:582:5 | n | 4294967295 | -| test.c:585:7:585:7 | n | 0 | -| test.c:589:7:589:7 | n | 32767 | -| test.c:592:7:592:7 | n | 32767 | -| test.c:593:9:593:9 | n | 0 | -| test.c:595:9:595:9 | n | 32767 | -| test.c:598:7:598:7 | n | 32767 | -| test.c:599:9:599:9 | n | 32767 | -| test.c:601:9:601:9 | n | 0 | -| test.c:604:10:604:10 | n | 32767 | -| test.c:605:5:605:5 | n | 32767 | -| test.c:608:7:608:7 | n | 0 | -| test.c:612:7:612:7 | n | 32767 | -| test.c:613:9:613:9 | n | 32767 | -| test.c:614:11:614:11 | n | 32767 | -| test.c:618:7:618:7 | n | 32767 | -| test.c:619:13:619:13 | n | 32767 | -| test.c:622:9:622:9 | n | 32767 | -| test.c:625:7:625:7 | n | 32767 | -| test.c:625:22:625:22 | n | 32767 | -| test.c:626:9:626:9 | n | 32767 | -| test.c:629:7:629:7 | n | 32767 | -| test.c:630:5:630:5 | n | 32767 | -| test.c:630:10:630:10 | n | 32767 | -| test.c:630:14:630:14 | n | 0 | -| test.c:631:6:631:6 | n | 32767 | -| test.c:631:10:631:10 | n | 0 | -| test.c:631:14:631:14 | n | 32767 | -| test.c:642:7:642:8 | ss | 32767 | -| test.c:643:9:643:10 | ss | 3 | -| test.c:646:7:646:8 | ss | 32767 | -| test.c:647:9:647:10 | ss | 32767 | -| test.c:650:14:650:15 | us | 65535 | -| test.c:651:9:651:10 | us | 32767 | -| test.c:654:14:654:15 | us | 65535 | -| test.c:655:9:655:10 | us | 65535 | -| test.c:658:7:658:8 | ss | 32767 | -| test.c:659:9:659:10 | ss | 32767 | -| test.c:662:7:662:8 | ss | 32767 | -| test.c:663:9:663:10 | ss | 2 | -| test.c:669:8:669:8 | s | 2147483647 | -| test.c:669:15:669:15 | s | 127 | -| test.c:669:23:669:23 | s | 9 | -| test.c:670:18:670:18 | s | 9 | -| test.c:670:22:670:22 | s | 9 | -| test.c:671:9:671:14 | result | 127 | -| test.c:677:7:677:7 | i | 0 | -| test.c:678:9:678:9 | i | 2147483647 | -| test.c:682:7:682:7 | u | 0 | -| test.c:683:9:683:9 | u | 4294967295 | -| test.c:688:12:688:12 | s | 2147483647 | -| test.c:689:7:689:8 | s2 | 4 | -| test.c:694:7:694:7 | x | 2147483647 | -| test.c:695:9:695:9 | y | 2147483647 | -| test.c:699:7:699:7 | y | 2147483647 | -| test.c:708:7:708:7 | x | 2147483647 | -| test.c:713:7:713:7 | x | 15 | -| test.c:720:8:720:8 | x | 2147483647 | -| test.c:720:12:720:12 | y | 256 | -| test.c:721:9:721:9 | x | 2147483647 | -| test.c:722:9:722:9 | y | 256 | +| test.c:420:7:420:9 | rhs | 4294967295 | +| test.c:420:19:420:21 | rhs | 11 | +| test.c:421:7:421:9 | rhs | 4294967295 | +| test.c:421:19:421:21 | rhs | 12 | +| test.c:422:7:422:9 | rhs | 4294967295 | +| test.c:422:19:422:21 | rhs | 13 | +| test.c:423:7:423:9 | rhs | 4294967295 | +| test.c:423:19:423:21 | rhs | 14 | +| test.c:424:7:424:9 | rhs | 4294967295 | +| test.c:424:19:424:21 | rhs | 15 | +| test.c:425:10:425:12 | rhs | 4294967295 | +| test.c:432:10:432:11 | ip | 4294967295 | +| test.c:432:20:432:21 | ip | 4294967295 | +| test.c:432:40:432:41 | ip | 4294967295 | +| test.c:433:14:433:15 | ip | 4294967295 | +| test.c:434:14:434:15 | ip | 4294967295 | +| test.c:434:34:434:35 | ip | 4294967295 | +| test.c:435:11:435:12 | ip | 4294967295 | +| test.c:436:13:436:14 | ip | 4294967295 | +| test.c:437:14:437:15 | ip | 4294967295 | +| test.c:438:14:438:15 | ip | 4294967295 | +| test.c:439:15:439:16 | ip | 4294967295 | +| test.c:439:41:439:42 | ip | 4294967295 | +| test.c:439:52:439:53 | ip | 4294967295 | +| test.c:439:67:439:68 | ip | 4294967295 | +| test.c:439:78:439:79 | ip | 4294967295 | +| test.c:440:18:440:19 | ip | 4294967295 | +| test.c:441:23:441:24 | ip | 4294967295 | +| test.c:441:34:441:35 | ip | 4294967295 | +| test.c:442:25:442:26 | ip | 4294967295 | +| test.c:443:20:443:21 | ip | 4294967295 | +| test.c:444:11:444:12 | ip | 4294967295 | +| test.c:444:26:444:27 | ip | 4294967295 | +| test.c:445:16:445:17 | ip | 4294967295 | +| test.c:446:16:446:17 | ip | 4294967295 | +| test.c:447:16:447:17 | ip | 4294967295 | +| test.c:448:17:448:18 | ip | 4294967295 | +| test.c:449:22:449:23 | ip | 4294967295 | +| test.c:449:33:449:34 | ip | 4294967295 | +| test.c:449:48:449:49 | ip | 4294967295 | +| test.c:449:59:449:60 | ip | 4294967295 | +| test.c:450:20:450:21 | ip | 4294967295 | +| test.c:451:25:451:26 | ip | 4294967295 | +| test.c:451:36:451:37 | ip | 4294967295 | +| test.c:452:27:452:28 | ip | 4294967295 | +| test.c:453:22:453:23 | ip | 4294967295 | +| test.c:454:15:454:16 | ip | 4294967295 | +| test.c:454:30:454:31 | ip | 4294967295 | +| test.c:455:11:455:12 | ip | 4294967295 | +| test.c:456:12:456:13 | ip | 4294967295 | +| test.c:457:12:457:13 | ip | 4294967295 | +| test.c:458:13:458:14 | ip | 4294967295 | +| test.c:458:39:458:40 | ip | 4294967295 | +| test.c:458:50:458:51 | ip | 4294967295 | +| test.c:458:65:458:66 | ip | 4294967295 | +| test.c:458:76:458:77 | ip | 4294967295 | +| test.c:459:16:459:17 | ip | 4294967295 | +| test.c:460:21:460:22 | ip | 4294967295 | +| test.c:460:32:460:33 | ip | 4294967295 | +| test.c:461:23:461:24 | ip | 4294967295 | +| test.c:462:18:462:19 | ip | 4294967295 | +| test.c:463:11:463:12 | ip | 4294967295 | +| test.c:463:17:463:18 | ip | 4294967295 | +| test.c:463:37:463:38 | ip | 4294967295 | +| test.c:463:43:463:44 | ip | 4294967295 | +| test.c:464:14:464:15 | ip | 4294967295 | +| test.c:465:14:465:15 | ip | 4294967295 | +| test.c:466:14:466:15 | ip | 4294967295 | +| test.c:467:15:467:16 | ip | 4294967295 | +| test.c:467:41:467:42 | ip | 4294967295 | +| test.c:467:52:467:53 | ip | 4294967295 | +| test.c:467:67:467:68 | ip | 4294967295 | +| test.c:467:78:467:79 | ip | 4294967295 | +| test.c:468:18:468:19 | ip | 4294967295 | +| test.c:469:23:469:24 | ip | 4294967295 | +| test.c:469:34:469:35 | ip | 4294967295 | +| test.c:470:25:470:26 | ip | 4294967295 | +| test.c:471:20:471:21 | ip | 4294967295 | +| test.c:472:14:472:15 | ip | 4294967295 | +| test.c:472:20:472:21 | ip | 4294967295 | +| test.c:473:16:473:17 | ip | 4294967295 | +| test.c:474:12:474:13 | ip | 4294967295 | +| test.c:475:14:475:15 | ip | 4294967295 | +| test.c:476:15:476:16 | ip | 4294967295 | +| test.c:477:16:477:17 | ip | 4294967295 | +| test.c:478:16:478:17 | ip | 4294967295 | +| test.c:479:17:479:18 | ip | 4294967295 | +| test.c:480:22:480:23 | ip | 4294967295 | +| test.c:480:33:480:34 | ip | 4294967295 | +| test.c:480:48:480:49 | ip | 4294967295 | +| test.c:480:59:480:60 | ip | 4294967295 | +| test.c:481:20:481:21 | ip | 4294967295 | +| test.c:482:25:482:26 | ip | 4294967295 | +| test.c:482:36:482:37 | ip | 4294967295 | +| test.c:483:27:483:28 | ip | 4294967295 | +| test.c:484:22:484:23 | ip | 4294967295 | +| test.c:485:13:485:14 | ip | 4294967295 | +| test.c:485:28:485:29 | ip | 4294967295 | +| test.c:486:18:486:19 | ip | 4294967295 | +| test.c:487:18:487:19 | ip | 4294967295 | +| test.c:488:18:488:19 | ip | 4294967295 | +| test.c:489:19:489:20 | ip | 4294967295 | +| test.c:490:24:490:25 | ip | 4294967295 | +| test.c:490:35:490:36 | ip | 4294967295 | +| test.c:490:50:490:51 | ip | 4294967295 | +| test.c:490:61:490:62 | ip | 4294967295 | +| test.c:491:22:491:23 | ip | 4294967295 | +| test.c:492:27:492:28 | ip | 4294967295 | +| test.c:492:38:492:39 | ip | 4294967295 | +| test.c:493:29:493:30 | ip | 4294967295 | +| test.c:494:24:494:25 | ip | 4294967295 | +| test.c:495:17:495:18 | ip | 4294967295 | +| test.c:495:32:495:33 | ip | 4294967295 | +| test.c:496:14:496:15 | ip | 4294967295 | +| test.c:497:18:497:19 | ip | 4294967295 | +| test.c:498:18:498:19 | ip | 4294967295 | +| test.c:499:19:499:20 | ip | 4294967295 | +| test.c:500:24:500:25 | ip | 4294967295 | +| test.c:500:35:500:36 | ip | 4294967295 | +| test.c:500:50:500:51 | ip | 4294967295 | +| test.c:500:61:500:62 | ip | 4294967295 | +| test.c:501:22:501:23 | ip | 4294967295 | +| test.c:502:27:502:28 | ip | 4294967295 | +| test.c:502:38:502:39 | ip | 4294967295 | +| test.c:503:29:503:30 | ip | 4294967295 | +| test.c:504:24:504:25 | ip | 4294967295 | +| test.c:505:17:505:18 | ip | 4294967295 | +| test.c:505:23:505:24 | ip | 4294967295 | +| test.c:505:43:505:44 | ip | 4294967295 | +| test.c:505:49:505:50 | ip | 4294967295 | +| test.c:506:16:506:17 | ip | 4294967295 | +| test.c:507:16:507:17 | ip | 4294967295 | +| test.c:508:16:508:17 | ip | 4294967295 | +| test.c:509:17:509:18 | ip | 4294967295 | +| test.c:510:22:510:23 | ip | 4294967295 | +| test.c:510:33:510:34 | ip | 4294967295 | +| test.c:510:48:510:49 | ip | 4294967295 | +| test.c:510:59:510:60 | ip | 4294967295 | +| test.c:511:20:511:21 | ip | 4294967295 | +| test.c:512:25:512:26 | ip | 4294967295 | +| test.c:512:36:512:37 | ip | 4294967295 | +| test.c:513:27:513:28 | ip | 4294967295 | +| test.c:514:22:514:23 | ip | 4294967295 | +| test.c:515:16:515:17 | ip | 4294967295 | +| test.c:515:22:515:23 | ip | 4294967295 | +| test.c:516:18:516:19 | ip | 4294967295 | +| test.c:517:14:517:15 | ip | 4294967295 | +| test.c:518:14:518:15 | ip | 4294967295 | +| test.c:518:24:518:25 | ip | 4294967295 | +| test.c:518:44:518:45 | ip | 4294967295 | +| test.c:519:16:519:17 | ip | 4294967295 | +| test.c:520:16:520:17 | ip | 4294967295 | +| test.c:520:36:520:37 | ip | 4294967295 | +| test.c:521:14:521:15 | ip | 4294967295 | +| test.c:522:19:522:20 | ip | 4294967295 | +| test.c:523:20:523:21 | ip | 4294967295 | +| test.c:524:20:524:21 | ip | 4294967295 | +| test.c:525:21:525:22 | ip | 4294967295 | +| test.c:526:26:526:27 | ip | 4294967295 | +| test.c:526:37:526:38 | ip | 4294967295 | +| test.c:526:52:526:53 | ip | 4294967295 | +| test.c:526:63:526:64 | ip | 4294967295 | +| test.c:527:24:527:25 | ip | 4294967295 | +| test.c:528:29:528:30 | ip | 4294967295 | +| test.c:528:40:528:41 | ip | 4294967295 | +| test.c:529:31:529:32 | ip | 4294967295 | +| test.c:530:26:530:27 | ip | 4294967295 | +| test.c:531:17:531:18 | ip | 4294967295 | +| test.c:531:32:531:33 | ip | 4294967295 | +| test.c:532:22:532:23 | ip | 4294967295 | +| test.c:533:22:533:23 | ip | 4294967295 | +| test.c:534:22:534:23 | ip | 4294967295 | +| test.c:535:23:535:24 | ip | 4294967295 | +| test.c:536:28:536:29 | ip | 4294967295 | +| test.c:536:39:536:40 | ip | 4294967295 | +| test.c:536:54:536:55 | ip | 4294967295 | +| test.c:536:65:536:66 | ip | 4294967295 | +| test.c:537:26:537:27 | ip | 4294967295 | +| test.c:538:31:538:32 | ip | 4294967295 | +| test.c:538:42:538:43 | ip | 4294967295 | +| test.c:539:33:539:34 | ip | 4294967295 | +| test.c:540:28:540:29 | ip | 4294967295 | +| test.c:541:21:541:22 | ip | 4294967295 | +| test.c:541:36:541:37 | ip | 4294967295 | +| test.c:542:17:542:18 | ip | 4294967295 | +| test.c:543:18:543:19 | ip | 4294967295 | +| test.c:544:18:544:19 | ip | 4294967295 | +| test.c:545:19:545:20 | ip | 4294967295 | +| test.c:546:24:546:25 | ip | 4294967295 | +| test.c:546:35:546:36 | ip | 4294967295 | +| test.c:546:50:546:51 | ip | 4294967295 | +| test.c:546:61:546:62 | ip | 4294967295 | +| test.c:547:22:547:23 | ip | 4294967295 | +| test.c:548:27:548:28 | ip | 4294967295 | +| test.c:548:38:548:39 | ip | 4294967295 | +| test.c:549:29:549:30 | ip | 4294967295 | +| test.c:550:24:550:25 | ip | 4294967295 | +| test.c:551:17:551:18 | ip | 4294967295 | +| test.c:551:23:551:24 | ip | 4294967295 | +| test.c:551:43:551:44 | ip | 4294967295 | +| test.c:551:49:551:50 | ip | 4294967295 | +| test.c:552:20:552:21 | ip | 4294967295 | +| test.c:553:20:553:21 | ip | 4294967295 | +| test.c:554:20:554:21 | ip | 4294967295 | +| test.c:555:21:555:22 | ip | 4294967295 | +| test.c:556:26:556:27 | ip | 4294967295 | +| test.c:556:37:556:38 | ip | 4294967295 | +| test.c:556:52:556:53 | ip | 4294967295 | +| test.c:556:63:556:64 | ip | 4294967295 | +| test.c:557:24:557:25 | ip | 4294967295 | +| test.c:558:29:558:30 | ip | 4294967295 | +| test.c:558:40:558:41 | ip | 4294967295 | +| test.c:559:31:559:32 | ip | 4294967295 | +| test.c:560:26:560:27 | ip | 4294967295 | +| test.c:561:20:561:21 | ip | 4294967295 | +| test.c:561:26:561:27 | ip | 4294967295 | +| test.c:562:22:562:23 | ip | 4294967295 | +| test.c:563:18:563:19 | ip | 4294967295 | +| test.c:564:16:564:17 | ip | 4294967295 | +| test.c:565:17:565:18 | ip | 4294967295 | +| test.c:566:18:566:19 | ip | 4294967295 | +| test.c:567:18:567:19 | ip | 4294967295 | +| test.c:568:19:568:20 | ip | 4294967295 | +| test.c:569:24:569:25 | ip | 4294967295 | +| test.c:569:35:569:36 | ip | 4294967295 | +| test.c:569:50:569:51 | ip | 4294967295 | +| test.c:569:61:569:62 | ip | 4294967295 | +| test.c:570:22:570:23 | ip | 4294967295 | +| test.c:571:27:571:28 | ip | 4294967295 | +| test.c:571:38:571:39 | ip | 4294967295 | +| test.c:572:29:572:30 | ip | 4294967295 | +| test.c:573:24:573:25 | ip | 4294967295 | +| test.c:574:15:574:16 | ip | 4294967295 | +| test.c:574:30:574:31 | ip | 4294967295 | +| test.c:575:20:575:21 | ip | 4294967295 | +| test.c:576:20:576:21 | ip | 4294967295 | +| test.c:577:20:577:21 | ip | 4294967295 | +| test.c:578:21:578:22 | ip | 4294967295 | +| test.c:579:26:579:27 | ip | 4294967295 | +| test.c:579:37:579:38 | ip | 4294967295 | +| test.c:579:52:579:53 | ip | 4294967295 | +| test.c:579:63:579:64 | ip | 4294967295 | +| test.c:580:24:580:25 | ip | 4294967295 | +| test.c:581:29:581:30 | ip | 4294967295 | +| test.c:581:40:581:41 | ip | 4294967295 | +| test.c:582:31:582:32 | ip | 4294967295 | +| test.c:583:26:583:27 | ip | 4294967295 | +| test.c:584:19:584:20 | ip | 4294967295 | +| test.c:584:34:584:35 | ip | 4294967295 | +| test.c:585:16:585:17 | ip | 4294967295 | +| test.c:586:20:586:21 | ip | 4294967295 | +| test.c:587:20:587:21 | ip | 4294967295 | +| test.c:588:21:588:22 | ip | 4294967295 | +| test.c:589:26:589:27 | ip | 4294967295 | +| test.c:589:37:589:38 | ip | 4294967295 | +| test.c:589:52:589:53 | ip | 4294967295 | +| test.c:589:63:589:64 | ip | 4294967295 | +| test.c:590:24:590:25 | ip | 4294967295 | +| test.c:591:29:591:30 | ip | 4294967295 | +| test.c:591:40:591:41 | ip | 4294967295 | +| test.c:592:31:592:32 | ip | 4294967295 | +| test.c:593:26:593:27 | ip | 4294967295 | +| test.c:594:19:594:20 | ip | 4294967295 | +| test.c:594:25:594:26 | ip | 4294967295 | +| test.c:594:45:594:46 | ip | 4294967295 | +| test.c:594:51:594:52 | ip | 4294967295 | +| test.c:595:18:595:19 | ip | 4294967295 | +| test.c:596:18:596:19 | ip | 4294967295 | +| test.c:597:18:597:19 | ip | 4294967295 | +| test.c:598:19:598:20 | ip | 4294967295 | +| test.c:599:24:599:25 | ip | 4294967295 | +| test.c:599:35:599:36 | ip | 4294967295 | +| test.c:599:50:599:51 | ip | 4294967295 | +| test.c:599:61:599:62 | ip | 4294967295 | +| test.c:600:22:600:23 | ip | 4294967295 | +| test.c:601:27:601:28 | ip | 4294967295 | +| test.c:601:38:601:39 | ip | 4294967295 | +| test.c:602:29:602:30 | ip | 4294967295 | +| test.c:603:24:603:25 | ip | 4294967295 | +| test.c:604:18:604:19 | ip | 4294967295 | +| test.c:604:24:604:25 | ip | 4294967295 | +| test.c:605:20:605:21 | ip | 4294967295 | +| test.c:606:16:606:17 | ip | 4294967295 | +| test.c:607:10:607:23 | special_number | 4294967295 | +| test.c:615:7:615:8 | c1 | 2147483647 | +| test.c:615:13:615:13 | x | 0 | +| test.c:616:7:616:8 | c2 | 2147483647 | +| test.c:616:13:616:13 | x | 748596 | +| test.c:617:7:617:8 | c3 | 2147483647 | +| test.c:617:13:617:13 | x | 85400991 | +| test.c:618:7:618:8 | c4 | 2147483647 | +| test.c:618:13:618:13 | x | 89076886 | +| test.c:619:7:619:8 | c5 | 2147483647 | +| test.c:619:13:619:13 | x | 89175520 | +| test.c:620:7:620:8 | c1 | 2147483647 | +| test.c:620:13:620:14 | c2 | 2147483647 | +| test.c:620:19:620:19 | x | 97010505 | +| test.c:621:7:621:8 | c1 | 2147483647 | +| test.c:621:13:621:14 | c3 | 2147483647 | +| test.c:621:19:621:19 | x | 1035467903 | +| test.c:622:7:622:8 | c1 | 2147483647 | +| test.c:622:13:622:14 | c4 | 2147483647 | +| test.c:622:19:622:19 | x | 1109363551 | +| test.c:623:7:623:8 | c1 | 2147483647 | +| test.c:623:13:623:14 | c5 | 2147483647 | +| test.c:623:19:623:19 | x | 1121708983 | +| test.c:624:7:624:8 | c2 | 2147483647 | +| test.c:624:13:624:14 | c3 | 2147483647 | +| test.c:624:19:624:19 | x | 1121747830 | +| test.c:626:11:626:11 | x | 2147483647 | +| test.c:626:15:626:15 | x | 2147483647 | +| test.c:626:19:626:19 | x | 2147483647 | +| test.c:626:23:626:23 | x | 2147483647 | +| test.c:626:27:626:27 | x | 2147483647 | +| test.c:626:31:626:31 | x | 2147483647 | +| test.c:626:35:626:35 | x | 2147483647 | +| test.c:626:39:626:39 | x | 2147483647 | +| test.c:626:43:626:43 | x | 2147483647 | +| test.c:626:47:626:47 | x | 2147483647 | +| test.c:626:51:626:51 | x | 2147483647 | +| test.c:626:55:626:55 | x | 2147483647 | +| test.c:627:10:627:10 | y | 2147483647 | +| test.c:632:20:632:20 | x | 4294967295 | +| test.c:632:30:632:30 | x | 99 | +| test.c:635:3:635:4 | y1 | 4294967295 | +| test.c:635:11:635:11 | y | 100 | +| test.c:635:14:635:14 | y | 101 | +| test.c:636:3:636:4 | y2 | 4294967295 | +| test.c:636:9:636:9 | y | 101 | +| test.c:636:14:636:14 | y | 102 | +| test.c:636:22:636:22 | y | 105 | +| test.c:637:10:637:11 | y1 | 101 | +| test.c:637:15:637:16 | y2 | 105 | +| test.c:645:3:645:3 | i | 2147483647 | +| test.c:646:7:646:7 | i | 10 | +| test.c:648:3:648:3 | i | 2147483647 | +| test.c:649:3:649:3 | i | 10 | +| test.c:650:7:650:7 | i | 20 | +| test.c:652:3:652:3 | i | 2147483647 | +| test.c:653:3:653:3 | i | 40 | +| test.c:654:7:654:7 | i | 30 | +| test.c:656:3:656:3 | i | 2147483647 | +| test.c:656:7:656:7 | j | 2147483647 | +| test.c:657:7:657:7 | i | 40 | +| test.c:659:3:659:3 | i | 2147483647 | +| test.c:659:8:659:8 | j | 40 | +| test.c:660:7:660:7 | i | 50 | +| test.c:662:3:662:3 | i | 2147483647 | +| test.c:662:13:662:13 | j | 50 | +| test.c:663:7:663:7 | i | 60 | +| test.c:670:12:670:12 | a | 4294967295 | +| test.c:670:17:670:17 | a | 4294967295 | +| test.c:670:33:670:33 | b | 4294967295 | +| test.c:670:38:670:38 | b | 4294967295 | +| test.c:671:13:671:13 | a | 11 | +| test.c:671:15:671:15 | b | 23 | +| test.c:672:5:672:9 | total | 0 | +| test.c:672:14:672:14 | r | 253 | +| test.c:674:12:674:12 | a | 4294967295 | +| test.c:674:17:674:17 | a | 4294967295 | +| test.c:674:33:674:33 | b | 4294967295 | +| test.c:674:38:674:38 | b | 4294967295 | +| test.c:675:13:675:13 | a | 11 | +| test.c:675:15:675:15 | b | 23 | +| test.c:676:5:676:9 | total | 253 | +| test.c:676:14:676:14 | r | 253 | +| test.c:678:12:678:12 | a | 4294967295 | +| test.c:678:17:678:17 | a | 4294967295 | +| test.c:678:34:678:34 | b | 4294967295 | +| test.c:678:39:678:39 | b | 4294967295 | +| test.c:679:13:679:13 | a | 11 | +| test.c:679:15:679:15 | b | 23 | +| test.c:680:5:680:9 | total | 506 | +| test.c:680:14:680:14 | r | 253 | +| test.c:683:10:683:14 | total | 759 | +| test.c:689:12:689:12 | b | 4294967295 | +| test.c:689:17:689:17 | b | 4294967295 | +| test.c:690:16:690:16 | b | 23 | +| test.c:691:5:691:9 | total | 0 | +| test.c:691:14:691:14 | r | 253 | +| test.c:693:12:693:12 | b | 4294967295 | +| test.c:693:17:693:17 | b | 4294967295 | +| test.c:694:16:694:16 | b | 23 | +| test.c:695:5:695:9 | total | 253 | +| test.c:695:14:695:14 | r | 253 | +| test.c:697:13:697:13 | b | 4294967295 | +| test.c:697:18:697:18 | b | 4294967295 | +| test.c:698:16:698:16 | b | 23 | +| test.c:699:5:699:9 | total | 506 | +| test.c:699:14:699:14 | r | 253 | +| test.c:702:10:702:14 | total | 759 | +| test.c:707:3:707:3 | x | 18446744073709551616 | +| test.c:707:7:707:7 | y | 18446744073709551616 | +| test.c:708:3:708:4 | xy | 18446744073709551616 | +| test.c:708:8:708:8 | x | 1000000003 | +| test.c:708:12:708:12 | y | 1000000003 | +| test.c:709:10:709:11 | xy | 1000000006000000000 | +| test.c:714:3:714:3 | x | 18446744073709551616 | +| test.c:715:3:715:3 | y | 18446744073709551616 | +| test.c:716:3:716:4 | xy | 18446744073709551616 | +| test.c:716:8:716:8 | x | 274177 | +| test.c:716:12:716:12 | y | 67280421310721 | +| test.c:717:10:717:11 | xy | 18446744073709551616 | +| test.c:721:7:721:8 | ui | 4294967295 | +| test.c:722:43:722:44 | ui | 4294967295 | +| test.c:722:48:722:49 | ui | 4294967295 | +| test.c:723:12:723:17 | result | 18446744065119617024 | +| test.c:725:7:725:8 | ul | 18446744073709551616 | +| test.c:726:28:726:29 | ul | 18446744073709551616 | +| test.c:726:33:726:34 | ul | 18446744073709551616 | +| test.c:727:12:727:17 | result | 18446744073709551616 | +| test.c:733:7:733:8 | ui | 4294967295 | +| test.c:733:19:733:20 | ui | 10 | +| test.c:734:5:734:6 | ui | 10 | +| test.c:734:11:734:12 | ui | 10 | +| test.c:735:12:735:13 | ui | 100 | +| test.c:739:3:739:9 | uiconst | 10 | +| test.c:742:3:742:9 | ulconst | 10 | +| test.c:743:10:743:16 | uiconst | 40 | +| test.c:743:20:743:26 | ulconst | 40 | +| test.c:747:7:747:7 | i | 2147483647 | +| test.c:747:18:747:18 | i | 2147483647 | +| test.c:748:5:748:5 | i | 2147483647 | +| test.c:748:13:748:13 | i | 2 | +| test.c:749:9:749:9 | i | 10 | +| test.c:751:5:751:5 | i | 2147483647 | +| test.c:751:9:751:9 | i | 10 | +| test.c:752:9:752:9 | i | 15 | +| test.c:754:5:754:5 | i | 15 | +| test.c:755:9:755:9 | i | 105 | +| test.c:757:5:757:5 | i | 105 | +| test.c:758:9:758:9 | i | 2310 | +| test.c:760:7:760:7 | i | 2147483647 | +| test.c:761:5:761:5 | i | 2147483647 | +| test.c:761:9:761:9 | i | -1 | +| test.c:762:9:762:9 | i | 1 | +| test.c:764:3:764:3 | i | 2147483647 | +| test.c:764:7:764:7 | i | 2147483647 | +| test.c:765:10:765:10 | i | 2147483647 | +| test.c:768:3:768:3 | i | 2147483647 | +| test.c:768:10:768:11 | sc | 1 | +| test.c:770:7:770:7 | i | 127 | +| test.c:777:7:777:7 | n | 4294967295 | +| test.c:779:7:779:7 | n | 4294967295 | +| test.c:780:9:780:9 | n | 4294967295 | +| test.c:783:7:783:7 | n | 4294967295 | +| test.c:784:9:784:9 | n | 4294967295 | +| test.c:786:9:786:9 | n | 0 | +| test.c:789:8:789:8 | n | 4294967295 | +| test.c:790:9:790:9 | n | 0 | +| test.c:792:9:792:9 | n | 4294967295 | +| test.c:795:10:795:10 | n | 4294967295 | +| test.c:796:5:796:5 | n | 4294967295 | +| test.c:799:7:799:7 | n | 0 | +| test.c:803:7:803:7 | n | 32767 | +| test.c:806:7:806:7 | n | 32767 | +| test.c:807:9:807:9 | n | 0 | +| test.c:809:9:809:9 | n | 32767 | +| test.c:812:7:812:7 | n | 32767 | +| test.c:813:9:813:9 | n | 32767 | +| test.c:815:9:815:9 | n | 0 | +| test.c:818:10:818:10 | n | 32767 | +| test.c:819:5:819:5 | n | 32767 | +| test.c:822:7:822:7 | n | 0 | +| test.c:826:7:826:7 | n | 32767 | +| test.c:827:9:827:9 | n | 32767 | +| test.c:828:11:828:11 | n | 32767 | +| test.c:832:7:832:7 | n | 32767 | +| test.c:833:13:833:13 | n | 32767 | +| test.c:836:9:836:9 | n | 32767 | +| test.c:839:7:839:7 | n | 32767 | +| test.c:839:22:839:22 | n | 32767 | +| test.c:840:9:840:9 | n | 32767 | +| test.c:843:7:843:7 | n | 32767 | +| test.c:844:5:844:5 | n | 32767 | +| test.c:844:10:844:10 | n | 32767 | +| test.c:844:14:844:14 | n | 0 | +| test.c:845:6:845:6 | n | 32767 | +| test.c:845:10:845:10 | n | 0 | +| test.c:845:14:845:14 | n | 32767 | +| test.c:856:7:856:8 | ss | 32767 | +| test.c:857:9:857:10 | ss | 3 | +| test.c:860:7:860:8 | ss | 32767 | +| test.c:861:9:861:10 | ss | 32767 | +| test.c:864:14:864:15 | us | 65535 | +| test.c:865:9:865:10 | us | 32767 | +| test.c:868:14:868:15 | us | 65535 | +| test.c:869:9:869:10 | us | 65535 | +| test.c:872:7:872:8 | ss | 32767 | +| test.c:873:9:873:10 | ss | 32767 | +| test.c:876:7:876:8 | ss | 32767 | +| test.c:877:9:877:10 | ss | 2 | +| test.c:883:8:883:8 | s | 2147483647 | +| test.c:883:15:883:15 | s | 127 | +| test.c:883:23:883:23 | s | 9 | +| test.c:884:18:884:18 | s | 9 | +| test.c:884:22:884:22 | s | 9 | +| test.c:885:9:885:14 | result | 127 | +| test.c:891:7:891:7 | i | 0 | +| test.c:892:9:892:9 | i | 2147483647 | +| test.c:896:7:896:7 | u | 0 | +| test.c:897:9:897:9 | u | 4294967295 | +| test.c:902:12:902:12 | s | 2147483647 | +| test.c:903:7:903:8 | s2 | 4 | +| test.c:908:7:908:7 | x | 2147483647 | +| test.c:909:9:909:9 | y | 2147483647 | +| test.c:913:7:913:7 | y | 2147483647 | +| test.c:922:7:922:7 | x | 2147483647 | +| test.c:927:7:927:7 | x | 15 | +| test.c:934:8:934:8 | x | 2147483647 | +| test.c:934:12:934:12 | y | 256 | +| test.c:935:9:935:9 | x | 2147483647 | +| test.c:936:9:936:9 | y | 256 | | test.cpp:10:7:10:7 | b | 2147483647 | | test.cpp:11:5:11:5 | x | 2147483647 | | test.cpp:13:10:13:10 | x | 2147483647 | diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs index a690e3f880fb..e3efce094813 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNetCliInvoker.cs @@ -44,7 +44,7 @@ private ProcessStartInfo MakeDotnetStartInfo(string args, string? workingDirecto // Configure the proxy settings, if applicable. if (this.proxy != null) { - logger.LogInfo($"Setting up Dependabot proxy at {this.proxy.Address}"); + logger.LogDebug($"Configuring environment variables for the Dependabot proxy at {this.proxy.Address}"); startInfo.EnvironmentVariables["HTTP_PROXY"] = this.proxy.Address; startInfo.EnvironmentVariables["HTTPS_PROXY"] = this.proxy.Address; @@ -57,11 +57,11 @@ private ProcessStartInfo MakeDotnetStartInfo(string args, string? workingDirecto private bool RunCommandAux(string args, string? workingDirectory, out IList output, bool silent) { var dirLog = string.IsNullOrWhiteSpace(workingDirectory) ? "" : $" in {workingDirectory}"; - logger.LogInfo($"Running '{Exec} {args}'{dirLog}"); var pi = MakeDotnetStartInfo(args, workingDirectory); var threadId = Environment.CurrentManagedThreadId; void onOut(string s) => logger.Log(silent ? Severity.Debug : Severity.Info, s, threadId); void onError(string s) => logger.LogError(s, threadId); + logger.LogInfo($"Running '{Exec} {args}'{dirLog}"); var exitCode = pi.ReadOutput(out output, onOut, onError); if (exitCode != 0) { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs index 4fa035446ef5..462fd8067888 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs @@ -29,7 +29,10 @@ public override void Populate(TextWriter trapFile) ContainingType!.PopulateGenerics(); trapFile.constructors(this, Symbol.ContainingType.Name, ContainingType, (Constructor)OriginalDefinition); - WriteLocationToTrap(trapFile.constructor_location, this, Location); + if (Context.ExtractLocation(Symbol) && (!IsDefault || IsBestSourceLocation)) + { + WriteLocationToTrap(trapFile.constructor_location, this, Location); + } if (MakeSynthetic) { @@ -168,7 +171,15 @@ Symbol.ContainingType.TypeKind is TypeKind.Class or TypeKind.Struct && Symbol.ContainingType.IsSourceDeclaration() && !Symbol.ContainingType.IsAnonymousType; - private bool MakeSynthetic => IsPrimary || IsDefault; + /// + /// Returns true if we consider the reporting location of this constructor entity the best + /// location of the constructor. + /// For partial classes with default constructors, Roslyn consider each partial class declaration + /// as the possible location for the implicit default constructor. + /// + private bool IsBestSourceLocation => ReportingLocation is not null && Context.IsLocationInContext(ReportingLocation); + + private bool MakeSynthetic => IsPrimary || (IsDefault && IsBestSourceLocation); [return: NotNullIfNotNull(nameof(constructor))] public static new Constructor? Create(Context cx, IMethodSymbol? constructor) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Destructor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Destructor.cs index 3d07c7d42de9..13e86792fc35 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Destructor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Destructor.cs @@ -15,7 +15,10 @@ public override void Populate(TextWriter trapFile) ContainingType!.PopulateGenerics(); trapFile.destructors(this, $"~{Symbol.ContainingType.Name}", ContainingType, OriginalDefinition(Context, this, Symbol)); - WriteLocationToTrap(trapFile.destructor_location, this, Location); + if (Context.ExtractLocation(Symbol)) + { + WriteLocationToTrap(trapFile.destructor_location, this, Location); + } } private static new Destructor OriginalDefinition(Context cx, Destructor original, IMethodSymbol symbol) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Field.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Field.cs index 61b5c40e6e50..75a35c2a5f02 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Field.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Field.cs @@ -49,7 +49,10 @@ public override void Populate(TextWriter trapFile) } } - WriteLocationsToTrap(trapFile.field_location, this, Locations); + if (Context.ExtractLocation(Symbol)) + { + WriteLocationsToTrap(trapFile.field_location, this, Locations); + } if (!IsSourceDeclaration || !Symbol.FromSource()) return; diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Locations/NonGeneratedSourceLocation.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Locations/NonGeneratedSourceLocation.cs index 69e9ea4e9dc7..7a13138ff6ac 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Locations/NonGeneratedSourceLocation.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Locations/NonGeneratedSourceLocation.cs @@ -40,8 +40,29 @@ public File FileEntity get; } + private static void WriteStarId(EscapingTextWriter writer) + { + writer.Write('*'); + } + + public sealed override void WriteQuotedId(EscapingTextWriter writer) + { + if (Context.ExtractionContext.IsStandalone) + { + WriteStarId(writer); + return; + } + base.WriteQuotedId(writer); + } + public override void WriteId(EscapingTextWriter trapFile) { + if (Context.ExtractionContext.IsStandalone) + { + WriteStarId(trapFile); + return; + } + trapFile.Write("loc,"); trapFile.WriteSubId(FileEntity); trapFile.Write(','); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs index a5d208fc86fe..8b099261a10e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs @@ -115,9 +115,10 @@ public override void Populate(TextWriter trapFile) var type = Type.Create(Context, Symbol.Type); trapFile.@params(this, Name, type.TypeRef, Ordinal, ParamKind, Parent!, Original); - foreach (var l in Symbol.Locations) + if (Context.ExtractLocation(Symbol)) { - WriteLocationToTrap(trapFile.param_location, this, Context.CreateLocation(l)); + var locations = Context.GetLocations(Symbol); + WriteLocationsToTrap(trapFile.param_location, this, locations); } if (!Symbol.Locations.Any() && diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TupleType.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TupleType.cs index 7e7d3df107f4..18d71c997886 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TupleType.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TupleType.cs @@ -54,8 +54,8 @@ public override void Populate(TextWriter trapFile) // Note: symbol.Locations seems to be very inconsistent // about what locations are available for a tuple type. // Sometimes it's the source code, and sometimes it's empty. - foreach (var l in Symbol.Locations) - WriteLocationToTrap(trapFile.type_location, this, Context.CreateLocation(l)); + var locations = Context.GetLocations(Symbol); + WriteLocationsToTrap(trapFile.type_location, this, locations); } private readonly Lazy tupleElementsLazy; diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs index 303421d32e76..8c7c0edde761 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/TypeParameter.cs @@ -28,10 +28,8 @@ public override void Populate(TextWriter trapFile) if (Context.ExtractLocation(Symbol)) { - foreach (var l in Symbol.Locations) - { - WriteLocationToTrap(trapFile.type_location, this, Context.CreateLocation(l)); - } + var locations = Context.GetLocations(Symbol); + WriteLocationsToTrap(trapFile.type_location, this, locations); } if (IsSourceDeclaration) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs index e37d16567e1b..40a40aab556d 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/UserOperator.cs @@ -26,7 +26,10 @@ public override void Populate(TextWriter trapFile) returnType.TypeRef, (UserOperator)OriginalDefinition); - WriteLocationsToTrap(trapFile.operator_location, this, Locations); + if (Context.ExtractLocation(Symbol)) + { + WriteLocationsToTrap(trapFile.operator_location, this, Locations); + } if (IsSourceDeclaration) { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/CompilerVersion.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/CompilerVersion.cs index e52c79a17e19..5429f2bba075 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/CompilerVersion.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/CompilerVersion.cs @@ -74,7 +74,9 @@ public CompilerVersion(Options options) specifiedFramework = compilerDir; } - var versionInfo = FileVersionInfo.GetVersionInfo(SpecifiedCompiler); + // If csc is specified as compiler name, then attempt to read the version information from csc.dll + var compilerBinaryName = Path.GetFileName(SpecifiedCompiler) == "csc" ? $"{SpecifiedCompiler}.dll" : SpecifiedCompiler; + var versionInfo = FileVersionInfo.GetVersionInfo(File.Exists(compilerBinaryName) ? compilerBinaryName : SpecifiedCompiler); if (!knownCompilerNames.TryGetValue(versionInfo.OriginalFilename ?? string.Empty, out var vendor)) { SkipExtractionBecause("the compiler name is not recognised"); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs index 44a2fcda5c22..74b3b186b517 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Extractor/Context.cs @@ -554,6 +554,18 @@ public bool ExtractLocation(ISymbol symbol) => SymbolEqualityComparer.Default.Equals(symbol, symbol.OriginalDefinition) && scope.InScope(symbol); + /// + /// Gets the locations of the symbol that are either + /// (1) In assemblies. + /// (2) In the current context. + /// + /// The symbol + /// List of locations + public IEnumerable GetLocations(ISymbol symbol) => + symbol.Locations + .Where(l => !l.IsInSource || IsLocationInContext(l)) + .Select(CreateLocation); + public bool IsLocationInContext(Location location) => location.SourceTree == SourceTree; diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index bcfd38e14942..7b4887608d94 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.50 + +No user-facing changes. + ## 1.7.49 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.50.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.50.md new file mode 100644 index 000000000000..187bfe4d01f4 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.50.md @@ -0,0 +1,3 @@ +## 1.7.50 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index fe16fdfefdc8..dab079d66444 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.49 +lastReleaseVersion: 1.7.50 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 3c14c29940c0..a569cf6a5c4f 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.50-dev +version: 1.7.51-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index bcfd38e14942..7b4887608d94 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.50 + +No user-facing changes. + ## 1.7.49 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.50.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.50.md new file mode 100644 index 000000000000..187bfe4d01f4 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.50.md @@ -0,0 +1,3 @@ +## 1.7.50 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index fe16fdfefdc8..dab079d66444 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.49 +lastReleaseVersion: 1.7.50 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index efb3216f3b9b..d91f21b0e90b 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.50-dev +version: 1.7.51-dev groups: - csharp - solorigate diff --git a/csharp/ql/integration-tests/linux/dotnet_10_rc2/Program.cs b/csharp/ql/integration-tests/linux/dotnet_10_rc2/Program.cs new file mode 100644 index 000000000000..bd44629f7e23 --- /dev/null +++ b/csharp/ql/integration-tests/linux/dotnet_10_rc2/Program.cs @@ -0,0 +1 @@ +Console.WriteLine($"{string.Join(",", args)}"); diff --git a/csharp/ql/integration-tests/linux/dotnet_10_rc2/dotnet_build.csproj b/csharp/ql/integration-tests/linux/dotnet_10_rc2/dotnet_build.csproj new file mode 100644 index 000000000000..dfb40caafcf9 --- /dev/null +++ b/csharp/ql/integration-tests/linux/dotnet_10_rc2/dotnet_build.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/linux/dotnet_10_rc2/global.json b/csharp/ql/integration-tests/linux/dotnet_10_rc2/global.json new file mode 100644 index 000000000000..e870e2cf7bdd --- /dev/null +++ b/csharp/ql/integration-tests/linux/dotnet_10_rc2/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.100-rc.2.25502.107" + } +} diff --git a/csharp/ql/integration-tests/linux/dotnet_10_rc2/test.py b/csharp/ql/integration-tests/linux/dotnet_10_rc2/test.py new file mode 100644 index 000000000000..148626b1cb86 --- /dev/null +++ b/csharp/ql/integration-tests/linux/dotnet_10_rc2/test.py @@ -0,0 +1,6 @@ +import os +import runs_on + +@runs_on.linux +def test(codeql, csharp): + codeql.database.create() diff --git a/csharp/ql/integration-tests/windows/dotnet_10_rc2/Program.cs b/csharp/ql/integration-tests/windows/dotnet_10_rc2/Program.cs new file mode 100644 index 000000000000..bd44629f7e23 --- /dev/null +++ b/csharp/ql/integration-tests/windows/dotnet_10_rc2/Program.cs @@ -0,0 +1 @@ +Console.WriteLine($"{string.Join(",", args)}"); diff --git a/csharp/ql/integration-tests/windows/dotnet_10_rc2/dotnet_build.csproj b/csharp/ql/integration-tests/windows/dotnet_10_rc2/dotnet_build.csproj new file mode 100644 index 000000000000..dfb40caafcf9 --- /dev/null +++ b/csharp/ql/integration-tests/windows/dotnet_10_rc2/dotnet_build.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/windows/dotnet_10_rc2/global.json b/csharp/ql/integration-tests/windows/dotnet_10_rc2/global.json new file mode 100644 index 000000000000..e870e2cf7bdd --- /dev/null +++ b/csharp/ql/integration-tests/windows/dotnet_10_rc2/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.100-rc.2.25502.107" + } +} diff --git a/csharp/ql/integration-tests/windows/dotnet_10_rc2/test.py b/csharp/ql/integration-tests/windows/dotnet_10_rc2/test.py new file mode 100644 index 000000000000..00905b67cd49 --- /dev/null +++ b/csharp/ql/integration-tests/windows/dotnet_10_rc2/test.py @@ -0,0 +1,6 @@ +import os +import runs_on + +@runs_on.windows +def test(codeql, csharp): + codeql.database.create() diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 095eab5cdbaf..a722d924f3b8 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,12 @@ +## 5.2.6 + +### Minor Analysis Improvements + +* The extraction of location information for parameters, fields, constructors, destructors and user operators has been optimized. Previously, location information was extracted multiple times for each bound generic. Now, only the location of the unbound generic declaration is extracted during the extraction phase, and the QL library explicitly reuses this location for all bound instances of the same generic. +* The extraction of location information for type parameters and tuples types has been optimized. Previously, location information was extracted multiple times for each type when it was declared across multiple files. Now, the extraction context is respected during the extraction phase, ensuring locations are only extracted within the appropriate context. This change should be transparent to end-users but may improve extraction performance in some cases. +* The extraction of location information for named types (classes, structs, etc.) has been optimized. Previously, location information was extracted multiple times for each type when it was declared across multiple files. Now, the extraction context is respected during the extraction phase, ensuring locations are only extracted within the appropriate context. This change should be transparent to end-users but may improve extraction performance in some cases. +* The extraction of the location for bound generic entities (methods, accessors, indexers, properties, and events) has been optimized. Previously, location information was extracted multiple times for each bound generic. Now, only the location of the unbound generic declaration is extracted during the extraction phase, and the QL library explicitly reuses this location for all bound instances of the same generic. + ## 5.2.5 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/2025-10-02-entity-locations.md b/csharp/ql/lib/change-notes/2025-10-02-entity-locations.md deleted file mode 100644 index dd13aab6292e..000000000000 --- a/csharp/ql/lib/change-notes/2025-10-02-entity-locations.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The extraction of the location for bound generic entities (methods, accessors, indexers, properties, and events) has been optimized. Previously, location information was extracted multiple times for each bound generic. Now, only the location of the unbound generic declaration is extracted during the extraction phase, and the QL library explicitly reuses this location for all bound instances of the same generic. diff --git a/csharp/ql/lib/change-notes/2025-10-03-nullness.md b/csharp/ql/lib/change-notes/2025-10-03-nullness.md new file mode 100644 index 000000000000..0d44c1e98c17 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-10-03-nullness.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* The representation of the C# control-flow graph has been significantly changed. This has minor effects on a wide range of queries including both minor improvements and minor regressions, for example, improved precision has been observed for `cs/inefficient-containskey` and `cs/stringbuilder-creation-in-loop`. Two queries stand out as being significantly affected with great improvements: `cs/dereferenced-value-may-be-null` has been completely rewritten which removes a very significant number of false positives. Furthermore, `cs/constant-condition` has been updated to report many new results - these new results are primarily expected to be true positives, but a few new false positives are expected as well. As part of these changes, `cs/dereferenced-value-may-be-null` has been changed from a `path-problem` query to a `problem` query, so paths are no longer reported for this query. diff --git a/csharp/ql/lib/change-notes/2025-10-07-entity-locations.md b/csharp/ql/lib/change-notes/2025-10-07-entity-locations.md deleted file mode 100644 index 44f36fe44c6a..000000000000 --- a/csharp/ql/lib/change-notes/2025-10-07-entity-locations.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The extraction of location information for named types (classes, structs, etc.) has been optimized. Previously, location information was extracted multiple times for each type when it was declared across multiple files. Now, the extraction context is respected during the extraction phase, ensuring locations are only extracted within the appropriate context. This change should be transparent to end-users but may improve extraction performance in some cases. diff --git a/csharp/ql/lib/change-notes/2025-10-10-starid-locations.md b/csharp/ql/lib/change-notes/2025-10-10-starid-locations.md new file mode 100644 index 000000000000..a258abcf3ab7 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-10-10-starid-locations.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The extraction of location information for source code entities has been updated to use star IDs (`*` IDs). This change should be transparent to end-users but may improve extraction performance in some cases by reducing TRAP file size and eliminating overhead from location de-duplication. diff --git a/csharp/ql/lib/change-notes/2025-10-21-dotnet-rc2-tracing.md b/csharp/ql/lib/change-notes/2025-10-21-dotnet-rc2-tracing.md new file mode 100644 index 000000000000..b54f1e7d1b5d --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-10-21-dotnet-rc2-tracing.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added tracer support for macOS and Linux when the .NET CLI (`dotnet`) directly invokes the C# compiler (`csc`). This enhancement provides basic tracing and extraction capabilities for .NET 10 RC2 on these platforms. diff --git a/csharp/ql/lib/change-notes/released/5.2.6.md b/csharp/ql/lib/change-notes/released/5.2.6.md new file mode 100644 index 000000000000..54ef01bfbf87 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.2.6.md @@ -0,0 +1,8 @@ +## 5.2.6 + +### Minor Analysis Improvements + +* The extraction of location information for parameters, fields, constructors, destructors and user operators has been optimized. Previously, location information was extracted multiple times for each bound generic. Now, only the location of the unbound generic declaration is extracted during the extraction phase, and the QL library explicitly reuses this location for all bound instances of the same generic. +* The extraction of location information for type parameters and tuples types has been optimized. Previously, location information was extracted multiple times for each type when it was declared across multiple files. Now, the extraction context is respected during the extraction phase, ensuring locations are only extracted within the appropriate context. This change should be transparent to end-users but may improve extraction performance in some cases. +* The extraction of location information for named types (classes, structs, etc.) has been optimized. Previously, location information was extracted multiple times for each type when it was declared across multiple files. Now, the extraction context is respected during the extraction phase, ensuring locations are only extracted within the appropriate context. This change should be transparent to end-users but may improve extraction performance in some cases. +* The extraction of the location for bound generic entities (methods, accessors, indexers, properties, and events) has been optimized. Previously, location information was extracted multiple times for each bound generic. Now, only the location of the unbound generic declaration is extracted during the extraction phase, and the QL library explicitly reuses this location for all bound instances of the same generic. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 63222f8b4a01..1ac2b5309f2d 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.2.5 +lastReleaseVersion: 5.2.6 diff --git a/csharp/ql/lib/ext/System.ComponentModel.model.yml b/csharp/ql/lib/ext/System.ComponentModel.model.yml index d98c97727fbc..a3b561583e38 100644 --- a/csharp/ql/lib/ext/System.ComponentModel.model.yml +++ b/csharp/ql/lib/ext/System.ComponentModel.model.yml @@ -36,3 +36,8 @@ extensions: - ["System.ComponentModel", "PropertyDescriptorCollection", False, "set_Item", "(System.Int32,System.Object)", "", "Argument[0]", "Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]", "value", "manual"] - ["System.ComponentModel", "PropertyDescriptorCollection", False, "set_Item", "(System.Int32,System.Object)", "", "Argument[1]", "Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]", "value", "manual"] - ["System.ComponentModel", "PropertyDescriptorCollection", False, "set_Item", "(System.Object,System.Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - addsTo: + pack: codeql/csharp-all + extensible: neutralModel + data: + - ["System.ComponentModel", "PropertyDescriptor", "GetValue", "(System.Object)", "summary", "manual"] \ No newline at end of file diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 2f92b5edafdb..92a08088be73 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.2.6-dev +version: 5.2.7-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/lib/semmle/code/csharp/Callable.qll b/csharp/ql/lib/semmle/code/csharp/Callable.qll index ef0d0673ce2a..44e7c3cf4ca8 100644 --- a/csharp/ql/lib/semmle/code/csharp/Callable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Callable.qll @@ -357,7 +357,7 @@ class Constructor extends Callable, Member, Attributable, @constructor { override Constructor getUnboundDeclaration() { constructors(this, _, _, result) } - override Location getALocation() { constructor_location(this, result) } + override Location getALocation() { constructor_location(this.getUnboundDeclaration(), result) } override predicate fromSource() { Member.super.fromSource() and not this.isCompilerGenerated() } @@ -450,7 +450,7 @@ class Destructor extends Callable, Member, Attributable, @destructor { override Destructor getUnboundDeclaration() { destructors(this, _, _, result) } - override Location getALocation() { destructor_location(this, result) } + override Location getALocation() { destructor_location(this.getUnboundDeclaration(), result) } override string toString() { result = Callable.super.toString() } @@ -484,7 +484,7 @@ class Operator extends Callable, Member, Attributable, Overridable, @operator { override Operator getUnboundDeclaration() { operators(this, _, _, _, _, result) } - override Location getALocation() { operator_location(this, result) } + override Location getALocation() { operator_location(this.getUnboundDeclaration(), result) } override string toString() { result = Callable.super.toString() } diff --git a/csharp/ql/lib/semmle/code/csharp/Variable.qll b/csharp/ql/lib/semmle/code/csharp/Variable.qll index 02018c260a68..746ea6acd2f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/Variable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Variable.qll @@ -213,7 +213,7 @@ class Parameter extends LocalScopeVariable, Attributable, TopLevelExprParent, @p params(this, _, getTypeRef(result), _, _, _, _) } - override Location getALocation() { param_location(this, result) } + override Location getALocation() { param_location(this.getUnboundDeclaration(), result) } override string toString() { result = this.getName() } @@ -449,7 +449,7 @@ class Field extends Variable, AssignableMember, Attributable, TopLevelExprParent fields(this, _, _, _, getTypeRef(result), _) } - override Location getALocation() { field_location(this, result) } + override Location getALocation() { field_location(this.getUnboundDeclaration(), result) } override string toString() { result = Variable.super.toString() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll index f914b13e228e..784dab415f3e 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll @@ -40,6 +40,12 @@ class ControlFlowElement extends ExprOrStmtParent, @control_flow_element { */ Nodes::ElementNode getAControlFlowNode() { result.getAstNode() = this } + /** Gets the control flow node for this element. */ + ControlFlow::Node getControlFlowNode() { result.getAstNode() = this } + + /** Gets the basic block in which this element occurs. */ + BasicBlock getBasicBlock() { result = this.getAControlFlowNode().getBasicBlock() } + /** * Gets a first control flow node executed within this element. */ diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll index 4b9d636824cc..438174fe2970 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll @@ -251,6 +251,9 @@ module ControlFlow { } } + /** A control flow node indicating normal termination of a callable. */ + class NormalExitNode extends AnnotatedExitNode instanceof Impl::NormalExitNode { } + /** A node for a callable exit point. */ class ExitNode extends Node instanceof Impl::ExitNode { /** Gets the callable that this exit applies to. */ @@ -291,14 +294,6 @@ module ControlFlow { } class Split = Splitting::Split; - - class FinallySplit = Splitting::FinallySplitting::FinallySplit; - - class ExceptionHandlerSplit = Splitting::ExceptionHandlerSplitting::ExceptionHandlerSplit; - - class BooleanSplit = Splitting::BooleanSplitting::BooleanSplit; - - class LoopSplit = Splitting::LoopSplitting::LoopSplit; } class BasicBlock = BBs::BasicBlock; diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll new file mode 100644 index 000000000000..aafe14402c7f --- /dev/null +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowReachability.qll @@ -0,0 +1,57 @@ +/** + * Provides an implementation of local (intraprocedural) control flow reachability. + */ + +import csharp +private import codeql.controlflow.ControlFlowReachability +private import semmle.code.csharp.controlflow.BasicBlocks +private import semmle.code.csharp.controlflow.Guards as Guards +private import semmle.code.csharp.ExprOrStmtParent + +private module ControlFlowInput implements + InputSig +{ + private import csharp as CS + + AstNode getEnclosingAstNode(ControlFlow::Node node) { + node.getAstNode() = result + or + not exists(node.getAstNode()) and result = node.getEnclosingCallable() + } + + class AstNode = ExprOrStmtParent; + + AstNode getParent(AstNode node) { result = node.getParent() } + + class FinallyBlock extends AstNode { + FinallyBlock() { any(TryStmt try).getFinally() = this } + } + + class Expr = CS::Expr; + + class SourceVariable = Ssa::SourceVariable; + + class SsaDefinition = Ssa::Definition; + + class SsaExplicitWrite extends SsaDefinition instanceof Ssa::ExplicitDefinition { + Expr getValue() { result = super.getADefinition().getSource() } + } + + class SsaPhiDefinition = Ssa::PhiNode; + + class SsaUncertainWrite = Ssa::UncertainDefinition; + + class GuardValue = Guards::GuardValue; + + predicate ssaControlsBranchEdge(SsaDefinition def, BasicBlock bb1, BasicBlock bb2, GuardValue v) { + Guards::Guards::ssaControlsBranchEdge(def, bb1, bb2, v) + } + + predicate ssaControls(SsaDefinition def, BasicBlock bb, GuardValue v) { + Guards::Guards::ssaControls(def, bb, v) + } + + import Guards::Guards::InternalUtil +} + +module ControlFlowReachability = Make; diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 7185e39a45b2..3e33807991a9 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -13,6 +13,284 @@ private import semmle.code.csharp.frameworks.System private import semmle.code.csharp.frameworks.system.Linq private import semmle.code.csharp.frameworks.system.Collections private import semmle.code.csharp.frameworks.system.collections.Generic +private import codeql.controlflow.Guards as SharedGuards + +private module GuardsInput implements + SharedGuards::InputSig +{ + private import csharp as CS + + class NormalExitNode = ControlFlow::Nodes::NormalExitNode; + + class AstNode = ControlFlowElement; + + class Expr = CS::Expr; + + private newtype TConstantValue = + TStringValue(string value) { any(StringLiteral s).getValue() = value } + + class ConstantValue extends TConstantValue { + string toString() { this = TStringValue(result) } + } + + abstract class ConstantExpr extends Expr { + predicate isNull() { none() } + + boolean asBooleanValue() { none() } + + int asIntegerValue() { none() } + + ConstantValue asConstantValue() { none() } + } + + private class NullConstant extends ConstantExpr { + NullConstant() { nullValueImplied(this) } + + override predicate isNull() { any() } + } + + private class BooleanConstant extends ConstantExpr instanceof BoolLiteral { + override boolean asBooleanValue() { result = super.getBoolValue() } + } + + private predicate intConst(Expr e, int i) { + e.getValue().toInt() = i and + ( + e.getType() instanceof Enum + or + e.getType() instanceof IntegralType + ) + } + + private class IntegerConstant extends ConstantExpr { + IntegerConstant() { intConst(this, _) } + + override int asIntegerValue() { intConst(this, result) } + } + + private class EnumConst extends ConstantExpr { + EnumConst() { this.getType() instanceof Enum and this.hasValue() } + + override int asIntegerValue() { result = this.getValue().toInt() } + } + + private class StringConstant extends ConstantExpr instanceof StringLiteral { + override ConstantValue asConstantValue() { result = TStringValue(this.getValue()) } + } + + class NonNullExpr extends Expr { + NonNullExpr() { nonNullValueImplied(this) } + } + + class Case extends AstNode instanceof CS::Case { + Expr getSwitchExpr() { super.getExpr() = result } + + predicate isDefaultCase() { this instanceof DefaultCase } + + ConstantExpr asConstantCase() { super.getPattern() = result } + + private predicate hasEdge(BasicBlock bb1, BasicBlock bb2, MatchingCompletion c) { + exists(PatternExpr pe | + super.getPattern() = pe and + c.isValidFor(pe) and + bb1.getLastNode() = pe.getAControlFlowNode() and + bb1.getASuccessor(c.getAMatchingSuccessorType()) = bb2 + ) + } + + predicate matchEdge(BasicBlock bb1, BasicBlock bb2) { + exists(MatchingCompletion c | this.hasEdge(bb1, bb2, c) and c.isMatch()) + } + + predicate nonMatchEdge(BasicBlock bb1, BasicBlock bb2) { + exists(MatchingCompletion c | this.hasEdge(bb1, bb2, c) and c.isNonMatch()) + } + } + + abstract private class BinExpr extends BinaryOperation { } + + class AndExpr extends BinExpr { + AndExpr() { + this instanceof LogicalAndExpr or + this instanceof BitwiseAndExpr + } + } + + class OrExpr extends BinExpr { + OrExpr() { + this instanceof LogicalOrExpr or + this instanceof BitwiseOrExpr + } + } + + class NotExpr = LogicalNotExpr; + + class IdExpr extends Expr { + IdExpr() { this instanceof AssignExpr or this instanceof CastExpr } + + Expr getEqualChildExpr() { + result = this.(AssignExpr).getRValue() + or + result = this.(CastExpr).getExpr() + } + } + + predicate equalityTest(Expr eqtest, Expr left, Expr right, boolean polarity) { + exists(ComparisonTest ct | + ct.getExpr() = eqtest and + ct.getFirstArgument() = left and + ct.getSecondArgument() = right + | + ct.getComparisonKind().isEquality() and polarity = true + or + ct.getComparisonKind().isInequality() and polarity = false + ) + or + exists(IsExpr ie, PatternExpr pat | + ie = eqtest and + ie.getExpr() = left and + ie.getPattern() = pat + | + right = pat.(ConstantPatternExpr) and + polarity = true + or + right = pat.(NotPatternExpr).getPattern().(ConstantPatternExpr) and + polarity = false + ) + } + + class ConditionalExpr = CS::ConditionalExpr; + + class Parameter = CS::Parameter; + + private int parameterPosition() { result in [-1, any(Parameter p).getPosition()] } + + class ParameterPosition extends int { + ParameterPosition() { this = parameterPosition() } + } + + class ArgumentPosition extends int { + ArgumentPosition() { this = parameterPosition() } + } + + pragma[inline] + predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos } + + final private class FinalCallable = Callable; + + class NonOverridableMethod extends FinalCallable { + NonOverridableMethod() { not this.(Overridable).isOverridableOrImplementable() } + + Parameter getParameter(ParameterPosition ppos) { + super.getParameter(ppos) = result and + not result.isParams() + } + + Expr getAReturnExpr() { this.canReturn(result) } + } + + class NonOverridableMethodCall extends Expr instanceof Call { + NonOverridableMethod getMethod() { super.getTarget().getUnboundDeclaration() = result } + + Expr getArgument(ArgumentPosition apos) { + result = super.getArgumentForParameter(any(Parameter p | p.getPosition() = apos)) + } + } +} + +private module GuardsImpl = SharedGuards::Make; + +class GuardValue = GuardsImpl::GuardValue; + +private module LogicInput implements GuardsImpl::LogicInputSig { + class SsaDefinition extends Ssa::Definition { + Expr getARead() { super.getARead() = result } + } + + class SsaExplicitWrite extends SsaDefinition instanceof Ssa::ExplicitDefinition { + Expr getValue() { result = super.getADefinition().getSource() } + } + + class SsaPhiDefinition extends SsaDefinition instanceof Ssa::PhiNode { + predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { + super.hasInputFromBlock(inp, bb) + } + } + + class SsaParameterInit extends SsaDefinition instanceof Ssa::ImplicitParameterDefinition { + Parameter getParameter() { result = super.getParameter() } + } + + predicate additionalNullCheck(GuardsImpl::PreGuard guard, GuardValue val, Expr e, boolean isNull) { + // Comparison with a non-`null` value, for example `x?.Length > 0` + exists(ComparisonTest ct, ComparisonKind ck, Expr arg | ct.getExpr() = guard | + e instanceof DereferenceableExpr and + ct.getAnArgument() = e and + ct.getAnArgument() = arg and + arg = any(NullValue nv | nv.isNonNull()).getAnExpr() and + ck = ct.getComparisonKind() and + e != arg and + isNull = false and + not ck.isEquality() and + not ck.isInequality() and + val.asBooleanValue() = true + ) + or + // Call to `string.IsNullOrEmpty()` or `string.IsNullOrWhiteSpace()` + exists(MethodCall mc, string name | guard = mc | + mc.getTarget() = any(SystemStringClass c).getAMethod(name) and + name.regexpMatch("IsNullOr(Empty|WhiteSpace)") and + mc.getArgument(0) = e and + val.asBooleanValue() = false and + isNull = false + ) + or + guard = + any(PatternMatch pm | + e instanceof DereferenceableExpr and + e = pm.getExpr() and + ( + val.asBooleanValue().booleanNot() = patternMatchesNull(pm.getPattern()) and + isNull = false + or + exists(TypePatternExpr tpe | + // E.g. `x is string` where `x` has type `string` + typePattern(guard, tpe, tpe.getCheckedType()) and + val.asBooleanValue() = false and + isNull = true + ) + ) + ) + or + e.(DereferenceableExpr).hasNullableType() and + guard = + any(PropertyAccess pa | + pa.getQualifier() = e and + pa.getTarget().hasName("HasValue") and + val.asBooleanValue().booleanNot() = isNull + ) + } + + predicate additionalImpliesStep( + GuardsImpl::PreGuard g1, GuardValue v1, GuardsImpl::PreGuard g2, GuardValue v2 + ) { + g1 instanceof DereferenceableExpr and + g1 = getNullEquivParent(g2) and + v1.isNullness(_) and + v2 = v1 + or + g1 instanceof DereferenceableExpr and + g2 = getANullImplyingChild(g1) and + v1.isNonNullValue() and + v2 = v1 + or + g2 = g1.(NullCoalescingExpr).getAnOperand() and + v1.isNullValue() and + v2 = v1 + } +} + +module Guards = GuardsImpl::Logic; /** An expression whose value may control the execution of another element. */ class Guard extends Expr { 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 bcc4c48ec924..210326b987ce 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll @@ -25,11 +25,7 @@ private module Cached { newtype TSplitKind = TInitializerSplitKind() or TConditionalCompletionSplitKind() or - TAssertionSplitKind() or - TFinallySplitKind(int nestLevel) { nestLevel = any(Statements::TryStmtTree t).nestLevel() } or - TExceptionHandlerSplitKind() or - TBooleanSplitKind(BooleanSplitting::BooleanSplitSubKind kind) { kind.startsSplit(_) } or - TLoopSplitKind(LoopSplitting::AnalyzableLoopStmt loop) + TAssertionSplitKind() cached newtype TSplit = @@ -38,16 +34,7 @@ private module Cached { TAssertionSplit(AssertionSplitting::Assertion a, int i, boolean success) { exists(a.getExpr(i)) and success in [false, true] - } or - TFinallySplit(FinallySplitting::FinallySplitType type, int nestLevel) { - nestLevel = any(Statements::TryStmtTree t).nestLevel() - } or - TExceptionHandlerSplit(ExceptionClass ec) or - TBooleanSplit(BooleanSplitting::BooleanSplitSubKind kind, boolean branch) { - kind.startsSplit(_) and - branch in [false, true] - } or - TLoopSplit(LoopSplitting::AnalyzableLoopStmt loop) + } } import Cached @@ -460,863 +447,3 @@ module AssertionSplitting { } } } - -module FinallySplitting { - /** - * The type of a split `finally` node. - * - * The type represents one of the possible ways of entering a `finally` - * block. For example, if a `try` statement ends with a `return` statement, - * 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::ConditionalSuccessor } - - /** Holds if this split type matches entry into a `finally` block with completion `c`. */ - predicate isSplitForEntryCompletion(Completion c) { - if c instanceof NormalCompletion - 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::DirectSuccessor - else this = c.getAMatchingSuccessorType() - } - } - - /** A control flow element that belongs to a `finally` block. */ - private class FinallyAstNode extends AstNode { - private Statements::TryStmtTree try; - - FinallyAstNode() { this = try.getAFinallyDescendant() } - - /** Gets the immediate `try` block that this node belongs to. */ - Statements::TryStmtTree getTryStmt() { result = try } - - /** Holds if this node is the entry node in the `finally` block it belongs to. */ - predicate isEntryNode() { first(try.(TryStmt).getFinally(), this) } - } - - /** - * A split for elements belonging to a `finally` block, which determines how to - * continue execution after leaving the `finally` block. For example, in - * - * ```csharp - * try - * { - * if (!M()) - * throw new Exception(); - * } - * finally - * { - * Log.Write("M failed"); - * } - * ``` - * - * all control flow nodes in the `finally` block have two splits: one representing - * normal execution of the `try` block (when `M()` returns `true`), and one - * representing exceptional execution of the `try` block (when `M()` returns `false`). - */ - class FinallySplit extends Split, TFinallySplit { - private FinallySplitType type; - private int nestLevel; - - FinallySplit() { this = TFinallySplit(type, nestLevel) } - - /** - * Gets the type of this `finally` split, that is, how to continue execution after the - * `finally` block. - */ - FinallySplitType getType() { result = type } - - /** Gets the `finally` nesting level. */ - int getNestLevel() { result = nestLevel } - - override string toString() { - if type instanceof Cfg::DirectSuccessor - then result = "" - else - if nestLevel > 0 - then result = "finally(" + nestLevel + "): " + type.toString() - else result = "finally: " + type.toString() - } - } - - private int getListOrder(FinallySplitKind kind) { - result = AssertionSplitting::getNextListOrder() + kind.getNestLevel() - } - - int getNextListOrder() { - result = max([getListOrder(_) + 1, AssertionSplitting::getNextListOrder()]) - } - - private class FinallySplitKind extends SplitKind, TFinallySplitKind { - private int nestLevel; - - FinallySplitKind() { this = TFinallySplitKind(nestLevel) } - - /** Gets the `finally` nesting level. */ - int getNestLevel() { result = nestLevel } - - override int getListOrder() { result = getListOrder(this) } - - override string toString() { result = "Finally (" + nestLevel + ")" } - } - - pragma[nomagic] - private predicate hasEntry0(AstNode pred, FinallyAstNode succ, int nestLevel, Completion c) { - succ.isEntryNode() and - nestLevel = succ.getTryStmt().nestLevel() and - succ(pred, succ, c) - } - - private class FinallySplitImpl extends SplitImpl instanceof FinallySplit { - override FinallySplitKind getKind() { result.getNestLevel() = super.getNestLevel() } - - override predicate hasEntry(AstNode pred, AstNode succ, Completion c) { - hasEntry0(pred, succ, super.getNestLevel(), c) and - super.getType().isSplitForEntryCompletion(c) - } - - override predicate hasEntryScope(CfgScope scope, AstNode first) { none() } - - /** - * Holds if this split applies to control flow element `pred`, where `pred` - * is a valid predecessor. - */ - private predicate appliesToPredecessor(AstNode pred) { - this.appliesTo(pred) and - (succ(pred, _, _) or scopeLast(_, pred, _)) - } - - pragma[noinline] - private predicate exit0(AstNode pred, Statements::TryStmtTree try, int nestLevel, Completion c) { - this.appliesToPredecessor(pred) and - nestLevel = try.nestLevel() and - last(try, pred, c) - } - - /** - * Holds if `pred` may exit this split with completion `c`. The Boolean - * `inherited` indicates whether `c` is an inherited completion from a `try`/ - * `catch` block. - */ - private predicate exit(AstNode pred, Completion c, boolean inherited) { - exists(TryStmt try, FinallySplitType type | - this.exit0(pred, try, super.getNestLevel(), c) and - type = super.getType() - | - if last(try.getFinally(), pred, c) - then - // Finally block can itself exit with completion `c`: either `c` must - // match this split, `c` must be an abnormal completion, or this split - // does not require another completion to be recovered - inherited = false and - ( - type = c.getAMatchingSuccessorType() - or - not c instanceof NormalCompletion - or - 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::DirectSuccessor - ) - ) - or - // If this split is normal, and an outer split can exit based on an inherited - // completion, we need to exit this split as well. For example, in - // - // ```csharp - // bool done; - // try - // { - // if (b1) throw new ExceptionA(); - // } - // finally - // { - // try - // { - // if (b2) throw new ExceptionB(); - // } - // finally - // { - // done = true; - // } - // } - // ``` - // - // if the outer split for `done = true` is `ExceptionA` and the inner split - // is "normal" (corresponding to `b1 = true` and `b2 = false`), then the inner - // split must be able to exit with an `ExceptionA` completion. - this.appliesToPredecessor(pred) and - exists(FinallySplit outer | - outer.getNestLevel() = super.getNestLevel() - 1 and - outer.(FinallySplitImpl).exit(pred, c, inherited) and - super.getType() instanceof Cfg::DirectSuccessor and - inherited = true - ) - } - - override predicate hasExit(AstNode pred, AstNode succ, Completion c) { - succ(pred, succ, c) and - ( - this.exit(pred, c, _) - or - this.exit(pred, c.(NestedBreakCompletion).getAnInnerCompatibleCompletion(), _) - ) - } - - override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) { - scopeLast(scope, last, c) and - ( - this.exit(last, c, _) - or - this.exit(last, c.(NestedBreakCompletion).getAnInnerCompatibleCompletion(), _) - ) - } - - override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) { - this.appliesSucc(pred, succ, c) and - succ = - any(FinallyAstNode fcfe | - if fcfe.isEntryNode() - then - // entering a nested `finally` block - fcfe.getTryStmt().nestLevel() > super.getNestLevel() - else - // staying in the same (possibly nested) `finally` block as `pred` - fcfe.getTryStmt().nestLevel() >= super.getNestLevel() - ) - } - } -} - -module ExceptionHandlerSplitting { - private newtype TMatch = - TAlways() or - TMaybe() or - TNever() - - /** - * A split for elements belonging to a `catch` clause, which determines the type of - * exception to handle. For example, in - * - * ```csharp - * try - * { - * if (M() > 0) - * throw new ArgumentException(); - * else if (M() < 0) - * throw new ArithmeticException("negative"); - * else - * return; - * } - * catch (ArgumentException e) - * { - * Log.Write("M() positive"); - * } - * catch (ArithmeticException e) when (e.Message != null) - * { - * Log.Write($"M() {e.Message}"); - * } - * ``` - * - * all control flow nodes in - * ```csharp - * catch (ArgumentException e) - * ``` - * and - * ```csharp - * catch (ArithmeticException e) when (e.Message != null) - * ``` - * have two splits: one representing the `try` block throwing an `ArgumentException`, - * and one representing the `try` block throwing an `ArithmeticException`. - */ - class ExceptionHandlerSplit extends Split, TExceptionHandlerSplit { - private ExceptionClass ec; - - ExceptionHandlerSplit() { this = TExceptionHandlerSplit(ec) } - - /** Gets the exception type that this split represents. */ - ExceptionClass getExceptionClass() { result = ec } - - override string toString() { result = "exception: " + ec.toString() } - } - - private class ExceptionHandlerSplitKind extends SplitKind, TExceptionHandlerSplitKind { - override int getListOrder() { result = FinallySplitting::getNextListOrder() } - - override string toString() { result = "ExceptionHandler" } - } - - int getNextListOrder() { result = FinallySplitting::getNextListOrder() + 1 } - - private class ExceptionHandlerSplitImpl extends SplitImpl instanceof ExceptionHandlerSplit { - override ExceptionHandlerSplitKind getKind() { any() } - - override predicate hasEntry(AstNode pred, AstNode succ, Completion c) { - // Entry into first catch clause - exists(Statements::TryStmtTree ts | - super.getExceptionClass() = ts.getAThrownException(pred, c) - | - succ(pred, succ, c) and - succ = ts.(TryStmt).getCatchClause(0).(SpecificCatchClause) - ) - } - - override predicate hasEntryScope(CfgScope scope, AstNode first) { none() } - - /** - * Holds if this split applies to catch clause `scc`. The parameter `match` - * indicates whether the catch clause `scc` may match the exception type of - * this split. - */ - private predicate appliesToCatchClause(SpecificCatchClause scc, TMatch match) { - exists(Statements::TryStmtTree ts, ExceptionClass ec | - ec = super.getExceptionClass() and - ec = ts.getAThrownException(_, _) and - scc = ts.(TryStmt).getACatchClause() - | - if scc.getCaughtExceptionType() = ec.getABaseType*() - then match = TAlways() - else - if scc.getCaughtExceptionType() = ec.getASubType+() - then match = TMaybe() - else match = TNever() - ) - } - - /** - * Holds if this split applies to control flow element `pred`, where `pred` - * is a valid predecessor with completion `c`. - */ - private predicate appliesToPredecessor(AstNode pred, Completion c) { - this.appliesTo(pred) and - (succ(pred, _, c) or scopeLast(_, pred, c)) and - ( - pred instanceof SpecificCatchClause - implies - pred = - any(SpecificCatchClause scc | - if c instanceof MatchingCompletion - then - exists(TMatch match | this.appliesToCatchClause(scc, match) | - c = - any(MatchingCompletion mc | - if mc.isMatch() then match != TNever() else match != TAlways() - ) - ) - else ( - (scc.isLast() and c instanceof ThrowCompletion) - implies - exists(TMatch match | this.appliesToCatchClause(scc, match) | match != TAlways()) - ) - ) - ) - } - - /** - * Holds if this split applies to `pred`, and `pred` may exit this split - * with throw completion `c`, because it belongs to the last `catch` clause - * in a `try` statement. - */ - private predicate hasLastExit(AstNode pred, ThrowCompletion c) { - this.appliesToPredecessor(pred, c) and - exists(TryStmt ts, SpecificCatchClause scc, int last | - last(ts.getCatchClause(last), pred, c) - | - ts.getCatchClause(last) = scc and - scc.isLast() and - c.getExceptionClass() = super.getExceptionClass() - ) - } - - override predicate hasExit(AstNode pred, AstNode succ, Completion c) { - this.appliesToPredecessor(pred, c) and - succ(pred, succ, c) and - ( - // Exit out to `catch` clause block - first(any(SpecificCatchClause scc).getBlock(), succ) - or - // Exit out to a general `catch` clause - succ instanceof GeneralCatchClause - or - // Exit out from last `catch` clause (no catch clauses match) - this.hasLastExit(pred, c) - ) - } - - override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) { - // Exit out from last `catch` clause (no catch clauses match) - this.hasLastExit(last, c) and - scopeLast(scope, last, c) - } - - override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) { - this.appliesToPredecessor(pred, c) and - this.appliesSucc(pred, succ, c) and - not first(any(SpecificCatchClause scc).getBlock(), succ) and - not succ instanceof GeneralCatchClause and - not exists(TryStmt ts, SpecificCatchClause scc, int last | - last(ts.getCatchClause(last), pred, c) - | - ts.getCatchClause(last) = scc and - scc.isLast() - ) - } - } -} - -module BooleanSplitting { - private import semmle.code.csharp.controlflow.internal.PreBasicBlocks - - /** A sub-classification of Boolean splits. */ - abstract class BooleanSplitSubKind extends TBooleanSplitSubKind { - /** - * Holds if the branch taken by condition `cb1` should be recorded in - * this split, and the recorded value determines the branch taken by a - * later condition `cb2`, possibly inverted. - * - * For example, in - * - * ```csharp - * var b = GetB(); - * if (b) - * Console.WriteLine("b is true"); - * if (!b) - * Console.WriteLine("b is false"); - * ``` - * - * the branch taken in the condition on line 2 can be recorded, and the - * recorded value will determine the branch taken in the condition on line 4. - */ - abstract predicate correlatesConditions(ConditionBlock cb1, ConditionBlock cb2, boolean inverted); - - /** Holds if control flow element `cfe` starts a split of this kind. */ - predicate startsSplit(AstNode cfe) { - this.correlatesConditions(any(ConditionBlock cb | cb.getLastNode() = cfe), _, _) - } - - /** - * Holds if basic block `bb` can reach a condition correlated with a - * split of this kind. - */ - abstract predicate canReachCorrelatedCondition(PreBasicBlock bb); - - /** Gets the callable that this Boolean split kind belongs to. */ - abstract Callable getEnclosingCallable(); - - /** Gets a textual representation of this Boolean split kind. */ - abstract string toString(); - - /** Gets the location of this Boolean split kind. */ - abstract Location getLocation(); - } - - /** - * A Boolean split that records the value of a Boolean SSA variable. - * - * For example, in - * - * ```csharp - * var b = GetB(); - * if (b) - * Console.WriteLine("b is true"); - * if (!b) - * Console.WriteLine("b is false"); - * ``` - * - * there is a Boolean split on the SSA variable for `b` at line 1. - */ - class SsaBooleanSplitSubKind extends BooleanSplitSubKind, TSsaBooleanSplitSubKind { - private PreSsa::Definition def; - - SsaBooleanSplitSubKind() { this = TSsaBooleanSplitSubKind(def) } - - /** - * Holds if condition `cb` is a read of the SSA variable in this split. - */ - private predicate defCondition(ConditionBlock cb) { cb.getLastNode() = def.getARead() } - - /** - * Holds if condition `cb` is a read of the SSA variable in this split, - * and `cb` can be reached from `read` without passing through another - * condition that reads the same SSA variable. - */ - private predicate defConditionReachableFromRead(ConditionBlock cb, AssignableRead read) { - this.defCondition(cb) and - read = cb.getLastNode() - or - exists(AssignableRead mid | this.defConditionReachableFromRead(cb, mid) | - PreSsa::adjacentReadPairSameVar(read, mid) and - not this.defCondition(read) - ) - } - - /** - * Holds if condition `cb` is a read of the SSA variable in this split, - * and `cb` can be reached from the SSA definition without passing through - * another condition that reads the same SSA variable. - */ - private predicate firstDefCondition(ConditionBlock cb) { - this.defConditionReachableFromRead(cb, def.getAFirstRead()) - } - - override predicate correlatesConditions(ConditionBlock cb1, ConditionBlock cb2, boolean inverted) { - this.firstDefCondition(cb1) and - exists(AssignableRead read1, AssignableRead read2 | - read1 = cb1.getLastNode() and - PreSsa::adjacentReadPairSameVar+(read1, read2) and - read2 = cb2.getLastNode() and - inverted = false - ) - } - - override predicate canReachCorrelatedCondition(PreBasicBlock bb) { - this.correlatesConditions(_, bb, _) and - not def.getBasicBlock() = bb - or - exists(PreBasicBlock mid | this.canReachCorrelatedCondition(mid) | - bb = mid.getAPredecessor() and - not def.getBasicBlock() = bb - ) - } - - override Callable getEnclosingCallable() { result = def.getBasicBlock().getEnclosingCallable() } - - override string toString() { result = def.getSourceVariable().toString() } - - override Location getLocation() { result = def.getLocation() } - } - - /** - * A split for elements that can reach a condition where this split determines - * the Boolean value that the condition evaluates to. For example, in - * - * ```csharp - * if (b) - * Console.WriteLine("b is true"); - * if (!b) - * Console.WriteLine("b is false"); - * ``` - * - * all control flow nodes on line 2 and line 3 have two splits: one representing - * that the condition on line 1 took the `true` branch, and one representing that - * the condition on line 1 took the `false` branch. - */ - class BooleanSplit extends Split, TBooleanSplit { - private BooleanSplitSubKind kind; - private boolean branch; - - BooleanSplit() { this = TBooleanSplit(kind, branch) } - - /** Gets the kind of this Boolean split. */ - BooleanSplitSubKind getSubKind() { result = kind } - - /** Gets the branch taken in this split. */ - boolean getBranch() { result = branch } - - override string toString() { - exists(int line | - line = kind.getLocation().getStartLine() and - result = kind.toString() + " (line " + line + "): " + branch.toString() - ) - } - } - - private int getListOrder(BooleanSplitSubKind kind) { - exists(Callable c, int r | c = kind.getEnclosingCallable() | - result = r + ExceptionHandlerSplitting::getNextListOrder() - 1 and - kind = - rank[r](BooleanSplitSubKind kind0, Location l | - kind0.getEnclosingCallable() = c and - kind0.startsSplit(_) and - l = kind0.getLocation() - | - kind0 order by l.getStartLine(), l.getStartColumn(), kind0.toString() - ) - ) - } - - int getNextListOrder() { - result = max([getListOrder(_) + 1, ExceptionHandlerSplitting::getNextListOrder()]) - } - - private class BooleanSplitKind extends SplitKind, TBooleanSplitKind { - private BooleanSplitSubKind kind; - - BooleanSplitKind() { this = TBooleanSplitKind(kind) } - - /** Gets the sub kind of this Boolean split kind. */ - BooleanSplitSubKind getSubKind() { result = kind } - - override int getListOrder() { result = getListOrder(kind) } - - override string toString() { result = kind.toString() } - } - - pragma[nomagic] - private predicate hasEntry0( - AstNode pred, AstNode succ, BooleanSplitSubKind kind, boolean b, Completion c - ) { - kind.startsSplit(pred) and - succ(pred, succ, c) and - b = c.getInnerCompletion().(BooleanCompletion).getValue() - } - - private class BooleanSplitImpl extends SplitImpl instanceof BooleanSplit { - override BooleanSplitKind getKind() { result.getSubKind() = super.getSubKind() } - - override predicate hasEntry(AstNode pred, AstNode succ, Completion c) { - hasEntry0(pred, succ, super.getSubKind(), super.getBranch(), c) - } - - override predicate hasEntryScope(CfgScope scope, AstNode first) { none() } - - private ConditionBlock getACorrelatedCondition(boolean inverted) { - super.getSubKind().correlatesConditions(_, result, inverted) - } - - /** - * Holds if this split applies to basic block `bb`, where the the last - * element of `bb` can have completion `c`. - */ - private predicate appliesToBlock(PreBasicBlock bb, Completion c) { - this.appliesTo(bb) and - exists(AstNode last | last = bb.getLastNode() | - (succ(last, _, c) or scopeLast(_, last, c)) and - // Respect the value recorded in this split for all correlated conditions - forall(boolean inverted | bb = this.getACorrelatedCondition(inverted) | - c.getInnerCompletion() instanceof BooleanCompletion - implies - c.getInnerCompletion().(BooleanCompletion).getValue() = - super.getBranch().booleanXor(inverted) - ) - ) - } - - override predicate hasExit(AstNode pred, AstNode succ, Completion c) { - exists(PreBasicBlock bb | this.appliesToBlock(bb, c) | - pred = bb.getLastNode() and - succ(pred, succ, c) and - // Exit this split if we can no longer reach a correlated condition - not super.getSubKind().canReachCorrelatedCondition(succ) - ) - } - - override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) { - exists(PreBasicBlock bb | this.appliesToBlock(bb, c) | - last = bb.getLastNode() and - scopeLast(scope, last, c) - ) - } - - override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) { - exists(PreBasicBlock bb, Completion c0 | this.appliesToBlock(bb, c0) | - pred = bb.getAnElement() and - this.appliesSucc(pred, succ, c) and - ( - pred = bb.getLastNode() - implies - ( - // We must still be able to reach a correlated condition to stay in this split - super.getSubKind().canReachCorrelatedCondition(succ) and - c = c0 - ) - ) - ) - } - } -} - -module LoopSplitting { - private import semmle.code.csharp.controlflow.Guards as Guards - private import PreBasicBlocks - - /** Holds if `ce` is guarded by a (non-)empty check, as specified by `v`. */ - private predicate emptinessGuarded( - Guards::Guard g, Guards::EnumerableCollectionExpr ce, - Guards::AbstractValues::EmptyCollectionValue v - ) { - exists(PreBasicBlock bb | Guards::Internal::preControls(g, bb, v) | - PreSsa::adjacentReadPairSameVar(g, ce) and - bb.getAnElement() = ce - ) - } - - /** - * A loop where the body is guaranteed to be executed at least once, and hence - * can be unrolled in the control flow graph, or where the body is guaranteed - * to never be executed, and hence can be removed from the control flow graph. - */ - abstract class AnalyzableLoopStmt extends LoopStmt { - /** Holds if the step `pred --c--> succ` should start the split. */ - abstract predicate start(AstNode pred, AstNode succ, Completion c); - - /** Holds if the step `pred --c--> succ` should stop the split. */ - abstract predicate stop(AstNode pred, AstNode succ, Completion c); - - /** - * Holds if any step `pred --c--> _` should be pruned from the control flow graph. - */ - abstract predicate pruneLoopCondition(AstNode pred, ConditionalCompletion c); - - /** - * Holds if the body is guaranteed to be executed at least once. If not, the - * body is guaranteed to never be executed. - */ - abstract predicate isUnroll(); - } - - private class AnalyzableForeachStmt extends AnalyzableLoopStmt, ForeachStmt { - Guards::AbstractValues::EmptyCollectionValue v; - - AnalyzableForeachStmt() { - /* - * We use `unique` to avoid degenerate cases like - * ```csharp - * if (xs.Length == 0) - * return; - * if (xs.Length > 0) - * return; - * foreach (var x in xs) - * .... - * ``` - * where the iterator expression `xs` is guarded by both an emptiness check - * and a non-emptiness check. - */ - - v = - unique(Guards::AbstractValues::EmptyCollectionValue v0 | - emptinessGuarded(_, this.getIterableExpr(), v0) - or - this.getIterableExpr() = v0.getAnExpr() - | - v0 - ) - } - - override predicate start(AstNode pred, AstNode succ, Completion c) { - last(this.getIterableExpr(), pred, c) and - succ = this - } - - override predicate stop(AstNode pred, AstNode succ, Completion c) { - pred = this and - succ(pred, succ, c) - } - - override predicate pruneLoopCondition(AstNode pred, ConditionalCompletion c) { - pred = this and - c = any(EmptinessCompletion ec | if v.isEmpty() then not ec.isEmpty() else ec.isEmpty()) - } - - override predicate isUnroll() { v.isNonEmpty() } - } - - /** - * A split for loops where the body is guaranteed to be executed at least once, or - * guaranteed to never be executed. For example, in - * - * ```csharp - * void M(string[] args) - * { - * if (args.Length == 0) - * return; - * foreach (var arg in args) - * System.Console.WriteLine(args); - * } - * ``` - * - * the `foreach` loop is guaranteed to be executed at least once, as a result of the - * `args.Length == 0` check. - */ - class LoopSplit extends Split, TLoopSplit { - AnalyzableLoopStmt loop; - - LoopSplit() { this = TLoopSplit(loop) } - - override string toString() { - if loop.isUnroll() - then result = "unroll (line " + loop.getLocation().getStartLine() + ")" - else result = "skip (line " + loop.getLocation().getStartLine() + ")" - } - } - - pragma[noinline] - private Callable enclosingCallable(AnalyzableLoopStmt loop) { - result = loop.getEnclosingCallable() - } - - private int getListOrder(AnalyzableLoopStmt loop) { - exists(Callable c, int r | c = enclosingCallable(loop) | - result = r + BooleanSplitting::getNextListOrder() - 1 and - loop = - rank[r](AnalyzableLoopStmt loop0, Location l | - enclosingCallable(loop0) = c and - l = loop0.getLocation() - | - loop0 order by l.getStartLine(), l.getStartColumn() - ) - ) - } - - int getNextListOrder() { - result = max([getListOrder(_) + 1, BooleanSplitting::getNextListOrder()]) - } - - private class LoopSplitKind extends SplitKind, TLoopSplitKind { - private AnalyzableLoopStmt loop; - - LoopSplitKind() { this = TLoopSplitKind(loop) } - - override int getListOrder() { result = getListOrder(loop) } - - override string toString() { result = "Unroll" } - } - - private class LoopUnrollingSplitImpl extends SplitImpl instanceof LoopSplit { - AnalyzableLoopStmt loop; - - LoopUnrollingSplitImpl() { this = TLoopSplit(loop) } - - override LoopSplitKind getKind() { result = TLoopSplitKind(loop) } - - override predicate hasEntry(AstNode pred, AstNode succ, Completion c) { - loop.start(pred, succ, c) - } - - override predicate hasEntryScope(CfgScope scope, AstNode first) { none() } - - /** - * Holds if this split applies to control flow element `pred`, where `pred` - * is a valid predecessor. - */ - private predicate appliesToPredecessor(AstNode pred, Completion c) { - this.appliesTo(pred) and - (succ(pred, _, c) or scopeLast(_, pred, c)) and - not loop.pruneLoopCondition(pred, c) - } - - override predicate hasExit(AstNode pred, AstNode succ, Completion c) { - this.appliesToPredecessor(pred, c) and - loop.stop(pred, succ, c) - } - - override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) { - this.appliesToPredecessor(last, c) and - scopeLast(scope, last, c) - } - - override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) { - this.appliesToPredecessor(pred, c) and - this.appliesSucc(pred, succ, c) and - not loop.stop(pred, succ, c) - } - } -} diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index 3723dcaec12a..6e36008ab2eb 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -20,33 +20,35 @@ import csharp private import ControlFlow private import internal.CallableReturns -private import semmle.code.csharp.commons.Assertions private import semmle.code.csharp.controlflow.Guards as G private import semmle.code.csharp.controlflow.Guards::AbstractValues private import semmle.code.csharp.dataflow.internal.SsaImpl as SsaImpl private import semmle.code.csharp.frameworks.System private import semmle.code.csharp.frameworks.Test +private import semmle.code.csharp.controlflow.ControlFlowReachability + +private Expr maybeNullExpr(Expr reason) { + G::Internal::nullValue(result) and reason = result + or + result instanceof AsExpr and reason = result + or + result.(AssignExpr).getRValue() = maybeNullExpr(reason) + or + result.(CastExpr).getExpr() = maybeNullExpr(reason) + or + result = + any(ConditionalExpr ce | + ce.getThen() = maybeNullExpr(reason) + or + ce.getElse() = maybeNullExpr(reason) + ) + or + result.(NullCoalescingExpr).getRightOperand() = maybeNullExpr(reason) +} /** An expression that may be `null`. */ class MaybeNullExpr extends Expr { - MaybeNullExpr() { - G::Internal::nullValue(this) - or - this instanceof AsExpr - or - this.(AssignExpr).getRValue() instanceof MaybeNullExpr - or - this.(Cast).getExpr() instanceof MaybeNullExpr - or - this = - any(ConditionalExpr ce | - ce.getThen() instanceof MaybeNullExpr - or - ce.getElse() instanceof MaybeNullExpr - ) - or - this.(NullCoalescingExpr).getRightOperand() instanceof MaybeNullExpr - } + MaybeNullExpr() { this = maybeNullExpr(_) } } /** An expression that is always `null`. */ @@ -116,43 +118,10 @@ private predicate nonNullDef(Ssa::ExplicitDefinition def) { } /** - * Holds if the `i`th node of basic block `bb` is a dereference `d` of SSA - * definition `def`. + * Holds if `node` is a dereference `d` of SSA definition `def`. */ -private predicate dereferenceAt(BasicBlock bb, int i, Ssa::Definition def, Dereference d) { - d = def.getAReadAtNode(bb.getNode(i)) -} - -/** - * Holds if `e` having abstract value `vExpr` implies that SSA definition `def` - * has abstract value `vDef`. - */ -private predicate exprImpliesSsaDef( - G::Guard e, G::AbstractValue vExpr, Ssa::Definition def, G::AbstractValue vDef -) { - vExpr = e.getAValue() and - vExpr = vDef and - ( - e = def.getARead() - or - e = def.(Ssa::ExplicitDefinition).getADefinition().getTargetAccess() - ) - or - exists(Expr e0, G::AbstractValue vExpr0 | - exprImpliesSsaDef(e0, vExpr0, def, vDef) and - G::Internal::impliesStep(e, vExpr, e0, vExpr0) - ) -} - -/** - * Gets an element that tests whether a given SSA definition, `def`, is - * `null` or not. - * - * 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, ConditionalSuccessor s, NullValue nv) { - exists(Expr e, G::AbstractValue v | v.branch(result, s, e) | exprImpliesSsaDef(e, v, def, nv)) +private predicate dereferenceAt(ControlFlow::Node node, Ssa::Definition def, Dereference d) { + d = def.getAReadAtNode(node) } private predicate isMaybeNullArgument(Ssa::ImplicitParameterDefinition def, MaybeNullExpr arg) { @@ -217,13 +186,16 @@ private predicate isNullDefaultArgument(Ssa::ImplicitParameterDefinition def, Al } /** Holds if `def` is an SSA definition that may be `null`. */ -private predicate defMaybeNull(Ssa::Definition def, string msg, Element reason) { +private predicate defMaybeNull( + Ssa::Definition def, ControlFlow::Node node, string msg, Element reason +) { not nonNullDef(def) and ( // A variable compared to `null` might be `null` exists(G::DereferenceableExpr de | de = def.getARead() | reason = de.getANullCheck(_, true) and msg = "as suggested by $@ null check" and + node = def.getControlFlowNode() and not de = any(Ssa::PhiNode phi).getARead() and strictcount(Element e | e = any(Ssa::Definition def0 | de = def0.getARead()).getElement()) = 1 and // Don't use a check as reason if there is a `null` assignment @@ -234,23 +206,27 @@ private predicate defMaybeNull(Ssa::Definition def, string msg, Element reason) or // A parameter might be `null` if there is a `null` argument somewhere isMaybeNullArgument(def, reason) and + node = def.getControlFlowNode() and ( if reason instanceof AlwaysNullExpr then msg = "because of $@ null argument" else msg = "because of $@ potential null argument" ) or - isNullDefaultArgument(def, reason) and msg = "because the parameter has a null default value" + isNullDefaultArgument(def, reason) and + node = def.getControlFlowNode() and + msg = "because the parameter has a null default value" or // If the source of a variable is `null` then the variable may be `null` exists(AssignableDefinition adef | adef = def.(Ssa::ExplicitDefinition).getADefinition() | - adef.getSource() instanceof MaybeNullExpr and + adef.getSource() = maybeNullExpr(node.getAstNode()) and reason = adef.getExpr() and msg = "because of $@ assignment" ) or // A variable of nullable type may be null - exists(Dereference d | dereferenceAt(_, _, def, d) | + exists(Dereference d | dereferenceAt(_, def, d) | + node = def.getControlFlowNode() and d.hasNullableType() and not def instanceof Ssa::PhiNode and reason = def.getSourceVariable().getAssignable() and @@ -259,247 +235,57 @@ private predicate defMaybeNull(Ssa::Definition def, string msg, Element reason) ) } -pragma[noinline] -private predicate sourceVariableMaybeNull(Ssa::SourceVariable v) { - defMaybeNull(v.getAnSsaDefinition(), _, _) -} - -pragma[noinline] -private predicate defNullImpliesStep0( - Ssa::SourceVariable v, Ssa::Definition def1, BasicBlock bb1, BasicBlock bb2 -) { - sourceVariableMaybeNull(v) and - def1.getSourceVariable() = v and - def1.isLiveAtEndOfBlock(bb1) and - bb2 = bb1.getASuccessor() +private Ssa::Definition getAPseudoInput(Ssa::Definition def) { + result = def.(Ssa::PhiNode).getAnInput() } -/** - * Holds if `def1` being `null` in basic block `bb1` implies that `def2` might - * be `null` in basic block `bb2`. The SSA definitions share the same source - * variable. - */ -private predicate defNullImpliesStep( - Ssa::Definition def1, BasicBlock bb1, Ssa::Definition def2, BasicBlock bb2 -) { - exists(Ssa::SourceVariable v | defNullImpliesStep0(v, def1, bb1, bb2) | - def2.(Ssa::PhiNode).getAnInput() = def1 and - bb2 = def2.getBasicBlock() - or - def2 = def1 and - not exists(Ssa::PhiNode phi | - phi.getSourceVariable() = v and - bb2 = phi.getBasicBlock() - ) - ) and - not exists(ConditionalSuccessor s, NullValue nv | - bb1.getLastNode() = getANullCheck(def1, s, nv).getAControlFlowNode() - | - bb2 = bb1.getASuccessor(s) and - nv.isNonNull() - ) +// `def.getAnUltimateDefinition()` includes inputs into uncertain +// definitions, but we only want inputs into pseudo nodes +private Ssa::Definition getAnUltimateDefinition(Ssa::Definition def) { + result = getAPseudoInput*(def) and + not result instanceof Ssa::PhiNode } /** - * The transitive closure of `defNullImpliesStep()` originating from `defMaybeNull()`. - * That is, those basic blocks for which the SSA definition is suspected of being `null`. + * Holds if SSA definition `def` can reach a read at `cfn`, without passing + * through an intermediate dereference that always throws a null reference + * exception. */ -private predicate defMaybeNullInBlock(Ssa::Definition def, BasicBlock bb) { - defMaybeNull(def, _, _) and - bb = def.getBasicBlock() +private predicate defReaches(Ssa::Definition def, ControlFlow::Node cfn) { + exists(def.getAFirstReadAtNode(cfn)) or - exists(BasicBlock mid, Ssa::Definition midDef | defMaybeNullInBlock(midDef, mid) | - defNullImpliesStep(midDef, mid, def, bb) - ) -} - -/** - * Holds if `v` is a source variable that might reach a potential `null` - * dereference. - */ -private predicate nullDerefCandidateVariable(Ssa::SourceVariable v) { - exists(Ssa::Definition def, BasicBlock bb | dereferenceAt(bb, _, def, _) | - defMaybeNullInBlock(def, bb) and - v = def.getSourceVariable() + exists(ControlFlow::Node mid | defReaches(def, mid) | + SsaImpl::adjacentReadPairSameVar(_, mid, cfn) and + not mid = any(Dereference d | d.isAlwaysNull(def.getSourceVariable())).getAControlFlowNode() ) } -private predicate succStep(PathNode pred, Ssa::Definition def, BasicBlock bb) { - defNullImpliesStep(pred.getSsaDefinition(), pred.getBasicBlock(), def, bb) -} +private module NullnessConfig implements ControlFlowReachability::ConfigSig { + predicate source(ControlFlow::Node node, Ssa::Definition def) { defMaybeNull(def, node, _, _) } -private predicate succNullArgument(SourcePathNode pred, Ssa::Definition def, BasicBlock bb) { - pred = TSourcePathNode(def, _, _, true) and - bb = def.getBasicBlock() -} - -private predicate succSourceSink(SourcePathNode source, Ssa::Definition def, BasicBlock bb) { - source = TSourcePathNode(def, _, _, false) and - bb = def.getBasicBlock() -} - -private newtype TPathNode = - TSourcePathNode(Ssa::Definition def, string msg, Element reason, boolean isNullArgument) { - nullDerefCandidateVariable(def.getSourceVariable()) and - defMaybeNull(def, msg, reason) and - if isMaybeNullArgument(def, reason) then isNullArgument = true else isNullArgument = false - } or - TInternalPathNode(Ssa::Definition def, BasicBlock bb) { - succStep(_, def, bb) - or - succNullArgument(_, def, bb) - } or - TSinkPathNode(Ssa::Definition def, BasicBlock bb, int i, Dereference d) { - dereferenceAt(bb, i, def, d) and - ( - succStep(_, def, bb) - or - succNullArgument(_, def, bb) - or - succSourceSink(_, def, bb) + predicate sink(ControlFlow::Node node, Ssa::Definition def) { + exists(Dereference d | + dereferenceAt(node, def, d) and + not d instanceof NonNullExpr ) } -/** - * An SSA definition, which may be `null`, augmented with at basic block which can - * be reached without passing through a `null` check. - */ -abstract class PathNode extends TPathNode { - /** Gets the SSA definition. */ - abstract Ssa::Definition getSsaDefinition(); - - /** Gets the basic block that can be reached without passing through a `null` check. */ - abstract BasicBlock getBasicBlock(); - - /** Gets another node that can be reached from this node. */ - abstract PathNode getASuccessor(); - - /** Gets a textual representation of this node. */ - abstract string toString(); - - /** Gets the location of this node. */ - abstract Location getLocation(); -} - -private class SourcePathNode extends PathNode, TSourcePathNode { - private Ssa::Definition def; - private string msg; - private Element reason; - private boolean isNullArgument; - - SourcePathNode() { this = TSourcePathNode(def, msg, reason, isNullArgument) } - - override Ssa::Definition getSsaDefinition() { result = def } - - override BasicBlock getBasicBlock() { - isNullArgument = false and - result = def.getBasicBlock() - } - - string getMessage() { result = msg } - - Element getReason() { result = reason } - - override PathNode getASuccessor() { - succStep(this, result.getSsaDefinition(), result.getBasicBlock()) - or - succNullArgument(this, result.getSsaDefinition(), result.getBasicBlock()) - or - result instanceof SinkPathNode and - succSourceSink(this, result.getSsaDefinition(), result.getBasicBlock()) - } - - override string toString() { - if isNullArgument = true then result = reason.toString() else result = def.toString() - } - - override Location getLocation() { - if isNullArgument = true then result = reason.getLocation() else result = def.getLocation() - } -} - -private class InternalPathNode extends PathNode, TInternalPathNode { - private Ssa::Definition def; - private BasicBlock bb; - - InternalPathNode() { this = TInternalPathNode(def, bb) } - - override Ssa::Definition getSsaDefinition() { result = def } - - override BasicBlock getBasicBlock() { result = bb } - - override PathNode getASuccessor() { - succStep(this, result.getSsaDefinition(), result.getBasicBlock()) - } - - override string toString() { result = bb.getFirstNode().toString() } - - override Location getLocation() { result = bb.getFirstNode().getLocation() } -} - -private class SinkPathNode extends PathNode, TSinkPathNode { - private Ssa::Definition def; - private BasicBlock bb; - private int i; - private Dereference d; - - SinkPathNode() { this = TSinkPathNode(def, bb, i, d) } - - override Ssa::Definition getSsaDefinition() { result = def } + predicate barrierValue(G::GuardValue gv) { gv.isNullness(false) } - override BasicBlock getBasicBlock() { result = bb } - - override PathNode getASuccessor() { none() } - - Dereference getDereference() { result = d } - - override string toString() { result = d.toString() } - - override Location getLocation() { result = d.getLocation() } + predicate uncertainFlow() { none() } } -/** - * Provides the query predicates needed to include a graph in a path-problem query - * for `Dereference::is[First]MaybeNull()`. - */ -module PathGraph { - query predicate nodes(PathNode n) { n.getASuccessor*() instanceof SinkPathNode } - - query predicate edges(PathNode pred, PathNode succ) { - nodes(pred) and - nodes(succ) and - succ = pred.getASuccessor() - } -} - -private Ssa::Definition getAPseudoInput(Ssa::Definition def) { - result = def.(Ssa::PhiNode).getAnInput() -} - -// `def.getAnUltimateDefinition()` includes inputs into uncertain -// definitions, but we only want inputs into pseudo nodes -private Ssa::Definition getAnUltimateDefinition(Ssa::Definition def) { - result = getAPseudoInput*(def) and - not result instanceof Ssa::PhiNode -} +private module NullnessFlow = ControlFlowReachability::Flow; -/** - * Holds if SSA definition `def` can reach a read at `cfn`, without passing - * through an intermediate dereference that always (`always = true`) or - * maybe (`always = false`) throws a null reference exception. - */ -private predicate defReaches(Ssa::Definition def, ControlFlow::Node cfn, boolean always) { - exists(def.getAFirstReadAtNode(cfn)) and - (always = true or always = false) - or - exists(ControlFlow::Node mid | defReaches(def, mid, always) | - SsaImpl::adjacentReadPairSameVar(_, mid, cfn) and - not mid = - any(Dereference d | - if always = true - then d.isAlwaysNull(def.getSourceVariable()) - else d.isMaybeNull(def, _, _, _, _) - ).getAControlFlowNode() +predicate maybeNullDeref(Dereference d, Ssa::SourceVariable v, string msg, Element reason) { + exists( + Ssa::Definition origin, Ssa::Definition ssa, ControlFlow::Node src, ControlFlow::Node sink + | + defMaybeNull(origin, src, msg, reason) and + NullnessFlow::flow(src, origin, sink, ssa) and + ssa.getSourceVariable() = v and + dereferenceAt(sink, ssa, d) and + not d.isAlwaysNull(v) ) } @@ -597,33 +383,6 @@ class Dereference extends G::DereferenceableExpr { */ predicate isFirstAlwaysNull(Ssa::SourceVariable v) { this.isAlwaysNull(v) and - defReaches(v.getAnSsaDefinition(), this.getAControlFlowNode(), true) - } - - /** - * Holds if this expression dereferences SSA definition `def`, which may - * be `null`. - */ - predicate isMaybeNull( - Ssa::Definition def, SourcePathNode source, SinkPathNode sink, string msg, Element reason - ) { - source.getASuccessor*() = sink and - msg = source.getMessage() and - reason = source.getReason() and - def = sink.getSsaDefinition() and - this = sink.getDereference() and - not this.isAlwaysNull(def.getSourceVariable()) - } - - /** - * Holds if this expression dereferences SSA definition `def`, which may - * be `null`, and this expression can be reached from `def` without passing - * through another such dereference. - */ - predicate isFirstMaybeNull( - Ssa::Definition def, SourcePathNode source, SinkPathNode sink, string msg, Element reason - ) { - this.isMaybeNull(def, source, sink, msg, reason) and - defReaches(def, this.getAControlFlowNode(), false) + defReaches(v.getAnSsaDefinition(), this.getAControlFlowNode()) } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll index 4c9f64de4b9e..e8180201b9a8 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll @@ -163,13 +163,11 @@ module Ssa { * (`ImplicitDefinition`), or a phi node (`PhiNode`). */ class Definition extends SsaImpl::Definition { - /** - * Gets the control flow node of this SSA definition, if any. Phi nodes are - * examples of SSA definitions without a control flow node, as they are - * modeled at index `-1` in the relevant basic block. - */ + /** Gets the control flow node of this SSA definition. */ final ControlFlow::Node getControlFlowNode() { - exists(ControlFlow::BasicBlock bb, int i | this.definesAt(_, bb, i) | result = bb.getNode(i)) + exists(ControlFlow::BasicBlock bb, int i | this.definesAt(_, bb, i) | + result = bb.getNode(0.maximum(i)) + ) } /** diff --git a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql index eb71239e0fc0..386b238e049c 100644 --- a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql +++ b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql @@ -16,16 +16,94 @@ import csharp import semmle.code.csharp.commons.Assertions import semmle.code.csharp.commons.Constants +import semmle.code.csharp.controlflow.BasicBlocks +import semmle.code.csharp.controlflow.Guards as Guards +import codeql.controlflow.queries.ConstantCondition as ConstCond + +module ConstCondInput implements ConstCond::InputSig { + class SsaDefinition = Ssa::Definition; + + class GuardValue = Guards::GuardValue; + + class Guard = Guards::Guards::Guard; + + predicate ssaControlsBranchEdge(SsaDefinition def, BasicBlock bb1, BasicBlock bb2, GuardValue v) { + Guards::Guards::ssaControlsBranchEdge(def, bb1, bb2, v) + } + + predicate ssaControls(SsaDefinition def, BasicBlock bb, GuardValue v) { + Guards::Guards::ssaControls(def, bb, v) + } + + import Guards::Guards::InternalUtil +} + +module ConstCondImpl = ConstCond::Make; + +predicate nullCheck(Expr e, boolean direct) { + exists(QualifiableExpr qe | qe.isConditional() and qe.getQualifier() = e and direct = true) + or + exists(NullCoalescingExpr nce | nce.getLeftOperand() = e and direct = true) + or + exists(ConditionalExpr ce | ce.getThen() = e or ce.getElse() = e | + nullCheck(ce, _) and direct = false + ) +} + +predicate constantGuard( + Guards::Guards::Guard g, string msg, Guards::Guards::Guard reason, string reasonMsg +) { + ConstCondImpl::problems(g, msg, reason, reasonMsg) and + // conditional qualified expressions sit at an akward place in the CFG, which + // leads to FPs + not g.(QualifiableExpr).getQualifier() = reason and + // and if they're extension method calls, the syntactic qualifier is actually argument 0 + not g.(ExtensionMethodCall).getArgument(0) = reason and + // if a logical connective is constant, one of its operands is constant, so + // we report that instead + not g instanceof LogicalNotExpr and + not g instanceof LogicalAndExpr and + not g instanceof LogicalOrExpr and + // if a logical connective is a reason for another condition to be constant, + // then one of its operands is a more precise reason + not reason instanceof LogicalNotExpr and + not reason instanceof LogicalAndExpr and + not reason instanceof LogicalOrExpr and + // don't report double-checked locking + not exists(LockStmt ls, BasicBlock bb | + bb = ls.getBasicBlock() and + reason.getBasicBlock().strictlyDominates(bb) and + bb.dominates(g.getBasicBlock()) + ) and + // exclude indirect null checks like `x` in `(b ? x : null)?.Foo()` + not nullCheck(g, false) +} /** A constant condition. */ -abstract class ConstantCondition extends Expr { +abstract class ConstantCondition extends Guards::Guards::Guard { /** Gets the alert message for this constant condition. */ abstract string getMessage(); + predicate hasReason(Guards::Guards::Guard reason, string reasonMsg) { + // dummy value, overridden when message has a placeholder + reason = this and reasonMsg = "dummy" + } + /** Holds if this constant condition is white-listed. */ predicate isWhiteListed() { none() } } +/** A constant guard. */ +class ConstantGuard extends ConstantCondition { + ConstantGuard() { constantGuard(this, _, _, _) } + + override string getMessage() { constantGuard(this, result, _, _) } + + override predicate hasReason(Guards::Guards::Guard reason, string reasonMsg) { + constantGuard(this, _, reason, reasonMsg) + } +} + /** A constant Boolean condition. */ class ConstantBooleanCondition extends ConstantCondition { boolean b; @@ -111,6 +189,7 @@ class ConstantMatchingCondition extends ConstantCondition { boolean b; ConstantMatchingCondition() { + this instanceof Expr and forex(ControlFlow::Node cfn | cfn = this.getAControlFlowNode() | exists(ControlFlow::MatchingSuccessor t | exists(cfn.getASuccessorByType(t)) | b = t.getValue() @@ -138,9 +217,10 @@ class ConstantMatchingCondition extends ConstantCondition { } } -from ConstantCondition c, string msg +from ConstantCondition c, string msg, Guards::Guards::Guard reason, string reasonMsg where msg = c.getMessage() and + c.hasReason(reason, reasonMsg) and not c.isWhiteListed() and not isExprInAssertion(c) -select c, msg +select c, msg, reason, reasonMsg diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 7fa8992c49af..40ea9e3693a8 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.2 + +No user-facing changes. + ## 1.4.1 ### Minor Analysis Improvements diff --git a/csharp/ql/src/CSI/NullMaybe.ql b/csharp/ql/src/CSI/NullMaybe.ql index 67873ebb291e..f78a8d89bcfd 100644 --- a/csharp/ql/src/CSI/NullMaybe.ql +++ b/csharp/ql/src/CSI/NullMaybe.ql @@ -2,7 +2,7 @@ * @name Dereferenced variable may be null * @description Dereferencing a variable whose value may be 'null' may cause a * 'NullReferenceException'. - * @kind path-problem + * @kind problem * @problem.severity warning * @precision high * @id cs/dereferenced-value-may-be-null @@ -15,10 +15,7 @@ import csharp import semmle.code.csharp.dataflow.Nullness -import PathGraph -from - Dereference d, PathNode source, PathNode sink, Ssa::SourceVariable v, string msg, Element reason -where d.isFirstMaybeNull(v.getAnSsaDefinition(), source, sink, msg, reason) -select d, source, sink, "Variable $@ may be null at this access " + msg + ".", v, v.toString(), - reason, "this" +from Dereference d, Ssa::SourceVariable v, string msg, Element reason +where maybeNullDeref(d, v, msg, reason) +select d, "Variable $@ may be null at this access " + msg + ".", v, v.toString(), reason, "this" diff --git a/csharp/ql/src/Security Features/CWE-451/MissingXFrameOptions.ql b/csharp/ql/src/Security Features/CWE-451/MissingXFrameOptions.ql index 9e51b663038c..1b647457e7c8 100644 --- a/csharp/ql/src/Security Features/CWE-451/MissingXFrameOptions.ql +++ b/csharp/ql/src/Security Features/CWE-451/MissingXFrameOptions.ql @@ -16,6 +16,17 @@ import csharp import semmle.code.asp.WebConfig import semmle.code.csharp.frameworks.system.Web +XmlElement getAWebConfigRoot(WebConfigXml webConfig) { + result = webConfig.getARootElement() + or + result = webConfig.getARootElement().getAChild("location") and + ( + not result.hasAttribute("path") // equivalent to path="." + or + result.getAttributeValue("path") = ["", "."] + ) +} + /** * Holds if the `Web.config` file `webConfig` adds an `X-Frame-Options` header. */ @@ -30,8 +41,8 @@ predicate hasWebConfigXFrameOptions(WebConfigXml webConfig) { // // // ``` - webConfig - .getARootElement() + // This can also be in a `location` + getAWebConfigRoot(webConfig) .getAChild("system.webServer") .getAChild("httpProtocol") .getAChild("customHeaders") diff --git a/csharp/ql/src/change-notes/2025-10-17-location-in-web-config.md b/csharp/ql/src/change-notes/2025-10-17-location-in-web-config.md new file mode 100644 index 000000000000..5df97b9d28a6 --- /dev/null +++ b/csharp/ql/src/change-notes/2025-10-17-location-in-web-config.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* the `cs/web/missing-x-frame-options` query now correctly handles configuration nested in root `` elements. diff --git a/csharp/ql/src/change-notes/released/1.4.2.md b/csharp/ql/src/change-notes/released/1.4.2.md new file mode 100644 index 000000000000..37be01f40d98 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.4.2.md @@ -0,0 +1,3 @@ +## 1.4.2 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 43ccf4467bed..a76cacdf7997 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.1 +lastReleaseVersion: 1.4.2 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index fad06a3e9289..a9776d058b98 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.4.2-dev +version: 1.4.3-dev groups: - csharp - queries diff --git a/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected b/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected index 0189d522a6cd..a877dc5a99c6 100644 --- a/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected +++ b/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected @@ -31,7 +31,7 @@ | Assignables.cs:69:13:69:17 | ... = ... | Assignables.cs:69:13:69:17 | ... = ... | | Assignables.cs:78:22:78:22 | String s | Assignables.cs:78:22:78:22 | String s | | Assignables.cs:82:21:82:33 | String temp = ... | Assignables.cs:82:21:82:33 | String temp = ... | -| Assignables.cs:84:30:84:30 | Exception e | Assignables.cs:84:30:84:30 | [exception: OutOfMemoryException] Exception e | +| Assignables.cs:84:30:84:30 | Exception e | Assignables.cs:84:30:84:30 | Exception e | | Assignables.cs:92:9:92:54 | ... = ... | Assignables.cs:92:9:92:54 | ... = ... | | Assignables.cs:92:9:92:54 | ... = ... | Assignables.cs:92:9:92:54 | ... = ... | | Assignables.cs:92:9:92:54 | ... = ... | Assignables.cs:92:9:92:54 | ... = ... | @@ -81,7 +81,6 @@ | 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] ... = ... | | 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/assignables/Assignables.expected b/csharp/ql/test/library-tests/assignables/Assignables.expected index 6c11ac4869a8..97c22cd91275 100644 --- a/csharp/ql/test/library-tests/assignables/Assignables.expected +++ b/csharp/ql/test/library-tests/assignables/Assignables.expected @@ -43,12 +43,6 @@ | Assignables.cs:92:23:92:23 | b | | Assignables.cs:92:33:92:33 | s | | Assignables.cs:95:40:95:44 | tuple | -| Assignables.cs:97:24:97:24 | Item1 | -| Assignables.cs:97:27:97:36 | Item2 | -| Assignables.cs:101:6:101:8 | Item1 | -| Assignables.cs:101:11:101:24 | Item2 | -| Assignables.cs:101:12:101:15 | Item1 | -| Assignables.cs:101:18:101:23 | Item2 | | Assignables.cs:108:13:108:13 | i | | Assignables.cs:109:14:109:14 | p | | Assignables.cs:113:25:113:25 | i | @@ -69,8 +63,6 @@ | Assignables.cs:132:13:132:13 | x | | Assignables.cs:133:29:133:29 | s | | Assignables.cs:138:19:138:19 | x | -| Discards.cs:5:6:5:8 | Item1 | -| Discards.cs:5:11:5:16 | Item2 | | Discards.cs:5:30:5:30 | x | | Discards.cs:19:14:19:14 | x | | Discards.cs:20:17:20:17 | y | diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index 4f78a6f8303e..f95409f1bd6d 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -69,119 +69,118 @@ | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (normal) | 6 | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:20:58:20 | access to parameter b | 4 | | Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | exit M8 | 1 | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | 7 | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | 7 | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:31 | ... != ... | 6 | +| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | 1 | +| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | 1 | | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | 2 | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (normal) | 6 | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:23:59:36 | [false] ... && ... | 1 | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:23:59:36 | [true] ... && ... | 1 | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | 1 | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | 1 | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | 1 | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:20:65:20 | access to parameter b | 4 | | Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | exit M9 | 1 | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | 7 | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | 7 | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:32 | ... == ... | 6 | +| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | 1 | +| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | 1 | | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | 2 | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (normal) | 6 | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:24:66:37 | [false] ... \|\| ... | 1 | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | 1 | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | 1 | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | 1 | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | 1 | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:20:72:20 | access to parameter b | 4 | | Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | exit M10 | 1 | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | 7 | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | 7 | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:31 | ... == ... | 6 | +| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | 1 | +| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | 1 | | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | 2 | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (normal) | 6 | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:23:73:36 | [false] ... && ... | 1 | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:23:73:36 | [true] ... && ... | 1 | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | 1 | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | 1 | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | 1 | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:20:79:20 | access to parameter b | 4 | | Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | exit M11 | 1 | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | 7 | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | 7 | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:32 | ... != ... | 6 | +| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | 1 | +| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | 1 | | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | 2 | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (normal) | 6 | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:24:80:37 | [false] ... \|\| ... | 1 | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | 1 | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | 1 | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | 1 | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | 1 | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:20:86:20 | access to parameter b | 4 | | Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | exit M12 | 1 | | Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 (abnormal) | 1 | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | 7 | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | 7 | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | 1 | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | 1 | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | 7 | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | 5 | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | 5 | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | 1 | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | 1 | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | 7 | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | 5 | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | 5 | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | 1 | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | 1 | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | 7 | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | 7 | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | 7 | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | 1 | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | 1 | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | 7 | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | 7 | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | 7 | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | 1 | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | 1 | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | 7 | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | 7 | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | 7 | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | 1 | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | 1 | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | 7 | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | 7 | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | 7 | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | 1 | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | 1 | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | 7 | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | 7 | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | 7 | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | 1 | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | 1 | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | 1 | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | 1 | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | 1 | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | 1 | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | 1 | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | 7 | -| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | 1 | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | 1 | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | 1 | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | 1 | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | 1 | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | 7 | -| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | 1 | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | 7 | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | 1 | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | 1 | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | 1 | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | 7 | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:22:87:30 | ... != ... | 6 | +| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | 1 | +| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | 1 | +| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | 1 | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:13:90:13 | access to parameter b | 7 | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:23:91:23 | access to local variable s | 4 | +| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | 1 | +| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | 1 | +| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | 1 | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:13:94:13 | access to parameter b | 7 | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:26:95:26 | access to local variable s | 4 | +| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | 1 | +| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | 1 | +| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | 1 | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:13:98:13 | access to parameter b | 7 | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:23:99:31 | ... == ... | 6 | +| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | 1 | +| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | 1 | +| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | 1 | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:13:102:13 | access to parameter b | 7 | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:23:103:31 | ... != ... | 6 | +| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | 1 | +| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | 1 | +| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | 1 | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:13:106:13 | access to parameter b | 7 | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:24:107:32 | ... != ... | 6 | +| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | 1 | +| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | 1 | +| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | 1 | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:13:110:13 | access to parameter b | 7 | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:24:111:32 | ... == ... | 6 | +| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | 1 | +| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | 1 | +| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | 1 | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:13:114:13 | access to parameter b | 7 | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:31 | ... != ... | 6 | +| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | 1 | +| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | 1 | +| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | 1 | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:13:118:13 | access to parameter b | 7 | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:23:115:36 | [false] ... && ... | 1 | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:23:115:36 | [true] ... && ... | 1 | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | 1 | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:32 | ... == ... | 6 | +| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | 1 | +| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | 1 | +| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | 1 | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:13:122:13 | access to parameter b | 7 | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | 1 | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | 1 | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:37:119:38 | [false] !... | 1 | +| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:37:119:38 | [true] !... | 1 | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | 1 | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:31 | ... == ... | 6 | +| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | 1 | +| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | 1 | +| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | 1 | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:13:126:13 | access to parameter b | 7 | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:23:123:36 | [false] ... && ... | 1 | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [true] ... && ... | 1 | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | 1 | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:32 | ... != ... | 6 | +| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | 1 | +| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | 1 | | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | 1 | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (normal) | 6 | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | 1 | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | 1 | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:37:127:38 | [false] !... | 1 | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | 1 | +| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:37:127:38 | [true] !... | 1 | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | 1 | | Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | exit AssertTrueFalse | 4 | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:25:140:26 | access to parameter b1 | 5 | | Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | exit M13 | 1 | @@ -206,31 +205,24 @@ | BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:22:29:22:32 | access to parameter args | 3 | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | 1 | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:26:21:26:31 | ... == ... | 8 | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | 6 | +| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | break; | 1 | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:21:31:32 | ... == ... | 5 | | BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:32:21:32:21 | ; | 1 | -| BreakInTry.cs:32:21:32:21 | [finally: break] ; | BreakInTry.cs:32:21:32:21 | [finally: break] ; | 1 | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | exit M2 | 3 | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:42:17:42:28 | ... == ... | 8 | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 | 2 | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | 3 | +| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | 1 | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | access to parameter args | 2 | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | 1 | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | 1 | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:49:21:49:31 | ... == ... | 6 | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | 6 | -| BreakInTry.cs:50:21:50:26 | [finally: return] break; | BreakInTry.cs:50:21:50:26 | [finally: return] break; | 1 | | BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | break; | 1 | | BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:53:7:53:7 | ; | 1 | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:60:17:60:28 | ... == ... | 8 | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 | 2 | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | 3 | +| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | 1 | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | access to parameter args | 2 | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | 1 | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | 1 | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | ... == ... | 6 | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | 6 | -| BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:68:21:68:26 | [finally: return] break; | 1 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | 1 | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | 5 | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | exit Default | 6 | @@ -238,7 +230,11 @@ | CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:15:10:15:15 | exit Typeof | 6 | | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | exit Nameof | 6 | | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | 5 | -| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | exit M | 15 | +| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | 9 | +| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M | 1 | +| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | 1 | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | 3 | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | 5 | | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | 5 | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | 2 | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 | 2 | @@ -279,49 +275,41 @@ | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | exit Conditions | 5 | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:5:13:5:15 | access to parameter inc | 4 | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | 2 | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | 5 | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | 2 | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | ...++ | 3 | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | 2 | | Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:7:13:7:16 | [false] !... | 1 | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:13:7:16 | [true] !... | 1 | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:15 | ...-- | 3 | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:14:13:14:13 | access to parameter b | 7 | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | 7 | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | 4 | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | 2 | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | 2 | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:15 | ...++ | 3 | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:17 | ... > ... | 4 | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | 2 | | Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:17:17:18 | [false] !... | 1 | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:17:17:18 | [true] !... | 1 | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:19 | ...-- | 3 | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | exit M1 | 4 | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:25:13:25:14 | access to parameter b1 | 7 | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | 2 | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | 5 | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | 2 | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:19 | ...++ | 3 | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | 2 | | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:15 | ...++ | 3 | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | exit M2 | 4 | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:37:13:37:14 | access to parameter b1 | 10 | | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:19 | ... = ... | 3 | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | 2 | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | 5 | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | 2 | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:15 | ...++ | 3 | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | 2 | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:15 | ...++ | 3 | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | exit M3 | 4 | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:16:49:22 | ... > ... | 10 | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | 4 | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | 3 | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | 3 | +| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:9:53:9 | while (...) ... | 6 | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:22 | ... > ... | 4 | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:17:51:17 | access to parameter b | 3 | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | 7 | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:19 | ...++ | 3 | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | exit M4 | 4 | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:16:60:22 | ... > ... | 10 | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | 4 | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | 3 | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | 3 | +| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:9:64:9 | while (...) ... | 6 | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:22 | ... > ... | 4 | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:17:62:17 | access to parameter b | 3 | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | 7 | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | 2 | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | 2 | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:19 | ...++ | 3 | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | 2 | | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:15 | ...++ | 3 | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | exit M5 | 4 | @@ -344,10 +332,9 @@ | Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:19 | ...++ | 3 | | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | exit M7 | 4 | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:105:13:105:13 | access to parameter b | 8 | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | 10 | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | 5 | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | 2 | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | 2 | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:19 | ... = ... | 5 | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:24 | ... > ... | 5 | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | 2 | | Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:17:108:18 | [false] !... | 1 | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:17:108:18 | [true] !... | 1 | | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:23 | ... = ... | 5 | @@ -357,26 +344,21 @@ | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:39 | ... < ... | 4 | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:44 | ...++ | 2 | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:18:119:21 | access to local variable last | 11 | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | 1 | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | 1 | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | 5 | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | 2 | +| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:119:17:119:21 | [false] !... | 1 | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:119:17:119:21 | [true] !... | 1 | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:22 | ... = ... | 3 | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | 2 | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:24 | ... = ... | 3 | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:16:131:19 | true | 4 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | 1 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | 1 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | 4 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | 4 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | 4 | +| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:9:140:9 | while (...) ... | 3 | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | true | 1 | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:133:17:133:22 | access to field Field1 | 4 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | 4 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | 4 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | 4 | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | 6 | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:135:21:135:26 | access to field Field2 | 4 | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:137:21:137:37 | call to method ToString | 5 | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:17:145:17 | access to parameter b | 4 | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 | 2 | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | 5 | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | 5 | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:146:13:146:13 | access to parameter b | 4 | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | 1 | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | 1 | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:48 | call to method WriteLine | 6 | | Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:48 | call to method WriteLine | 6 | | ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods | 5 | @@ -385,12 +367,10 @@ | ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:20:10:20:11 | exit M3 | 7 | | ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:26:10:26:11 | exit M4 | 7 | | ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | exit M5 | 7 | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | 7 | +| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:44:9:47:9 | catch (...) {...} | 8 | | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 | 2 | -| ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | 1 | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | 1 | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | 2 | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | 1 | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | 1 | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | 2 | | ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | exit M7 | 6 | | ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | exit M8 | 6 | @@ -433,61 +413,51 @@ | Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:23:15:33 | exit CallToInt32 | 5 | | Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:20:17:20:20 | exit Main | 20 | | 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 | enter M1 | Finally.cs:15:13:15:40 | call to method WriteLine | 11 | | 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] {...} | 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:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 (abnormal) | 1 | +| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | exit M1 (normal) | 1 | | 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:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | return ...; | 1 | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | catch (...) {...} | 1 | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:48:26:51 | true | 2 | | 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: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:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | 1 | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:34:21:34:24 | true | 6 | +| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:38:17:38:44 | throw ...; | 5 | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | 1 | +| Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} | 1 | +| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:46:13:46:19 | return ...; | 3 | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | 4 | | 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:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | return ...; | 1 | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | catch (...) {...} | 1 | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:48:61:51 | true | 2 | | 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] {...} | Finally.cs:54:10:54:11 | exit M3 (abnormal) | 5 | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | 1 | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:51 | ... != ... | 5 | +| Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | 1 | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | 4 | | 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 | | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | exit M4 (normal) | 1 | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:20 | ... > ... | 3 | | Finally.cs:78:9:100:9 | {...} | Finally.cs:81:21:81:26 | ... == ... | 7 | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:92:25:92:30 | [finally: return] ... == ... | 8 | +| Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; | 1 | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:26 | ... == ... | 4 | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:92:25:92:30 | [finally: continue] ... == ... | 8 | +| Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; | 1 | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:26 | ... == ... | 4 | -| Finally.cs:86:21:86:26 | break; | Finally.cs:92:25:92:30 | [finally: break] ... == ... | 8 | +| Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; | 1 | | Finally.cs:89:13:99:13 | {...} | Finally.cs:92:25:92:30 | ... == ... | 7 | -| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:93:25:93:46 | [finally: break] throw ...; | 1 | -| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | 1 | -| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:93:25:93:46 | [finally: return] throw ...; | 1 | | Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:25:93:46 | throw ...; | 1 | -| 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 | 1 | -| 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] {...} | 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] {...} | 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] {...} | 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 | | Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | exit M5 | 1 | @@ -495,59 +465,33 @@ | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | exit M5 (normal) | 1 | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | 1 | | Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... | 2 | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:19:114:35 | [finally: return] ... == ... | 8 | +| Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; | 1 | | 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: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] {...} | 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] !... | 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] !... | 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] ...; | 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] 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] ...; | 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] {...} | 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:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | exit M7 | 13 | | 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: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] {...} | 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] 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] "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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | catch (...) {...} | 1 | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:54 | ... == ... | 5 | | 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] 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 | @@ -556,67 +500,46 @@ | 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: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, 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, 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, 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, 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, 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, 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:180:21:180:43 | throw ...; | Finally.cs:180:21:180:43 | throw ...; | 1 | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | 1 | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | 5 | +| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:25:186:47 | throw ...; | 1 | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | 1 | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | 1 | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | 1 | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:21:190:22 | access to parameter b1 | 3 | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:25:190:47 | 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: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] {...} | 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] 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] {...} | 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] 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] ...; | Finally.cs:211:13:211:28 | [finally: exception] ... = ... | 4 | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | ... = ... | 4 | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 5 | | 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: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] {...} | 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] 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] {...} | 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] {...} | 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:250:17:252:17 | {...} | Finally.cs:251:21:251:54 | call to method WriteLine | 4 | +| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:44 | call to method WriteLine | 3 | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:46 | call to method WriteLine | 4 | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | exit M12 (normal) | 4 | +| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:272:13:272:18 | ... = ... | 16 | | 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] {...} | 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 | +| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 (abnormal) | 1 | +| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 (normal) | 1 | | 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 | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | exit M1 | 2 | @@ -661,48 +584,60 @@ | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:9:13:9:28 | ... == ... | 7 | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | 2 | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | 1 | -| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | 5 | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | 2 | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | 12 | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | 4 | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | 1 | +| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | 11 | | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 | 2 | -| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | 5 | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | 4 | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:24:29:24:32 | access to parameter args | 3 | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 | 2 | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | 3 | -| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | 5 | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | 8 | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | access to parameter args | 2 | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | 4 | +| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | 7 | | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 | 2 | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | 20 | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | 4 | +| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | 19 | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 | 2 | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | 1 | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | 3 | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | 7 | -| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:48:9:52:9 | [unroll (line 48)] foreach (... ... in ...) ... | 12 | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | 2 | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | 6 | +| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | 12 | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 | 2 | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:49:9:52:9 | {...} | 2 | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:51:13:51:23 | goto ...; | 5 | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | 12 | +| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | 11 | | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 | 2 | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | 1 | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:60:17:60:17 | access to parameter b | 4 | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | 4 | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | 4 | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | 5 | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | 2 | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | 4 | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | 3 | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | 2 | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | 3 | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:14:69:23 | call to method Any | 5 | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 | 2 | | LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:69:13:69:23 | [false] !... | 1 | | LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:69:13:69:23 | [true] !... | 1 | | LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | 1 | -| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:72:9:73:35 | [skip (line 72)] foreach (... ... in ...) ... | 5 | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | 9 | +| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:72:29:72:32 | access to parameter args | 4 | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | 4 | +| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | 8 | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 | 2 | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | 9 | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | 5 | +| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | 8 | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 | 2 | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | 9 | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | 5 | +| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | 8 | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | 2 | -| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | 6 | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | 1 | +| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | 5 | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | 2 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | 1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 | 2 | @@ -1220,9 +1155,12 @@ | cflow.cs:254:17:254:27 | goto ...; | cflow.cs:254:17:254:27 | goto ...; | 1 | | cflow.cs:255:13:255:20 | default: | cflow.cs:257:17:257:22 | break; | 5 | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:264:18:264:22 | Int32 i = ... | 7 | +| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | exit Yield | 1 | +| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield (abnormal) | 1 | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield (normal) | 1 | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:30 | ... < ... | 3 | | cflow.cs:265:9:267:9 | {...} | cflow.cs:264:33:264:35 | ...++ | 5 | -| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | exit Yield | 9 | +| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:275:13:275:41 | call to method WriteLine | 7 | | cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub | 5 | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | exit ControlFlowSub | 5 | | cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:5:286:18 | exit ControlFlowSub | 7 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected b/csharp/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected new file mode 100644 index 000000000000..ff3ec45f5cea --- /dev/null +++ b/csharp/ql/test/library-tests/controlflow/graph/CONSISTENCY/CfgConsistency.expected @@ -0,0 +1,6 @@ +multipleSuccessors +| BreakInTry.cs:31:21:31:32 | ... == ... | false | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | +| BreakInTry.cs:31:21:31:32 | ... == ... | false | BreakInTry.cs:35:7:35:7 | ; | +simpleAndNormalSuccessors +| BreakInTry.cs:32:21:32:21 | ; | break | successor | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | +| Finally.cs:97:21:97:23 | ...-- | break | successor | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:77:16:77:16 | access to local variable i | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected index b4a4cbb6a157..c705855ac648 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected @@ -27,1053 +27,661 @@ conditionBlock | Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:31:51:32 | "" | false | | Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | true | | Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | false | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:24:58:27 | [b (line 56): true] null | true | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:31:58:32 | [b (line 56): false] "" | false | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:23:59:36 | [true] ... && ... | true | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | false | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | true | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:59:23:59:36 | [true] ... && ... | true | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | true | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | true | +| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:24:58:27 | null | true | +| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:31:58:32 | "" | false | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:36 | [true] ... && ... | true | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:36:59:36 | access to parameter b | true | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | false | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:24:65:27 | [b (line 63): true] null | true | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:31:65:32 | [b (line 63): false] "" | false | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | false | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | true | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | false | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | false | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true | +| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:24:65:27 | null | true | +| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:31:65:32 | "" | false | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:37:66:37 | access to parameter b | false | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | true | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:24:72:27 | [b (line 70): true] null | true | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:31:72:32 | [b (line 70): false] "" | false | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:23:73:36 | [true] ... && ... | true | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | false | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | true | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:73:23:73:36 | [true] ... && ... | true | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | true | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | true | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | +| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:24:72:27 | null | true | +| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:31:72:32 | "" | false | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:36 | [true] ... && ... | true | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:36:73:36 | access to parameter b | true | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | false | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:24:79:27 | [b (line 77): true] null | true | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:31:79:32 | [b (line 77): false] "" | false | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | false | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | true | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | false | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | false | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true | +| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:24:79:27 | null | true | +| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:31:79:32 | "" | false | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:37:80:37 | access to parameter b | false | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | true | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:24:86:27 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:31:86:32 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:17:90:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:24:90:25 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:17:94:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:24:94:25 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:24:98:25 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | false | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | false | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:90:24:90:25 | [b (line 84): false] "" | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:94:24:94:25 | [b (line 84): false] "" | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:90:24:90:25 | [b (line 84): false] "" | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:94:24:94:25 | [b (line 84): false] "" | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:98:24:98:25 | [b (line 84): false] "" | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:90:17:90:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:94:17:94:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | false | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | false | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:94:24:94:25 | [b (line 84): false] "" | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:94:24:94:25 | [b (line 84): false] "" | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:98:24:98:25 | [b (line 84): false] "" | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:94:17:94:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | true | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | false | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | true | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:98:24:98:25 | [b (line 84): false] "" | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | false | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | false | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | false | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:118:17:118:20 | [b (line 84): true] null | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | false | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:122:17:122:20 | [b (line 84): true] null | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:37:127:38 | [false] !... | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:122:17:122:20 | [b (line 84): true] null | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:126:17:126:20 | [b (line 84): true] null | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:37:127:38 | [false] !... | false | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | true | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | false | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:24:86:27 | null | true | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:31:86:32 | "" | false | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | false | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:17:90:20 | null | true | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:24:90:25 | "" | false | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | false | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:17:94:20 | null | true | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:24:94:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | true | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:17:98:20 | null | true | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:24:98:25 | "" | false | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:17:102:20 | null | true | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:24:102:25 | "" | false | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:17:106:20 | null | true | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:24:106:25 | "" | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:17:110:20 | null | true | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:24:110:25 | "" | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:17:114:20 | null | true | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:24:114:25 | "" | false | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:24:118:25 | "" | false | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:13:118:25 | ... ? ... : ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:24:118:25 | "" | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:37:119:38 | [true] !... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:38:119:38 | access to parameter b | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:13:118:25 | ... ? ... : ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:24:118:25 | "" | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:13:122:25 | ... ? ... : ... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:17:122:20 | null | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [true] ... && ... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:36:123:36 | access to parameter b | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:13:126:25 | ... ? ... : ... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:17:126:20 | null | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [false] !... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [true] !... | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:38:127:38 | access to parameter b | false | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:13:122:25 | ... ? ... : ... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:17:122:20 | null | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:23:123:36 | [true] ... && ... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:36:123:36 | access to parameter b | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:13:126:25 | ... ? ... : ... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:17:126:20 | null | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:37:127:38 | [false] !... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:37:127:38 | [true] !... | false | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:38:127:38 | access to parameter b | false | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | false | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:24:122:25 | "" | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:24:126:25 | "" | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | true | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | false | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | false | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | false | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | false | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | false | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:29:140:30 | access to parameter b2 | true | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | false | @@ -1091,42 +699,16 @@ conditionBlock | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:27:21:27:26 | break; | false | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:30:13:33:13 | {...} | false | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | ; | false | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | [finally: break] ; | false | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:27:21:27:26 | break; | true | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:30:13:33:13 | {...} | false | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:32:21:32:21 | ; | false | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:32:21:32:21 | [finally: break] ; | true | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:32:21:32:21 | [finally: break] ; | true | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:32:21:32:21 | ; | true | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:43:17:43:23 | return ...; | true | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:46:9:52:9 | {...} | false | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | true | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:26:47:28 | String arg | false | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | true | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:50:21:50:26 | [finally: return] break; | true | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:50:21:50:26 | break; | false | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:53:7:53:7 | ; | false | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | false | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | [finally: return] break; | false | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | false | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | break; | false | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:50:21:50:26 | break; | true | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:50:21:50:26 | [finally: return] break; | true | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:61:17:61:23 | return ...; | true | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:64:9:70:9 | {...} | false | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | true | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | false | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:26:65:28 | String arg | false | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | true | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:68:21:68:26 | [finally: return] break; | true | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:68:21:68:26 | break; | false | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | false | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | [finally: return] break; | false | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | false | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | break; | false | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:68:21:68:26 | break; | true | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:68:21:68:26 | [finally: return] break; | true | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:38 | call to method ToString | false | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | false | | ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:49 | call to method ToLower | false | @@ -1149,71 +731,38 @@ conditionBlock | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | | ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:24 | call to method Out | false | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | true | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | false | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:13:7:16 | [false] !... | true | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:13:7:16 | [true] !... | false | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:8:13:8:16 | ...; | false | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:7:13:7:16 | [false] !... | true | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | false | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:8:13:8:16 | ...; | false | +| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | ...; | true | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [false] !... | true | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | false | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:8:13:8:16 | ...; | false | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | true | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | true | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | false | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | false | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | true | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:17:17:18 | [false] !... | true | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:17:17:18 | [true] !... | false | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:18:17:18:20 | ...; | false | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | true | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:17:17:17:18 | [false] !... | true | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | true | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | true | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:18:17:18:20 | ...; | true | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | false | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:18:17:18:20 | ...; | false | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | true | +| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:15:13:15:16 | ...; | true | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | true | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | true | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | true | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | true | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | true | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | false | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | false | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | true | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:26:13:27:20 | if (...) ... | true | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | true | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | true | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:28:9:29:16 | if (...) ... | false | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | true | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | false | +| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:27:17:27:20 | ...; | true | +| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:20 | ...; | true | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:29:13:29:16 | ...; | true | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:38:13:38:20 | ...; | true | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | true | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | false | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:42:13:42:16 | ...; | true | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:42:13:42:16 | ...; | true | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | true | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | true | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | {...} | true | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | true | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | false | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | false | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | {...} | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | true | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | if (...) ... | false | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | true | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | false | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | false | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | false | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | false | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | true | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | false | +| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:16 | ...; | true | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:42:13:42:16 | ...; | true | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:50:9:53:9 | {...} | true | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:20 | ...; | true | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:54:16:54:16 | access to local variable y | false | +| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:20 | ...; | true | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:61:9:64:9 | {...} | true | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:20 | ...; | true | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:65:9:66:16 | if (...) ... | false | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:66:13:66:16 | ...; | false | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:67:16:67:16 | access to local variable y | false | +| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:20 | ...; | true | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:66:13:66:16 | ...; | true | | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:74:22:74:22 | String _ | false | | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:77:17:77:20 | ...; | false | | Conditions.cs:74:9:80:9 | foreach (... ... in ...) ... | Conditions.cs:78:13:79:26 | if (...) ... | false | @@ -1234,80 +783,42 @@ conditionBlock | Conditions.cs:90:22:90:22 | String _ | Conditions.cs:93:17:93:20 | ...; | true | | Conditions.cs:94:13:95:26 | if (...) ... | Conditions.cs:95:17:95:26 | ...; | true | | Conditions.cs:96:13:97:20 | if (...) ... | Conditions.cs:97:17:97:20 | ...; | true | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | true | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | false | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | false | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | true | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:17:108:18 | [false] !... | true | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:17:108:18 | [true] !... | false | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:109:17:109:24 | ...; | false | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | true | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:108:17:108:18 | [false] !... | true | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | true | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | true | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:109:17:109:24 | ...; | true | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | false | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:109:17:109:24 | ...; | false | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | true | +| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:106:13:106:20 | ...; | true | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | true | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | true | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | true | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | true | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | true | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | false | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | false | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | true | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | exit M9 (normal) | false | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | true | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | true | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | true | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | true | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | true | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | true | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | true | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | true | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | false | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | false | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | true | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | false | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:122:17:122:25 | ...; | false | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | true | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | {...} | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | false | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | false | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | false | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | false | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | false | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | true | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | false | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:147:13:147:49 | ...; | true | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:149:13:149:49 | ...; | false | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:147:13:147:49 | ...; | true | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:149:13:149:49 | ...; | false | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | false | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | false | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | true | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [false] !... | true | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [true] !... | false | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:120:17:120:23 | ...; | false | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | true | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:122:17:122:25 | ...; | true | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | true | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:134:13:139:13 | {...} | true | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:136:17:138:17 | {...} | true | +| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | {...} | true | +| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:136:17:138:17 | {...} | true | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:136:17:138:17 | {...} | true | +| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:21:145:23 | "a" | true | +| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:27:145:29 | "b" | false | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:147:13:147:49 | ...; | true | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:149:13:149:49 | ...; | false | +| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:45:9:47:9 | {...} | true | +| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:48:9:51:9 | catch (...) {...} | false | +| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:49:9:51:9 | {...} | false | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | true | | ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | false | | ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:69:19:69:33 | object creation of type Exception | true | | ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:75:19:75:33 | object creation of type Exception | true | @@ -1322,29 +833,32 @@ conditionBlock | ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | true | | ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:143:13:143:43 | ...; | true | | ExitMethods.cs:140:17:140:42 | enter ExceptionDispatchInfoThrow | ExitMethods.cs:145:13:145:53 | ...; | false | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | true | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:27:9:29:9 | {...} | true | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | false | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | false | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | false | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | false | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | false | -| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:27:9:29:9 | {...} | true | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | true | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | true | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | false | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | false | -| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:34:27:34:32 | throw ...; | true | -| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | true | -| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | true | -| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:62:9:64:9 | {...} | true | -| 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: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:26:65:26 | [exception: Exception] Exception e | Finally.cs:66:9:67:9 | {...} | true | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | true | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:27:9:29:9 | {...} | true | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | false | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | false | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:27:9:29:9 | {...} | true | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | true | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | true | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | false | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | false | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | false | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:34:27:34:32 | throw ...; | true | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | true | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | false | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | true | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:62:9:64:9 | {...} | true | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | false | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | false | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | false | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:62:9:64:9 | {...} | true | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | true | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | true | +| Finally.cs:65:26:65:26 | 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 | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:82:21:82:27 | return ...; | true | @@ -1353,254 +867,65 @@ conditionBlock | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:85:17:86:26 | if (...) ... | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:86:21:86:26 | break; | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:89:13:99:13 | {...} | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | [finally: break] throw ...; | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | [finally: return] throw ...; | true | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | throw ...; | true | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | true | -| 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] {...} | 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] {...} | 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] {...} | 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 | | Finally.cs:78:9:100:9 | {...} | Finally.cs:83:17:84:29 | if (...) ... | false | | Finally.cs:78:9:100:9 | {...} | Finally.cs:84:21:84:29 | continue; | false | | Finally.cs:78:9:100:9 | {...} | Finally.cs:85:17:86:26 | if (...) ... | false | | Finally.cs:78:9:100:9 | {...} | Finally.cs:86:21:86:26 | break; | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:89:13:99:13 | {...} | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | [finally: break] throw ...; | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | [finally: return] throw ...; | true | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | throw ...; | false | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | false | -| 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] {...} | 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] {...} | 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] {...} | 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] {...} | 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 | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:86:21:86:26 | break; | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:89:13:99:13 | {...} | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:25:93:46 | [finally: break] throw ...; | false | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | true | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:25:93:46 | throw ...; | false | -| 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] {...} | 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] {...} | 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] {...} | 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 | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:25:93:46 | [finally: break] throw ...; | true | -| 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] {...} | 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] {...} | 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] {...} | 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 | | Finally.cs:107:33:107:33 | 0 | Finally.cs:109:17:109:28 | access to property Length | false | | Finally.cs:107:33:107:33 | 0 | Finally.cs:109:33:109:33 | 1 | false | | 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: 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: 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: return] ...; | true | -| 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: 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 | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:115:17:115:41 | [finally: return] ...; | false | | 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] !... | false | -| 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:116:13:117:37 | if (...) ... | false | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | ...; | 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] !... | 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] 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] {...} | 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] 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] "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, 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, 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] 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] 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | true | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:162:13:164:13 | {...} | true | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:162:13:164:13 | {...} | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:21:180:43 | throw ...; | true | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:25:186:47 | throw ...; | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:189:13:191:13 | {...} | true | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:189:13:191:13 | {...} | true | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | true | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:31:190:46 | 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] {...} | 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] 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] 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] {...} | 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] 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] ...; | 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] {...} | 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] 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: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:208:13:210:13 | {...} | Finally.cs:213:9:213:25 | ...; | 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] {...} | 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] 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] 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] {...} | 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: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] {...} | 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 | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:22:8:24 | String arg | false | | Foreach.cs:14:9:15:13 | foreach (... ... in ...) ... | Foreach.cs:12:10:12:11 | exit M2 (normal) | true | @@ -1615,60 +940,51 @@ conditionBlock | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | exit M6 (normal) | true | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | false | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:10:13:10:19 | return ...; | true | +| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | false | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:22:11:24 | String arg | false | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:29:11:32 | access to parameter args | false | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:22:11:24 | String arg | false | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | false | -| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:22:18:22 | String x | false | -| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | true | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | false | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | true | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | false | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | true | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | false | +| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | false | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | false | -| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:26:25:29 | Char arg0 | false | -| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | true | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | false | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:22:40:22 | String x | false | -| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:41:26:41:26 | String y | false | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | false | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | true | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | false | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | true | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | false | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:26:41:26 | String y | false | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | true | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | true | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | false | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | false | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | false | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | false | +| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | true | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:48:22:48:22 | String x | false | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:50:9:50:13 | Label: | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:22:58:22 | String x | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | false | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | false | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | false | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | false | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | true | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | false | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | true | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | false | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | false | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | true | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | false | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | false | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | false | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | false | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:61:17:61:37 | ...; | true | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | true | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [false] !... | true | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [true] !... | false | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:70:13:70:19 | return ...; | false | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:71:9:71:21 | ...; | true | +| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | true | +| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:22:72:24 | String arg | true | | LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | false | +| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | false | +| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:22:72:24 | String arg | false | | LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | true | -| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | true | -| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | true | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | false | -| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:22:97:22 | String x | false | -| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | true | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | false | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | true | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | false | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | true | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | false | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | true | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | false | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:28:3:28 | 0 | true | | NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:25:5:34 | [true] ... ?? ... | true | | NullCoalescing.cs:5:9:5:10 | enter M2 | NullCoalescing.cs:5:30:5:34 | false | true | @@ -2360,6 +1676,9 @@ conditionBlock | cflow.cs:250:13:250:19 | case ...: | cflow.cs:253:13:253:19 | case ...: | false | | cflow.cs:250:13:250:19 | case ...: | cflow.cs:254:17:254:27 | goto ...; | false | | cflow.cs:253:13:253:19 | case ...: | cflow.cs:254:17:254:27 | goto ...; | true | +| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield | false | +| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (abnormal) | false | +| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (normal) | false | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:265:9:267:9 | {...} | true | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:268:9:276:9 | try {...} ... | false | | cflow.cs:298:10:298:10 | enter M | cflow.cs:300:44:300:51 | [false] !... | true | @@ -2391,111 +1710,98 @@ conditionFlow | Assert.cs:51:20:51:20 | access to parameter b | Assert.cs:51:31:51:32 | "" | false | | Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | true | | Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | false | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | [b (line 56): true] null | true | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | [b (line 56): false] "" | false | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | true | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | true | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | null | true | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | "" | false | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | true | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | false | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:59:23:59:36 | [false] ... && ... | false | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | [b (line 63): true] null | true | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | [b (line 63): false] "" | false | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | false | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | false | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [false] ... && ... | false | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | null | true | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | "" | false | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | false | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | true | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | [b (line 70): true] null | true | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | [b (line 70): false] "" | false | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | true | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | true | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | null | true | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | "" | false | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | true | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | false | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:73:23:73:36 | [false] ... && ... | false | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | [b (line 77): true] null | true | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | [b (line 77): false] "" | false | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | false | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | false | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [false] ... && ... | false | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | null | true | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | "" | false | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | false | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | true | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | [b (line 84): true] null | true | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | [b (line 84): false] "" | false | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | false | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | true | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | false | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | true | -| Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | Assert.cs:90:24:90:25 | [b (line 84): false] "" | false | -| Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | Assert.cs:90:17:90:20 | [b (line 84): true] null | true | -| Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | Assert.cs:94:24:94:25 | [b (line 84): false] "" | false | -| Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | Assert.cs:94:17:94:20 | [b (line 84): true] null | true | -| Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | Assert.cs:98:24:98:25 | [b (line 84): false] "" | false | -| Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | true | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| 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:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | false | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| 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:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| 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:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | null | true | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | "" | false | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | false | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | true | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:17:90:20 | null | true | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:24:90:25 | "" | false | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:17:94:20 | null | true | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:24:94:25 | "" | false | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:17:98:20 | null | true | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:24:98:25 | "" | false | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:17:102:20 | null | true | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:24:102:25 | "" | false | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:17:106:20 | null | true | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:24:106:25 | "" | false | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:17:110:20 | null | true | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:24:110:25 | "" | false | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:17:114:20 | null | true | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:24:114:25 | "" | false | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | [false] ... && ... | false | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | true | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [false] ... && ... | false | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:24:118:25 | "" | false | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false | +| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | false | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | false | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | false | | Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | false | | Assert.cs:140:25:140:26 | access to parameter b1 | Assert.cs:140:29:140:30 | access to parameter b2 | true | | Assert.cs:140:29:140:30 | [assertion failure] access to parameter b2 | Assert.cs:140:33:140:34 | [assertion failure] access to parameter b3 | false | @@ -2510,74 +1816,51 @@ conditionFlow | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:30:13:33:13 | {...} | false | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | false | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:32:21:32:21 | ; | true | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:32:21:32:21 | [finally: break] ; | true | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:35:7:35:7 | ; | false | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:35:7:35:7 | ; | false | | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:43:17:43:23 | return ...; | true | | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:46:9:52:9 | {...} | false | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | false | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:50:21:50:26 | break; | true | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | false | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:50:21:50:26 | [finally: return] break; | true | | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:61:17:61:23 | return ...; | true | | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:64:9:70:9 | {...} | false | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | false | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | true | -| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | false | -| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:68:21:68:26 | [finally: return] break; | true | | ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:14:20:14:20 | 0 | true | | ConditionalAccess.cs:13:13:13:25 | ... > ... | ConditionalAccess.cs:16:20:16:20 | 1 | false | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | true | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | false | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | ...; | true | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | false | | Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | false | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | true | -| Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | false | -| Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | true | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | true | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | false | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | true | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | true | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | true | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | false | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | ...; | true | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | if (...) ... | false | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:17:13:18:20 | if (...) ... | true | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | | Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:19:16:19:16 | access to local variable x | false | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | true | -| Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | false | -| Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | true | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | true | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | false | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | true | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | false | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | true | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | false | -| Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | false | -| Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | true | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | ...; | true | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... | false | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | true | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | false | | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:38:13:38:20 | ...; | true | | Conditions.cs:37:13:37:14 | access to parameter b1 | Conditions.cs:39:9:40:16 | if (...) ... | false | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | true | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | false | -| Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | false | -| Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | true | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | ...; | true | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | false | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | true | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | false | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | true | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | true | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | -| Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | false | -| Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | false | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | access to parameter x | false | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | ...; | true | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | true | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | false | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | true | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | false | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | false | -| Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | false | -| Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | false | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true | -| Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | false | -| Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | Conditions.cs:66:13:66:16 | ...; | true | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | access to parameter x | false | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | ...; | true | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | true | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | false | | Conditions.cs:76:17:76:17 | access to local variable b | Conditions.cs:77:17:77:20 | ...; | true | @@ -2592,41 +1875,31 @@ conditionFlow | Conditions.cs:94:17:94:21 | ... > ... | Conditions.cs:96:13:97:20 | if (...) ... | false | | Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:90:9:98:9 | foreach (... ... in ...) ... | false | | Conditions.cs:96:17:96:17 | access to local variable b | Conditions.cs:97:17:97:20 | ...; | true | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | true | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | false | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | true | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | true | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | ...; | true | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | if (...) ... | false | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:108:13:109:24 | if (...) ... | true | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | | Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:110:16:110:16 | access to local variable x | false | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | true | -| Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | false | -| Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | true | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | true | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | false | | Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:113:10:113:11 | exit M9 (normal) | false | | Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:117:9:123:9 | {...} | true | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | false | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | false | -| Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | false | -| Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | Conditions.cs:122:17:122:25 | ...; | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | +| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:121:13:122:25 | if (...) ... | false | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | true | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false] !... | true | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true] !... | false | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | false | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:122:17:122:25 | ...; | true | | Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | false | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | false | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | false | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | false | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | true | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | false | -| Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | Conditions.cs:149:13:149:49 | ...; | false | -| Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | Conditions.cs:147:13:147:49 | ...; | true | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:131:16:131:19 | true | false | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | {...} | true | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:131:16:131:19 | true | false | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:136:17:138:17 | {...} | true | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | "a" | true | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | "b" | false | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:147:13:147:49 | ...; | true | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:149:13:149:49 | ...; | false | | 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:74:13:74:13 | access to parameter b | ExitMethods.cs:75:19:75:33 | object creation of type Exception | true | @@ -2641,10 +1914,10 @@ conditionFlow | ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | true | | 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 | -| Finally.cs:26:48:26:51 | [exception: Exception] true | Finally.cs:27:9:29:9 | {...} | true | +| Finally.cs:26:48:26:51 | true | Finally.cs:27:9:29:9 | {...} | true | | Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; | true | -| Finally.cs:61:48:61:51 | [exception: Exception] true | Finally.cs:62:9:64:9 | {...} | true | -| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:66:9:67:9 | {...} | true | +| Finally.cs:61:48:61:51 | true | Finally.cs:62:9:64:9 | {...} | true | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:66:9:67:9 | {...} | true | | Finally.cs:77:16:77:20 | ... > ... | Finally.cs:74:10:74:11 | exit M4 (normal) | false | | Finally.cs:77:16:77:20 | ... > ... | Finally.cs:78:9:100:9 | {...} | true | | Finally.cs:81:21:81:26 | ... == ... | Finally.cs:82:21:82:27 | return ...; | true | @@ -2655,82 +1928,45 @@ conditionFlow | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:89:13:99:13 | {...} | false | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:93:31:93:45 | object creation of type Exception | true | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:96:17:98:17 | {...} | false | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | true | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:96:17:98:17 | [finally: break] {...} | false | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:96:17:98:17 | [finally: continue] {...} | false | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:96:17:98:17 | [finally: return] {...} | false | | 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: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] !... | 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] !... | 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] ... == ... | 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] ... > ... | 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] ... == ... | 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, 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, 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, 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, b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:162:13:164:13 | {...} | true | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | true | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | {...} | false | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | true | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | true | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:31:190:46 | 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] 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] 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] 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 | | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | false | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | false | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | false | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | true | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | ...; | true | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | false | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | false | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:63:17:63:37 | ...; | true | | LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | false | | LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | true | | LoopUnrolling.cs:69:14:69:23 | call to method Any | LoopUnrolling.cs:69:13:69:23 | [false] !... | true | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index bc5082c4c18e..8904dfb311bd 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -465,27 +465,20 @@ dominance | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:57:5:61:5 | {...} | | Assert.cs:57:5:61:5 | {...} | Assert.cs:58:9:58:33 | ... ...; | | Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:20:58:20 | access to parameter b | -| Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | Assert.cs:59:9:59:38 | [b (line 56): false] ...; | -| Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | Assert.cs:59:9:59:38 | [b (line 56): true] ...; | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | [b (line 56): true] null | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | [b (line 56): false] "" | -| Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | -| 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:58:16:58:32 | String s = ... | Assert.cs:59:9:59:38 | ...; | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | null | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | "" | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:16:58:32 | String s = ... | | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | | 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 | -| Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | Assert.cs:59:28:59:31 | [b (line 56): false] null | -| Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | Assert.cs:59:28:59:31 | [b (line 56): true] null | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | +| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:23:59:23 | access to local variable s | +| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:28:59:31 | null | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | -| Assert.cs:59:28:59:31 | [b (line 56): false] null | Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | -| Assert.cs:59:28:59:31 | [b (line 56): true] null | Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | +| Assert.cs:59:28:59:31 | null | Assert.cs:59:23:59:31 | ... != ... | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | | Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | exit M8 (normal) | | Assert.cs:60:9:60:36 | ...; | Assert.cs:60:27:60:27 | access to local variable s | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:34 | access to property Length | @@ -493,27 +486,20 @@ dominance | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:64:5:68:5 | {...} | | Assert.cs:64:5:68:5 | {...} | Assert.cs:65:9:65:33 | ... ...; | | Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:20:65:20 | access to parameter b | -| Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | Assert.cs:66:9:66:39 | [b (line 63): false] ...; | -| Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | Assert.cs:66:9:66:39 | [b (line 63): true] ...; | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | [b (line 63): true] null | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | [b (line 63): false] "" | -| Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | -| 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:65:16:65:32 | String s = ... | Assert.cs:66:9:66:39 | ...; | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | null | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | "" | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:16:65:32 | String s = ... | | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | | 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 | -| Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | Assert.cs:66:29:66:32 | [b (line 63): false] null | -| Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | Assert.cs:66:29:66:32 | [b (line 63): true] null | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | +| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:24:66:24 | access to local variable s | +| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:29:66:32 | null | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | -| Assert.cs:66:29:66:32 | [b (line 63): false] null | Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | -| Assert.cs:66:29:66:32 | [b (line 63): true] null | Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | +| Assert.cs:66:29:66:32 | null | Assert.cs:66:24:66:32 | ... == ... | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | | Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | exit M9 (normal) | | Assert.cs:67:9:67:36 | ...; | Assert.cs:67:27:67:27 | access to local variable s | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:34 | access to property Length | @@ -521,27 +507,20 @@ dominance | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:71:5:75:5 | {...} | | Assert.cs:71:5:75:5 | {...} | Assert.cs:72:9:72:33 | ... ...; | | Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:20:72:20 | access to parameter b | -| Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | Assert.cs:73:9:73:38 | [b (line 70): false] ...; | -| Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | Assert.cs:73:9:73:38 | [b (line 70): true] ...; | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | [b (line 70): true] null | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | [b (line 70): false] "" | -| Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | -| 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:72:16:72:32 | String s = ... | Assert.cs:73:9:73:38 | ...; | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | null | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | "" | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:16:72:32 | String s = ... | | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | | 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 | -| Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | Assert.cs:73:28:73:31 | [b (line 70): false] null | -| Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | Assert.cs:73:28:73:31 | [b (line 70): true] null | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | +| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:23:73:23 | access to local variable s | +| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:28:73:31 | null | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | -| Assert.cs:73:28:73:31 | [b (line 70): false] null | Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | -| Assert.cs:73:28:73:31 | [b (line 70): true] null | Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | +| Assert.cs:73:28:73:31 | null | Assert.cs:73:23:73:31 | ... == ... | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | | Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | exit M10 (normal) | | Assert.cs:74:9:74:36 | ...; | Assert.cs:74:27:74:27 | access to local variable s | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:34 | access to property Length | @@ -549,27 +528,20 @@ dominance | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:78:5:82:5 | {...} | | Assert.cs:78:5:82:5 | {...} | Assert.cs:79:9:79:33 | ... ...; | | Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:20:79:20 | access to parameter b | -| Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | Assert.cs:80:9:80:39 | [b (line 77): false] ...; | -| Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | Assert.cs:80:9:80:39 | [b (line 77): true] ...; | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | [b (line 77): true] null | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | [b (line 77): false] "" | -| Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | -| 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:79:16:79:32 | String s = ... | Assert.cs:80:9:80:39 | ...; | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | null | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | "" | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:16:79:32 | String s = ... | | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | | 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 | -| Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | Assert.cs:80:29:80:32 | [b (line 77): false] null | -| Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | Assert.cs:80:29:80:32 | [b (line 77): true] null | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | +| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:24:80:24 | access to local variable s | +| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:29:80:32 | null | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | -| Assert.cs:80:29:80:32 | [b (line 77): false] null | Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | -| Assert.cs:80:29:80:32 | [b (line 77): true] null | Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | +| Assert.cs:80:29:80:32 | null | Assert.cs:80:24:80:32 | ... != ... | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | | Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | exit M11 (normal) | | Assert.cs:81:9:81:36 | ...; | Assert.cs:81:27:81:27 | access to local variable s | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:34 | access to property Length | @@ -577,287 +549,178 @@ dominance | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:85:5:129:5 | {...} | | Assert.cs:85:5:129:5 | {...} | Assert.cs:86:9:86:33 | ... ...; | | Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:20:86:20 | access to parameter b | -| Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | Assert.cs:87:9:87:32 | [b (line 84): false] ...; | -| Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | Assert.cs:87:9:87:32 | [b (line 84): true] ...; | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | [b (line 84): false] "" | -| Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | -| Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:88:9:88:36 | [b (line 84): false] ...; | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:88:9:88:36 | [b (line 84): true] ...; | -| Assert.cs:87:9:87:32 | [b (line 84): false] ...; | Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | -| Assert.cs:87:9:87:32 | [b (line 84): true] ...; | Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | -| Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | Assert.cs:87:27:87:30 | [b (line 84): false] null | -| Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | Assert.cs:87:27:87:30 | [b (line 84): true] null | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:87:27:87:30 | [b (line 84): false] null | Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | -| Assert.cs:87:27:87:30 | [b (line 84): true] null | Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | -| Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | Assert.cs:90:9:90:26 | [b (line 84): false] ...; | -| Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | Assert.cs:90:9:90:26 | [b (line 84): true] ...; | -| Assert.cs:88:9:88:36 | [b (line 84): false] ...; | Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | -| Assert.cs:88:9:88:36 | [b (line 84): true] ...; | Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | -| Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | -| Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | -| Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | Assert.cs:91:9:91:25 | [b (line 84): false] ...; | -| Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | Assert.cs:91:9:91:25 | [b (line 84): true] ...; | -| Assert.cs:90:9:90:26 | [b (line 84): false] ...; | Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | -| Assert.cs:90:9:90:26 | [b (line 84): true] ...; | Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | -| Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | Assert.cs:90:24:90:25 | [b (line 84): false] "" | -| Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | -| 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 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 | -| Assert.cs:91:9:91:25 | [b (line 84): true] ...; | Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | -| Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | -| Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | -| Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | -| Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | Assert.cs:94:9:94:26 | [b (line 84): false] ...; | -| Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | Assert.cs:94:9:94:26 | [b (line 84): true] ...; | -| Assert.cs:92:9:92:36 | [b (line 84): false] ...; | Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | -| Assert.cs:92:9:92:36 | [b (line 84): true] ...; | Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | -| Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | -| Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | -| Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | Assert.cs:95:9:95:28 | [b (line 84): false] ...; | -| Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | Assert.cs:95:9:95:28 | [b (line 84): true] ...; | -| Assert.cs:94:9:94:26 | [b (line 84): false] ...; | Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | -| Assert.cs:94:9:94:26 | [b (line 84): true] ...; | Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | -| Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | -| 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 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 | -| Assert.cs:95:9:95:28 | [b (line 84): true] ...; | Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | -| Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | Assert.cs:98:9:98:26 | [b (line 84): false] ...; | -| Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | Assert.cs:98:9:98:26 | [b (line 84): true] ...; | -| Assert.cs:96:9:96:36 | [b (line 84): false] ...; | Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | -| Assert.cs:96:9:96:36 | [b (line 84): true] ...; | Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | -| Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | -| Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | -| Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | Assert.cs:99:9:99:33 | [b (line 84): false] ...; | -| Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | Assert.cs:99:9:99:33 | [b (line 84): true] ...; | -| Assert.cs:98:9:98:26 | [b (line 84): false] ...; | Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | -| Assert.cs:98:9:98:26 | [b (line 84): true] ...; | Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | -| Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | -| 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 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 | -| Assert.cs:99:9:99:33 | [b (line 84): true] ...; | Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | -| Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | Assert.cs:99:28:99:31 | [b (line 84): false] null | -| Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | Assert.cs:99:28:99:31 | [b (line 84): true] null | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:99:28:99:31 | [b (line 84): false] null | Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | -| Assert.cs:99:28:99:31 | [b (line 84): true] null | Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | -| Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | Assert.cs:102:9:102:26 | [b (line 84): false] ...; | -| Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | Assert.cs:102:9:102:26 | [b (line 84): true] ...; | -| Assert.cs:100:9:100:36 | [b (line 84): false] ...; | Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | -| Assert.cs:100:9:100:36 | [b (line 84): true] ...; | Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | -| Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | -| Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | -| Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | Assert.cs:103:9:103:33 | [b (line 84): false] ...; | -| Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | Assert.cs:103:9:103:33 | [b (line 84): true] ...; | -| Assert.cs:102:9:102:26 | [b (line 84): false] ...; | Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | -| Assert.cs:102:9:102:26 | [b (line 84): true] ...; | Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | -| Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | -| 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 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 | -| Assert.cs:103:9:103:33 | [b (line 84): true] ...; | Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | -| Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | Assert.cs:103:28:103:31 | [b (line 84): false] null | -| Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | Assert.cs:103:28:103:31 | [b (line 84): true] null | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:103:28:103:31 | [b (line 84): false] null | Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | -| Assert.cs:103:28:103:31 | [b (line 84): true] null | Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | -| Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | Assert.cs:106:9:106:26 | [b (line 84): false] ...; | -| Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | Assert.cs:106:9:106:26 | [b (line 84): true] ...; | -| Assert.cs:104:9:104:36 | [b (line 84): false] ...; | Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | -| Assert.cs:104:9:104:36 | [b (line 84): true] ...; | Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | -| Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | -| Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | -| Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | Assert.cs:107:9:107:34 | [b (line 84): false] ...; | -| Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | Assert.cs:107:9:107:34 | [b (line 84): true] ...; | -| Assert.cs:106:9:106:26 | [b (line 84): false] ...; | Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | -| Assert.cs:106:9:106:26 | [b (line 84): true] ...; | Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | -| Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | -| 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 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 | -| Assert.cs:107:9:107:34 | [b (line 84): true] ...; | Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | -| Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | Assert.cs:107:29:107:32 | [b (line 84): false] null | -| Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | Assert.cs:107:29:107:32 | [b (line 84): true] null | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:107:29:107:32 | [b (line 84): false] null | Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | -| Assert.cs:107:29:107:32 | [b (line 84): true] null | Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | -| Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | Assert.cs:110:9:110:26 | [b (line 84): false] ...; | -| Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | Assert.cs:110:9:110:26 | [b (line 84): true] ...; | -| Assert.cs:108:9:108:36 | [b (line 84): false] ...; | Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | -| Assert.cs:108:9:108:36 | [b (line 84): true] ...; | Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | -| Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | -| Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | -| Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | Assert.cs:111:9:111:34 | [b (line 84): false] ...; | -| Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | Assert.cs:111:9:111:34 | [b (line 84): true] ...; | -| Assert.cs:110:9:110:26 | [b (line 84): false] ...; | Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | -| Assert.cs:110:9:110:26 | [b (line 84): true] ...; | Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | -| Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | -| 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 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 | -| Assert.cs:111:9:111:34 | [b (line 84): true] ...; | Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | -| Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | Assert.cs:111:29:111:32 | [b (line 84): false] null | -| Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | Assert.cs:111:29:111:32 | [b (line 84): true] null | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:111:29:111:32 | [b (line 84): false] null | Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | -| Assert.cs:111:29:111:32 | [b (line 84): true] null | Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | -| Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | Assert.cs:114:9:114:26 | [b (line 84): false] ...; | -| Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | Assert.cs:114:9:114:26 | [b (line 84): true] ...; | -| Assert.cs:112:9:112:36 | [b (line 84): false] ...; | Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | -| Assert.cs:112:9:112:36 | [b (line 84): true] ...; | Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | -| Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | -| Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | -| Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | Assert.cs:115:9:115:38 | [b (line 84): false] ...; | -| Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | Assert.cs:115:9:115:38 | [b (line 84): true] ...; | -| Assert.cs:114:9:114:26 | [b (line 84): false] ...; | Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | -| Assert.cs:114:9:114:26 | [b (line 84): true] ...; | Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | -| Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | -| 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 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 | -| Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | Assert.cs:115:28:115:31 | [b (line 84): false] null | -| Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | Assert.cs:115:28:115:31 | [b (line 84): true] null | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:28:115:31 | [b (line 84): false] null | Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | -| Assert.cs:115:28:115:31 | [b (line 84): true] null | Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | Assert.cs:118:9:118:26 | [b (line 84): true] ...; | -| Assert.cs:116:9:116:36 | [b (line 84): true] ...; | Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | -| Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | -| Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | Assert.cs:119:9:119:40 | [b (line 84): true] ...; | -| Assert.cs:118:9:118:26 | [b (line 84): true] ...; | Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | -| 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 | -| 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 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 | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:119:29:119:32 | [b (line 84): true] null | Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | Assert.cs:122:9:122:26 | [b (line 84): true] ...; | -| Assert.cs:120:9:120:36 | [b (line 84): true] ...; | Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | -| Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | -| Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | Assert.cs:123:9:123:38 | [b (line 84): true] ...; | -| Assert.cs:122:9:122:26 | [b (line 84): true] ...; | Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | -| 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 | -| 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 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 | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:28:123:31 | [b (line 84): true] null | Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | Assert.cs:126:9:126:26 | [b (line 84): true] ...; | -| Assert.cs:124:9:124:36 | [b (line 84): true] ...; | Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | -| Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | -| Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | Assert.cs:127:9:127:40 | [b (line 84): true] ...; | -| Assert.cs:126:9:126:26 | [b (line 84): true] ...; | Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | -| 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 | -| 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:86:16:86:32 | String s = ... | Assert.cs:87:9:87:32 | ...; | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | null | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:16:86:32 | String s = ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:88:9:88:36 | ...; | +| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:22:87:22 | access to local variable s | +| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:27:87:30 | null | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:87:27:87:30 | null | Assert.cs:87:22:87:30 | ... != ... | +| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:90:9:90:26 | ...; | +| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:27:88:27 | access to local variable s | +| Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:27:88:34 | access to property Length | +| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:9:88:35 | call to method WriteLine | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:91:9:91:25 | ...; | +| Assert.cs:90:9:90:26 | ...; | Assert.cs:90:13:90:13 | access to parameter b | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:17:90:20 | null | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:24:90:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:9:90:25 | ... = ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:92:9:92:36 | ...; | +| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:23:91:23 | access to local variable s | +| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | +| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:94:9:94:26 | ...; | +| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:27:92:27 | access to local variable s | +| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:34 | access to property Length | +| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:9:92:35 | call to method WriteLine | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:95:9:95:28 | ...; | +| Assert.cs:94:9:94:26 | ...; | Assert.cs:94:13:94:13 | access to parameter b | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:17:94:20 | null | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:24:94:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:9:94:25 | ... = ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:96:9:96:36 | ...; | +| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:26:95:26 | access to local variable s | +| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:98:9:98:26 | ...; | +| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:27:96:27 | access to local variable s | +| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:34 | access to property Length | +| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:9:96:35 | call to method WriteLine | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:99:9:99:33 | ...; | +| Assert.cs:98:9:98:26 | ...; | Assert.cs:98:13:98:13 | access to parameter b | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:17:98:20 | null | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:24:98:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:9:98:25 | ... = ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:100:9:100:36 | ...; | +| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:23:99:23 | access to local variable s | +| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:28:99:31 | null | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:99:28:99:31 | null | Assert.cs:99:23:99:31 | ... == ... | +| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:102:9:102:26 | ...; | +| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:27:100:27 | access to local variable s | +| Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:27:100:34 | access to property Length | +| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:9:100:35 | call to method WriteLine | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:103:9:103:33 | ...; | +| Assert.cs:102:9:102:26 | ...; | Assert.cs:102:13:102:13 | access to parameter b | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:17:102:20 | null | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:24:102:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:9:102:25 | ... = ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:104:9:104:36 | ...; | +| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:23:103:23 | access to local variable s | +| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:28:103:31 | null | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:103:28:103:31 | null | Assert.cs:103:23:103:31 | ... != ... | +| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:106:9:106:26 | ...; | +| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:27:104:27 | access to local variable s | +| Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:27:104:34 | access to property Length | +| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:9:104:35 | call to method WriteLine | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:107:9:107:34 | ...; | +| Assert.cs:106:9:106:26 | ...; | Assert.cs:106:13:106:13 | access to parameter b | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:17:106:20 | null | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:24:106:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:9:106:25 | ... = ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:108:9:108:36 | ...; | +| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:24:107:24 | access to local variable s | +| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:29:107:32 | null | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:107:29:107:32 | null | Assert.cs:107:24:107:32 | ... != ... | +| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:110:9:110:26 | ...; | +| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:27:108:27 | access to local variable s | +| Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:27:108:34 | access to property Length | +| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:9:108:35 | call to method WriteLine | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:111:9:111:34 | ...; | +| Assert.cs:110:9:110:26 | ...; | Assert.cs:110:13:110:13 | access to parameter b | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:17:110:20 | null | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:24:110:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:9:110:25 | ... = ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:112:9:112:36 | ...; | +| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:24:111:24 | access to local variable s | +| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:29:111:32 | null | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:111:29:111:32 | null | Assert.cs:111:24:111:32 | ... == ... | +| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:114:9:114:26 | ...; | +| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:27:112:27 | access to local variable s | +| Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:27:112:34 | access to property Length | +| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:9:112:35 | call to method WriteLine | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:115:9:115:38 | ...; | +| Assert.cs:114:9:114:26 | ...; | Assert.cs:114:13:114:13 | access to parameter b | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:17:114:20 | null | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:24:114:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:9:114:25 | ... = ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:116:9:116:36 | ...; | +| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:23:115:23 | access to local variable s | +| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:28:115:31 | null | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:28:115:31 | null | Assert.cs:115:23:115:31 | ... != ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:118:9:118:26 | ...; | +| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:27:116:27 | access to local variable s | +| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:34 | access to property Length | +| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:9:116:35 | call to method WriteLine | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:119:9:119:40 | ...; | +| Assert.cs:118:9:118:26 | ...; | Assert.cs:118:13:118:13 | access to parameter b | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:17:118:20 | null | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:24:118:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:9:118:25 | ... = ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:120:9:120:36 | ...; | +| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:24:119:24 | access to local variable s | +| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:29:119:32 | null | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:29:119:32 | null | Assert.cs:119:24:119:32 | ... == ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:122:9:122:26 | ...; | +| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:27:120:27 | access to local variable s | +| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:34 | access to property Length | +| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:9:120:35 | call to method WriteLine | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:123:9:123:38 | ...; | +| Assert.cs:122:9:122:26 | ...; | Assert.cs:122:13:122:13 | access to parameter b | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:17:122:20 | null | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:24:122:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:9:122:25 | ... = ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:124:9:124:36 | ...; | +| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:23:123:23 | access to local variable s | +| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:28:123:31 | null | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:28:123:31 | null | Assert.cs:123:23:123:31 | ... == ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:126:9:126:26 | ...; | +| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:27:124:27 | access to local variable s | +| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:34 | access to property Length | +| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:9:124:35 | call to method WriteLine | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:127:9:127:40 | ...; | +| Assert.cs:126:9:126:26 | ...; | Assert.cs:126:13:126:13 | access to parameter b | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:17:126:20 | null | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:24:126:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:9:126:25 | ... = ... | | 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 | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | +| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:24:127:24 | access to local variable s | +| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:29:127:32 | null | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:127:29:127:32 | [b (line 84): true] null | Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | +| Assert.cs:127:29:127:32 | null | Assert.cs:127:24:127:32 | ... != ... | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | | Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | exit M12 (normal) | | Assert.cs:128:9:128:36 | ...; | Assert.cs:128:27:128:27 | access to local variable s | | Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:34 | access to property Length | @@ -963,16 +826,10 @@ dominance | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:27:21:27:26 | break; | | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:30:13:33:13 | {...} | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:26:21:26:31 | ... == ... | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:30:13:33:13 | [finally: break] {...} | -| BreakInTry.cs:30:13:33:13 | [finally: break] {...} | BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:17:32:21 | if (...) ... | -| BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | | BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:31:21:31:24 | access to parameter args | -| BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | BreakInTry.cs:31:29:31:32 | [finally: break] null | | BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:29:31:32 | null | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:32:21:32:21 | [finally: break] ; | -| BreakInTry.cs:31:29:31:32 | [finally: break] null | BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:31:21:31:32 | ... == ... | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | exit M2 (normal) | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:39:5:54:5 | {...} | @@ -985,25 +842,16 @@ dominance | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:43:17:43:23 | return ...; | | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:46:9:52:9 | {...} | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:17:42:28 | ... == ... | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:46:9:52:9 | [finally: return] {...} | -| BreakInTry.cs:46:9:52:9 | [finally: return] {...} | BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | access to parameter args | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:48:13:51:13 | {...} | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:48:13:51:13 | [finally: return] {...} | -| BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | | BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:48:13:51:13 | [finally: return] {...} | BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:49:17:50:26 | if (...) ... | -| BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | | BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:49:21:49:23 | access to local variable arg | -| BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | BreakInTry.cs:49:28:49:31 | [finally: return] null | | BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:28:49:31 | null | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:50:21:50:26 | [finally: return] break; | -| BreakInTry.cs:49:28:49:31 | [finally: return] null | BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:49:21:49:31 | ... == ... | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:57:5:71:5 | {...} | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 | @@ -1015,24 +863,15 @@ dominance | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:61:17:61:23 | return ...; | | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:64:9:70:9 | {...} | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:17:60:28 | ... == ... | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:64:9:70:9 | [finally: return] {...} | -| BreakInTry.cs:64:9:70:9 | [finally: return] {...} | BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | access to parameter args | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:66:13:69:13 | {...} | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:66:13:69:13 | [finally: return] {...} | -| BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | | BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:66:13:69:13 | [finally: return] {...} | BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:67:17:68:26 | if (...) ... | -| BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | | BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:67:21:67:23 | access to local variable arg | -| BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | BreakInTry.cs:67:28:67:31 | [finally: return] null | | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:28:67:31 | null | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:68:21:68:26 | [finally: return] break; | -| BreakInTry.cs:67:28:67:31 | [finally: return] null | BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:31 | ... == ... | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | @@ -1063,15 +902,18 @@ dominance | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:29:5:41:5 | {...} | -| CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:28:10:28:10 | exit M | | 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] {...} | -| 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:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | {...} | +| CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:37:13:37:41 | ...; | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:39:9:39:34 | ...; | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | +| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:31:37:39 | "Finally" | +| CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:27:39:32 | "Dead" | +| CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:9:39:33 | 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" | @@ -1163,16 +1005,14 @@ dominance | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:5:9:6:16 | if (...) ... | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | -| Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | -| Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | -| Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | +| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:15 | ...++ | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:13 | access to parameter x | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | ...-- | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:13 | access to parameter x | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:12:5:20:5 | {...} | @@ -1182,24 +1022,19 @@ dominance | Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:14:9:15:16 | if (...) ... | | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:17 | Int32 x = ... | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | -| Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | -| Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | -| Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | -| Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | -| Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | -| Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:15 | ...++ | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:13 | access to local variable x | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:13 | access to local variable x | +| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:17:16:17 | 0 | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:17:13:18:20 | if (...) ... | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | +| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:13:16:17 | ... > ... | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:17 | access to local variable x | | Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:11:9:11:10 | exit M1 (normal) | @@ -1214,14 +1049,12 @@ dominance | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | -| Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | -| Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | -| Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:19 | ...++ | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:17 | access to local variable x | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | +| Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:13 | access to local variable x | | Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:22:9:22:10 | exit M2 (normal) | @@ -1241,14 +1074,13 @@ dominance | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:18:38:19 | access to parameter b1 | | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:19 | ... = ... | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | -| Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | -| Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | -| Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | -| Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | +| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:15 | ...++ | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:13 | access to local variable x | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:13 | access to local variable x | | Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:33:9:33:10 | exit M3 (normal) | @@ -1260,30 +1092,16 @@ dominance | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:49:9:53:9 | while (...) ... | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:17 | Int32 y = ... | | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:16 | access to parameter x | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | -| Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | ...-- | | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:22:49:22 | 0 | -| Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | -| Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:22 | ... > ... | -| Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | -| Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:13:52:20 | if (...) ... | -| Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | -| Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | -| Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | -| Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:19 | ...++ | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:17 | access to local variable y | | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | exit M4 (normal) | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | return ...; | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:58:5:68:5 | {...} | @@ -1293,35 +1111,19 @@ dominance | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:60:9:64:9 | while (...) ... | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:17 | Int32 y = ... | | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | -| Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | ...-- | | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:22:60:22 | 0 | -| Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | -| Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:22 | ... > ... | -| Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | -| Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:13:63:20 | if (...) ... | -| Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | -| Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | -| Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:19 | ...++ | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:17 | access to local variable y | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | +| Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:13 | access to local variable y | | Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:57:9:57:10 | exit M5 (normal) | @@ -1404,28 +1206,22 @@ dominance | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | call to method ToString | | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:18:106:19 | [b (line 102): true] "" | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | -| Conditions.cs:106:18:106:19 | [b (line 102): true] "" | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | -| Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | -| Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | -| Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | -| Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | -| Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | -| Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | -| Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:18:106:19 | "" | +| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:19 | ... = ... | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:13 | access to local variable x | +| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:13:106:19 | ... + ... | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:13 | access to local variable x | +| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:20 | access to property Length | +| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:24:107:24 | 0 | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:108:13:109:24 | if (...) ... | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | +| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:24 | ... > ... | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" | | Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... = ... | | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:17 | access to local variable x | @@ -1457,73 +1253,43 @@ dominance | Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:24:118:43 | ... == ... | | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:29:118:43 | ... - ... | | Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:18:119:21 | access to local variable last | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:120:21:120:22 | [last (line 118): false] "" | -| Conditions.cs:120:21:120:22 | [last (line 118): false] "" | Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | -| Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | -| Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | Conditions.cs:122:17:122:25 | ...; | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:21:120:22 | "" | +| Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:17:120:22 | ... = ... | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:21:122:24 | null | | Conditions.cs:122:21:122:24 | null | Conditions.cs:122:17:122:24 | ... = ... | | Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:130:5:141:5 | {...} | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:131:9:140:9 | while (...) ... | | Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:131:16:131:19 | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | | Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:133:13:139:13 | if (...) ... | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | | Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:133:17:133:22 | this access | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | {...} | | Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:17:133:22 | access to field Field1 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | -| Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | -| Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:135:17:138:17 | if (...) ... | +| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:135:21:135:26 | this access | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:136:17:138:17 | {...} | +| Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:21:135:26 | access to field Field2 | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:137:21:137:38 | ...; | +| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:37 | call to method ToString | +| Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:26 | access to field Field1 | +| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:26 | this access | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:144:5:150:5 | {...} | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:145:9:145:30 | ... ...; | | Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:17:145:17 | access to parameter b | -| Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | -| Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | -| Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | -| Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | -| Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | -| Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | -| Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | Conditions.cs:149:13:149:49 | ...; | -| Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | Conditions.cs:147:13:147:49 | ...; | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:146:9:149:49 | if (...) ... | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | "b" | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:13:145:29 | String s = ... | +| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:146:13:146:13 | access to parameter b | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:147:13:147:49 | ...; | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:149:13:149:49 | ...; | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:40:147:43 | "a = " | | Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:13:147:48 | call to method WriteLine | | Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:45:147:45 | access to local variable s | @@ -1575,13 +1341,13 @@ dominance | 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 (...) {...} | -| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | +| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | catch (...) {...} | | 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: Exception] catch (...) {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:45:9:47:9 | {...} | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | | 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 | @@ -1741,87 +1507,72 @@ 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] {...} | | 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] {...} | 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] 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 (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] ...; | 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] "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 | {...} | | 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 (...) {...} | +| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | catch (...) {...} | | 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] {...} | -| 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:30:9:40:9 | [exception: Exception] catch (...) {...} | -| 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:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:48:26:51 | true | +| Finally.cs:26:48:26:51 | true | Finally.cs:27:9:29:9 | {...} | | Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | -| 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 | {...} | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:31:9:40:9 | {...} | | Finally.cs:31:9:40:9 | {...} | Finally.cs:32:13:39:13 | try {...} ... | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:33:13:35:13 | {...} | | 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] {...} | -| 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] {...} | 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:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | {...} | +| Finally.cs:37:13:39:13 | {...} | Finally.cs:38:37:38:42 | "Boo!" | +| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:17:38:44 | throw ...; | +| Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:38:23:38:43 | object creation of type Exception | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:45:9:47:9 | {...} | +| Finally.cs:45:9:47:9 | {...} | Finally.cs:46:13:46:19 | 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:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | +| 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] ...; | 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] "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 {...} ... | | 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 (...) {...} | +| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | catch (...) {...} | | 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] {...} | -| 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:65:9:67:9 | [exception: Exception] catch (...) {...} | -| 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:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:48:61:51 | true | +| Finally.cs:61:48:61:51 | true | Finally.cs:62:9:64:9 | {...} | | Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | -| 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: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] {...} | 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:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:35 | access to local variable e | +| Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:35:65:43 | access to property Message | +| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:48:65:51 | null | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:65:48:65:51 | null | Finally.cs:65:35:65:51 | ... != ... | | 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:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | +| 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] ...; | 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] "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 | ... ...; | | Finally.cs:76:9:76:19 | ... ...; | Finally.cs:76:17:76:18 | 10 | @@ -1840,165 +1591,69 @@ dominance | Finally.cs:81:21:81:26 | ... == ... | Finally.cs:82:21:82:27 | return ...; | | Finally.cs:81:21:81:26 | ... == ... | Finally.cs:83:17:84:29 | if (...) ... | | Finally.cs:81:26:81:26 | 0 | Finally.cs:81:21:81:26 | ... == ... | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:89:13:99:13 | [finally: return] {...} | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:21 | access to local variable i | | Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:83:26:83:26 | 1 | | Finally.cs:83:21:83:26 | ... == ... | Finally.cs:84:21:84:29 | continue; | | Finally.cs:83:21:83:26 | ... == ... | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:83:26:83:26 | 1 | Finally.cs:83:21:83:26 | ... == ... | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:89:13:99:13 | [finally: continue] {...} | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:21 | access to local variable i | | Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:26:85:26 | 2 | | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:86:21:86:26 | break; | -| Finally.cs:85:21:85:26 | ... == ... | Finally.cs:89:13:99:13 | {...} | | Finally.cs:85:26:85:26 | 2 | Finally.cs:85:21:85:26 | ... == ... | -| Finally.cs:86:21:86:26 | break; | Finally.cs:89:13:99:13 | [finally: break] {...} | -| Finally.cs:89:13:99:13 | [finally: break] {...} | Finally.cs:90:17:98:17 | [finally: break] try {...} ... | -| Finally.cs:89:13:99:13 | [finally: continue] {...} | Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | -| Finally.cs:89:13:99:13 | [finally: return] {...} | Finally.cs:90:17:98:17 | [finally: return] try {...} ... | | Finally.cs:89:13:99:13 | {...} | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:90:17:98:17 | [finally: break] try {...} ... | Finally.cs:91:17:94:17 | [finally: break] {...} | -| Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | Finally.cs:91:17:94:17 | [finally: continue] {...} | -| Finally.cs:90:17:98:17 | [finally: return] try {...} ... | Finally.cs:91:17:94:17 | [finally: return] {...} | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:91:17:94:17 | {...} | -| Finally.cs:91:17:94:17 | [finally: break] {...} | Finally.cs:92:21:93:46 | [finally: break] if (...) ... | -| Finally.cs:91:17:94:17 | [finally: continue] {...} | Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | -| Finally.cs:91:17:94:17 | [finally: return] {...} | Finally.cs:92:21:93:46 | [finally: return] if (...) ... | | Finally.cs:91:17:94:17 | {...} | Finally.cs:92:21:93:46 | if (...) ... | -| Finally.cs:92:21:93:46 | [finally: break] if (...) ... | Finally.cs:92:25:92:25 | [finally: break] access to local variable i | -| Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | -| Finally.cs:92:21:93:46 | [finally: return] if (...) ... | Finally.cs:92:25:92:25 | [finally: return] access to local variable i | | Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:92:25:92:25 | access to local variable i | -| Finally.cs:92:25:92:25 | [finally: break] access to local variable i | Finally.cs:92:30:92:30 | [finally: break] 3 | -| Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | Finally.cs:92:30:92:30 | [finally: continue] 3 | -| Finally.cs:92:25:92:25 | [finally: return] access to local variable i | Finally.cs:92:30:92:30 | [finally: return] 3 | | Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:30:92:30 | 3 | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:93:31:93:45 | object creation of type Exception | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:96:17:98:17 | {...} | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:96:17:98:17 | [finally: return] {...} | | Finally.cs:92:30:92:30 | 3 | Finally.cs:92:25:92:30 | ... == ... | -| 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: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] {...} | -| 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] {...} | -| 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] {...} | | 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] {...} | -| 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] {...} | 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] {...} | 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] 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] 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] 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:74:10:74:11 | exit M4 (abnormal) | | 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] ...; | 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] ...; | 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] ...; | 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 {...} ... | | Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:106:9:111:9 | {...} | | 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] {...} | +| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | {...} | | 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: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 | ... == ... | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:113:9:118:9 | [finally: 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 | 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: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:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | -| 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] 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] !... | 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] 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] 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] ... == ... | 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] 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] ...; | 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] 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] 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] 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] 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 (abnormal) | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | -| 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] 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] ...; | 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] 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 | | Finally.cs:122:5:131:5 | {...} | Finally.cs:123:9:130:9 | try {...} ... | @@ -2015,16 +1670,13 @@ 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] {...} | | 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] {...} | 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] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception] throw ...; | +| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | | 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] "" | 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 | {...} | @@ -2035,69 +1687,33 @@ dominance | 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: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] {...} | -| 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] 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] {...} | 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] 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] 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] 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:31 | access to property Length | Finally.cs:161:13:164:13 | catch (...) {...} | | Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "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] 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] "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, 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, 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, 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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:165:13:168:13 | catch {...} | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:39 | access to local variable e | +| Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:39:161:47 | access to property Message | +| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:52:161:54 | "1" | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:162:13:164:13 | {...} | +| Finally.cs:161:52:161:54 | "1" | Finally.cs:161:39:161:54 | ... == ... | | 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] ...; | 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] 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] 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] {...} | 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] ...; | 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] "" | 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 | @@ -2115,37 +1731,24 @@ dominance | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:179:9:181:9 | {...} | | Finally.cs:179:9:181:9 | {...} | Finally.cs:180:13:180:43 | if (...) ... | | 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: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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:184:13:191:13 | try {...} ... | +| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:185:13:187:13 | {...} | +| Finally.cs:185:13:187:13 | {...} | Finally.cs:186:17:186:47 | if (...) ... | +| Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:186:21:186:22 | access to parameter b2 | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:17:190:47 | if (...) ... | +| Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:190:21:190:22 | access to parameter b1 | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:25:190:47 | 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 | {...} | @@ -2154,48 +1757,23 @@ dominance | 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: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] {...} | -| 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] 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] {...} | 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] 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] 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: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] {...} | -| 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] 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] 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:195:10:195:12 | exit M10 (abnormal) | | 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] 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] 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] ...; | 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] "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 | @@ -2230,47 +1808,25 @@ dominance | 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: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] {...} | -| 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] 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] {...} | 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] 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] 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: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] {...} | -| 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:54 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | | Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "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] "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] {...} | 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: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] ...; | 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] "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 | @@ -2278,28 +1834,19 @@ 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] {...} | | 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] {...} | 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] 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] ...; | 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] "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 (abnormal) | | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | exit M13 (normal) | -| 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] ...; | 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] 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 | @@ -2579,10 +2126,9 @@ dominance | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:10:13:10:19 | return ...; | | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:13:9:28 | ... == ... | -| LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:12:13:12:35 | ...; | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | -| LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | | LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:16:5:20:5 | {...} | @@ -2596,11 +2142,10 @@ dominance | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:38:17:40 | "b" | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:43:17:45 | "c" | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | -| LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:19:13:19:33 | ...; | -| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | -| LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:23:5:27:5 | {...} | @@ -2610,10 +2155,9 @@ dominance | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | access to parameter args | | LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:26:17:26:40 | ...; | -| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | -| LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | | LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:30:5:34:5 | {...} | @@ -2623,8 +2167,12 @@ dominance | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | -| LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:33:13:33:33 | ...; | +| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:33:31:33:31 | access to local variable x | +| LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:37:5:43:5 | {...} | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 | | LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:38:9:38:48 | ... ...; | @@ -2644,20 +2192,19 @@ dominance | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:38:39:40 | "1" | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:43:39:45 | "2" | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | -| LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | -| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | -| LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:42:17:42:41 | ...; | -| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | -| LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:42:35:42:35 | access to local variable x | | LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:39:42:39 | access to local variable y | | LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:35:42:39 | ... + ... | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:46:5:53:5 | {...} | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:47:9:47:48 | ... ...; | | LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:18:47:47 | 3 | | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | @@ -2667,9 +2214,10 @@ dominance | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:38:47:40 | "b" | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:43:47:45 | "c" | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | -| LoopUnrolling.cs:48:9:52:9 | [unroll (line 48)] foreach (... ... in ...) ... | LoopUnrolling.cs:48:22:48:22 | String x | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:22:48:22 | String x | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:49:9:52:9 | {...} | -| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:9:52:9 | [unroll (line 48)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:50:9:50:13 | Label: | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:16:50:36 | ...; | | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:51:13:51:23 | goto ...; | @@ -2686,31 +2234,20 @@ dominance | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:38:57:40 | "b" | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:43:57:45 | "c" | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:59:9:64:9 | {...} | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | -| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | +| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:60:13:61:37 | if (...) ... | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:60:17:60:17 | access to parameter b | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | -| LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | -| LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:35:61:35 | access to local variable x | +| LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:63:17:63:37 | ...; | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:35:63:35 | access to local variable x | +| LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:68:5:74:5 | {...} | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 | | LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:69:9:70:19 | if (...) ... | @@ -2723,7 +2260,11 @@ dominance | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:20 | call to method Clear | | LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:72:29:72:32 | access to parameter args | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:12 | access to parameter args | -| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:9:73:35 | [skip (line 72)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:73:13:73:35 | ...; | +| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | +| LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | | LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:77:5:83:5 | {...} | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 | | LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:78:9:78:34 | ... ...; | @@ -2732,8 +2273,13 @@ dominance | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:32:78:32 | 0 | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | -| LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:80:9:82:9 | {...} | +| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:81:13:81:33 | ...; | +| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:81:31:81:31 | access to local variable x | +| LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | | LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:86:5:92:5 | {...} | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 | | LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:87:9:87:34 | ... ...; | @@ -2742,8 +2288,13 @@ dominance | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:32:87:32 | 2 | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | -| LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:89:9:91:9 | {...} | +| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:90:13:90:33 | ...; | +| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:90:31:90:31 | access to local variable x | +| LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:95:5:101:5 | {...} | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | | LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:96:9:96:34 | ... ...; | @@ -2752,12 +2303,11 @@ dominance | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:32:96:32 | 2 | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | -| LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:98:9:100:9 | {...} | -| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:99:13:99:33 | ...; | -| LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | @@ -4203,7 +3753,6 @@ dominance | cflow.cs:256:17:256:37 | ...; | cflow.cs:256:35:256:35 | 0 | | cflow.cs:256:35:256:35 | 0 | cflow.cs:256:17:256:36 | call to method WriteLine | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:262:5:277:5 | {...} | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield | | cflow.cs:262:5:277:5 | {...} | cflow.cs:263:22:263:22 | 0 | | cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:264:9:267:9 | for (...;...;...) ... | | cflow.cs:263:22:263:22 | 0 | cflow.cs:263:9:263:23 | yield return ...; | @@ -4220,11 +3769,12 @@ dominance | cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:266:13:266:27 | yield return ...; | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:269:9:272:9 | {...} | | cflow.cs:269:9:272:9 | {...} | cflow.cs:270:13:270:24 | yield break; | -| cflow.cs:270:13:270:24 | yield break; | cflow.cs:274:9:276:9 | [finally: return] {...} | -| cflow.cs:274:9:276:9 | [finally: return] {...} | cflow.cs:275:13:275:42 | [finally: return] ...; | -| cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:275:13:275:42 | [finally: return] ...; | cflow.cs:275:31:275:40 | [finally: return] "not dead" | -| cflow.cs:275:31:275:40 | [finally: return] "not dead" | cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | +| cflow.cs:270:13:270:24 | yield break; | cflow.cs:274:9:276:9 | {...} | +| cflow.cs:274:9:276:9 | {...} | cflow.cs:275:13:275:42 | ...; | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (abnormal) | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | +| cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | +| cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | | cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | exit ControlFlowSub | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | @@ -4743,23 +4293,17 @@ postDominance | Assert.cs:56:10:56:11 | exit M8 (normal) | Assert.cs:60:9:60:35 | call to method WriteLine | | Assert.cs:57:5:61:5 | {...} | Assert.cs:56:10:56:11 | enter M8 | | Assert.cs:58:9:58:33 | ... ...; | Assert.cs:57:5:61:5 | {...} | -| Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | -| Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | +| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:58:20:58:32 | ... ? ... : ... | | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:9:58:33 | ... ...; | -| Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | Assert.cs:58:31:58:32 | [b (line 56): false] "" | -| Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | Assert.cs:58:24:58:27 | [b (line 56): true] null | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:58:20:58:20 | access to parameter b | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:24:58:27 | null | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:31:58:32 | "" | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:59:23:59:36 | [true] ... && ... | -| Assert.cs:59:9:59:38 | [b (line 56): false] ...; | Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | -| Assert.cs:59:9:59:38 | [b (line 56): true] ...; | Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | -| Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | Assert.cs:59:9:59:38 | [b (line 56): false] ...; | -| Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | Assert.cs:59:9:59:38 | [b (line 56): true] ...; | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | Assert.cs:59:28:59:31 | [b (line 56): false] null | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | Assert.cs:59:28:59:31 | [b (line 56): true] null | -| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | -| Assert.cs:59:28:59:31 | [b (line 56): false] null | Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | -| Assert.cs:59:28:59:31 | [b (line 56): true] null | Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | +| Assert.cs:59:9:59:38 | ...; | Assert.cs:58:16:58:32 | String s = ... | +| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:9:59:38 | ...; | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:28:59:31 | null | +| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:36:59:36 | access to parameter b | +| Assert.cs:59:28:59:31 | null | Assert.cs:59:23:59:23 | access to local variable s | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:31 | ... != ... | | Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:60:27:60:34 | access to property Length | | Assert.cs:60:9:60:36 | ...; | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:9:60:36 | ...; | @@ -4768,23 +4312,17 @@ postDominance | Assert.cs:63:10:63:11 | exit M9 (normal) | Assert.cs:67:9:67:35 | call to method WriteLine | | Assert.cs:64:5:68:5 | {...} | Assert.cs:63:10:63:11 | enter M9 | | Assert.cs:65:9:65:33 | ... ...; | Assert.cs:64:5:68:5 | {...} | -| Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | -| Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | +| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:65:20:65:32 | ... ? ... : ... | | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:9:65:33 | ... ...; | -| Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | Assert.cs:65:31:65:32 | [b (line 63): false] "" | -| Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | Assert.cs:65:24:65:27 | [b (line 63): true] null | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:65:20:65:20 | access to parameter b | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:24:65:27 | null | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:31:65:32 | "" | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:66:24:66:37 | [false] ... \|\| ... | -| Assert.cs:66:9:66:39 | [b (line 63): false] ...; | Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | -| Assert.cs:66:9:66:39 | [b (line 63): true] ...; | Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | -| Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | Assert.cs:66:9:66:39 | [b (line 63): false] ...; | -| Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | Assert.cs:66:9:66:39 | [b (line 63): true] ...; | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | Assert.cs:66:29:66:32 | [b (line 63): false] null | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | Assert.cs:66:29:66:32 | [b (line 63): true] null | -| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | -| Assert.cs:66:29:66:32 | [b (line 63): false] null | Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | -| Assert.cs:66:29:66:32 | [b (line 63): true] null | Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | +| Assert.cs:66:9:66:39 | ...; | Assert.cs:65:16:65:32 | String s = ... | +| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:9:66:39 | ...; | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:29:66:32 | null | +| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:37:66:37 | access to parameter b | +| Assert.cs:66:29:66:32 | null | Assert.cs:66:24:66:24 | access to local variable s | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:32 | ... == ... | | Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:67:27:67:34 | access to property Length | | Assert.cs:67:9:67:36 | ...; | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:9:67:36 | ...; | @@ -4793,23 +4331,17 @@ postDominance | Assert.cs:70:10:70:12 | exit M10 (normal) | Assert.cs:74:9:74:35 | call to method WriteLine | | Assert.cs:71:5:75:5 | {...} | Assert.cs:70:10:70:12 | enter M10 | | Assert.cs:72:9:72:33 | ... ...; | Assert.cs:71:5:75:5 | {...} | -| Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | -| Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | +| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:72:20:72:32 | ... ? ... : ... | | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:9:72:33 | ... ...; | -| Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | Assert.cs:72:31:72:32 | [b (line 70): false] "" | -| Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | Assert.cs:72:24:72:27 | [b (line 70): true] null | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:72:20:72:20 | access to parameter b | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:24:72:27 | null | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:31:72:32 | "" | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:73:23:73:36 | [true] ... && ... | -| Assert.cs:73:9:73:38 | [b (line 70): false] ...; | Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | -| Assert.cs:73:9:73:38 | [b (line 70): true] ...; | Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | -| Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | Assert.cs:73:9:73:38 | [b (line 70): false] ...; | -| Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | Assert.cs:73:9:73:38 | [b (line 70): true] ...; | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | Assert.cs:73:28:73:31 | [b (line 70): false] null | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | Assert.cs:73:28:73:31 | [b (line 70): true] null | -| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | -| Assert.cs:73:28:73:31 | [b (line 70): false] null | Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | -| Assert.cs:73:28:73:31 | [b (line 70): true] null | Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | +| Assert.cs:73:9:73:38 | ...; | Assert.cs:72:16:72:32 | String s = ... | +| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:9:73:38 | ...; | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:28:73:31 | null | +| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:36:73:36 | access to parameter b | +| Assert.cs:73:28:73:31 | null | Assert.cs:73:23:73:23 | access to local variable s | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:31 | ... == ... | | Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:74:27:74:34 | access to property Length | | Assert.cs:74:9:74:36 | ...; | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:9:74:36 | ...; | @@ -4818,23 +4350,17 @@ postDominance | Assert.cs:77:10:77:12 | exit M11 (normal) | Assert.cs:81:9:81:35 | call to method WriteLine | | Assert.cs:78:5:82:5 | {...} | Assert.cs:77:10:77:12 | enter M11 | | Assert.cs:79:9:79:33 | ... ...; | Assert.cs:78:5:82:5 | {...} | -| Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | -| Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | +| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:79:20:79:32 | ... ? ... : ... | | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:9:79:33 | ... ...; | -| Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | Assert.cs:79:31:79:32 | [b (line 77): false] "" | -| Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | Assert.cs:79:24:79:27 | [b (line 77): true] null | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:79:20:79:20 | access to parameter b | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:24:79:27 | null | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:31:79:32 | "" | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:80:24:80:37 | [false] ... \|\| ... | -| Assert.cs:80:9:80:39 | [b (line 77): false] ...; | Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | -| Assert.cs:80:9:80:39 | [b (line 77): true] ...; | Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | -| Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | Assert.cs:80:9:80:39 | [b (line 77): false] ...; | -| Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | Assert.cs:80:9:80:39 | [b (line 77): true] ...; | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | Assert.cs:80:29:80:32 | [b (line 77): false] null | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | Assert.cs:80:29:80:32 | [b (line 77): true] null | -| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | -| Assert.cs:80:29:80:32 | [b (line 77): false] null | Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | -| Assert.cs:80:29:80:32 | [b (line 77): true] null | Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | +| Assert.cs:80:9:80:39 | ...; | Assert.cs:79:16:79:32 | String s = ... | +| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:9:80:39 | ...; | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:29:80:32 | null | +| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:37:80:37 | access to parameter b | +| Assert.cs:80:29:80:32 | null | Assert.cs:80:24:80:24 | access to local variable s | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:32 | ... != ... | | Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:81:27:81:34 | access to property Length | | Assert.cs:81:9:81:36 | ...; | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:9:81:36 | ...; | @@ -4842,247 +4368,161 @@ postDominance | Assert.cs:84:10:84:12 | exit M12 (normal) | Assert.cs:128:9:128:35 | call to method WriteLine | | Assert.cs:85:5:129:5 | {...} | Assert.cs:84:10:84:12 | enter M12 | | Assert.cs:86:9:86:33 | ... ...; | Assert.cs:85:5:129:5 | {...} | -| Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | +| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:86:20:86:32 | ... ? ... : ... | | Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:9:86:33 | ... ...; | -| Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | Assert.cs:86:31:86:32 | [b (line 84): false] "" | -| Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:86:20:86:20 | access to parameter b | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | -| Assert.cs:87:9:87:32 | [b (line 84): false] ...; | Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | -| Assert.cs:87:9:87:32 | [b (line 84): true] ...; | Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | -| Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | Assert.cs:87:9:87:32 | [b (line 84): false] ...; | -| Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | Assert.cs:87:9:87:32 | [b (line 84): true] ...; | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:87:27:87:30 | [b (line 84): false] null | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:87:27:87:30 | [b (line 84): true] null | -| Assert.cs:87:27:87:30 | [b (line 84): false] null | Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | -| Assert.cs:87:27:87:30 | [b (line 84): true] null | Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | -| Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | -| Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | -| Assert.cs:88:9:88:36 | [b (line 84): false] ...; | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | -| Assert.cs:88:9:88:36 | [b (line 84): true] ...; | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | Assert.cs:88:9:88:36 | [b (line 84): false] ...; | -| Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | Assert.cs:88:9:88:36 | [b (line 84): true] ...; | -| Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | -| Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | -| Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:90:9:90:26 | [b (line 84): false] ...; | Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:90:9:90:26 | [b (line 84): true] ...; | Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | Assert.cs:90:9:90:26 | [b (line 84): false] ...; | -| Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | Assert.cs:90:9:90:26 | [b (line 84): true] ...; | -| Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:90:24:90:25 | [b (line 84): false] "" | -| Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | -| Assert.cs:91:9:91:25 | [b (line 84): false] ...; | Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | -| Assert.cs:91:9:91:25 | [b (line 84): true] ...; | Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | -| Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | Assert.cs:91:9:91:25 | [b (line 84): false] ...; | -| Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | Assert.cs:91:9:91:25 | [b (line 84): true] ...; | -| Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | -| Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | -| Assert.cs:92:9:92:36 | [b (line 84): false] ...; | 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): true] ...; | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | Assert.cs:92:9:92:36 | [b (line 84): false] ...; | -| Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | Assert.cs:92:9:92:36 | [b (line 84): true] ...; | -| Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | -| Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | -| Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:94:9:94:26 | [b (line 84): false] ...; | Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:94:9:94:26 | [b (line 84): true] ...; | Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | Assert.cs:94:9:94:26 | [b (line 84): false] ...; | -| Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | Assert.cs:94:9:94:26 | [b (line 84): true] ...; | -| Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | -| Assert.cs:95:9:95:28 | [b (line 84): false] ...; | Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | -| Assert.cs:95:9:95:28 | [b (line 84): true] ...; | Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | -| Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | Assert.cs:95:9:95:28 | [b (line 84): false] ...; | -| Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | Assert.cs:95:9:95:28 | [b (line 84): true] ...; | -| Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | -| Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | -| Assert.cs:96:9:96:36 | [b (line 84): false] ...; | 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): true] ...; | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | Assert.cs:96:9:96:36 | [b (line 84): false] ...; | -| Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | Assert.cs:96:9:96:36 | [b (line 84): true] ...; | -| Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | -| Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | -| Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:98:9:98:26 | [b (line 84): false] ...; | Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:98:9:98:26 | [b (line 84): true] ...; | Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | Assert.cs:98:9:98:26 | [b (line 84): false] ...; | -| Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | Assert.cs:98:9:98:26 | [b (line 84): true] ...; | -| Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | -| Assert.cs:99:9:99:33 | [b (line 84): false] ...; | Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | -| Assert.cs:99:9:99:33 | [b (line 84): true] ...; | Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | -| Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | Assert.cs:99:9:99:33 | [b (line 84): false] ...; | -| Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | Assert.cs:99:9:99:33 | [b (line 84): true] ...; | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:99:28:99:31 | [b (line 84): false] null | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:99:28:99:31 | [b (line 84): true] null | -| Assert.cs:99:28:99:31 | [b (line 84): false] null | Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | -| Assert.cs:99:28:99:31 | [b (line 84): true] null | Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | -| Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | -| Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | -| Assert.cs:100:9:100:36 | [b (line 84): false] ...; | 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): true] ...; | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | Assert.cs:100:9:100:36 | [b (line 84): false] ...; | -| Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | Assert.cs:100:9:100:36 | [b (line 84): true] ...; | -| Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | -| Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | -| Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:102:9:102:26 | [b (line 84): false] ...; | Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:102:9:102:26 | [b (line 84): true] ...; | Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | Assert.cs:102:9:102:26 | [b (line 84): false] ...; | -| Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | Assert.cs:102:9:102:26 | [b (line 84): true] ...; | -| Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | -| Assert.cs:103:9:103:33 | [b (line 84): false] ...; | Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | -| Assert.cs:103:9:103:33 | [b (line 84): true] ...; | Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | -| Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | Assert.cs:103:9:103:33 | [b (line 84): false] ...; | -| Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | Assert.cs:103:9:103:33 | [b (line 84): true] ...; | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:103:28:103:31 | [b (line 84): false] null | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:103:28:103:31 | [b (line 84): true] null | -| Assert.cs:103:28:103:31 | [b (line 84): false] null | Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | -| Assert.cs:103:28:103:31 | [b (line 84): true] null | Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | -| Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | -| Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | -| Assert.cs:104:9:104:36 | [b (line 84): false] ...; | 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): true] ...; | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | Assert.cs:104:9:104:36 | [b (line 84): false] ...; | -| Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | Assert.cs:104:9:104:36 | [b (line 84): true] ...; | -| Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | -| Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | -| Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:106:9:106:26 | [b (line 84): false] ...; | Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:106:9:106:26 | [b (line 84): true] ...; | Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | Assert.cs:106:9:106:26 | [b (line 84): false] ...; | -| Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | Assert.cs:106:9:106:26 | [b (line 84): true] ...; | -| Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | -| Assert.cs:107:9:107:34 | [b (line 84): false] ...; | Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | -| Assert.cs:107:9:107:34 | [b (line 84): true] ...; | Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | -| Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | Assert.cs:107:9:107:34 | [b (line 84): false] ...; | -| Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | Assert.cs:107:9:107:34 | [b (line 84): true] ...; | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:107:29:107:32 | [b (line 84): false] null | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:107:29:107:32 | [b (line 84): true] null | -| Assert.cs:107:29:107:32 | [b (line 84): false] null | Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | -| Assert.cs:107:29:107:32 | [b (line 84): true] null | Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | -| Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | -| Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | -| Assert.cs:108:9:108:36 | [b (line 84): false] ...; | 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): true] ...; | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | Assert.cs:108:9:108:36 | [b (line 84): false] ...; | -| Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | Assert.cs:108:9:108:36 | [b (line 84): true] ...; | -| Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | -| Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | -| Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:110:9:110:26 | [b (line 84): false] ...; | Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:110:9:110:26 | [b (line 84): true] ...; | Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | Assert.cs:110:9:110:26 | [b (line 84): false] ...; | -| Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | Assert.cs:110:9:110:26 | [b (line 84): true] ...; | -| Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | -| Assert.cs:111:9:111:34 | [b (line 84): false] ...; | Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | -| Assert.cs:111:9:111:34 | [b (line 84): true] ...; | Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | -| Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | Assert.cs:111:9:111:34 | [b (line 84): false] ...; | -| Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | Assert.cs:111:9:111:34 | [b (line 84): true] ...; | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:111:29:111:32 | [b (line 84): false] null | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:111:29:111:32 | [b (line 84): true] null | -| Assert.cs:111:29:111:32 | [b (line 84): false] null | Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | -| Assert.cs:111:29:111:32 | [b (line 84): true] null | Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | -| Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | -| Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | -| Assert.cs:112:9:112:36 | [b (line 84): false] ...; | 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): true] ...; | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | Assert.cs:112:9:112:36 | [b (line 84): false] ...; | -| Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | Assert.cs:112:9:112:36 | [b (line 84): true] ...; | -| Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | -| Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | -| Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | -| Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:114:9:114:26 | [b (line 84): false] ...; | Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | -| Assert.cs:114:9:114:26 | [b (line 84): true] ...; | Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | Assert.cs:114:9:114:26 | [b (line 84): false] ...; | -| Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | Assert.cs:114:9:114:26 | [b (line 84): true] ...; | -| Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:9:115:38 | [b (line 84): false] ...; | Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | -| Assert.cs:115:9:115:38 | [b (line 84): true] ...; | Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | -| Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | Assert.cs:115:9:115:38 | [b (line 84): false] ...; | -| Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | Assert.cs:115:9:115:38 | [b (line 84): true] ...; | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:115:28:115:31 | [b (line 84): false] null | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:115:28:115:31 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:28:115:31 | [b (line 84): false] null | Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | -| Assert.cs:115:28:115:31 | [b (line 84): true] null | Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | -| Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | -| Assert.cs:116:9:116:36 | [b (line 84): true] ...; | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | Assert.cs:116:9:116:36 | [b (line 84): true] ...; | -| Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | -| Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:118:9:118:26 | [b (line 84): true] ...; | Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | Assert.cs:118:9:118:26 | [b (line 84): true] ...; | -| Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:119:9:119:40 | [b (line 84): true] ...; | Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | -| Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | Assert.cs:119:9:119:40 | [b (line 84): true] ...; | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:119:29:119:32 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:119:29:119:32 | [b (line 84): true] null | Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | -| Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | -| Assert.cs:120:9:120:36 | [b (line 84): true] ...; | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | Assert.cs:120:9:120:36 | [b (line 84): true] ...; | -| Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | -| Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:122:9:122:26 | [b (line 84): true] ...; | Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | Assert.cs:122:9:122:26 | [b (line 84): true] ...; | -| Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:9:123:38 | [b (line 84): true] ...; | Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | -| Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | Assert.cs:123:9:123:38 | [b (line 84): true] ...; | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:123:28:123:31 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:28:123:31 | [b (line 84): true] null | Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | -| Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | -| Assert.cs:124:9:124:36 | [b (line 84): true] ...; | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | Assert.cs:124:9:124:36 | [b (line 84): true] ...; | -| Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | -| Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | -| Assert.cs:126:9:126:26 | [b (line 84): true] ...; | Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | -| Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | Assert.cs:126:9:126:26 | [b (line 84): true] ...; | -| Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:87:22:87:30 | ... != ... | +| Assert.cs:87:9:87:32 | ...; | Assert.cs:86:16:86:32 | String s = ... | +| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:9:87:32 | ...; | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:27:87:30 | null | +| Assert.cs:87:27:87:30 | null | Assert.cs:87:22:87:22 | access to local variable s | +| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:88:27:88:34 | access to property Length | +| Assert.cs:88:9:88:36 | ...; | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:9:88:36 | ...; | +| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:27:88:27 | access to local variable s | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:90:9:90:26 | ...; | Assert.cs:88:9:88:35 | call to method WriteLine | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:9:90:26 | ...; | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:91:23:91:23 | access to local variable s | +| Assert.cs:91:9:91:25 | ...; | Assert.cs:90:9:90:25 | ... = ... | +| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:25 | ...; | +| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:92:27:92:34 | access to property Length | +| Assert.cs:92:9:92:36 | ...; | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:9:92:36 | ...; | +| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:27:92:27 | access to local variable s | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:94:9:94:26 | ...; | Assert.cs:92:9:92:35 | call to method WriteLine | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:9:94:26 | ...; | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:95:26:95:26 | access to local variable s | +| Assert.cs:95:9:95:28 | ...; | Assert.cs:94:9:94:25 | ... = ... | +| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:28 | ...; | +| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:96:27:96:34 | access to property Length | +| Assert.cs:96:9:96:36 | ...; | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:9:96:36 | ...; | +| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:27:96:27 | access to local variable s | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:98:9:98:26 | ...; | Assert.cs:96:9:96:35 | call to method WriteLine | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:9:98:26 | ...; | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:99:23:99:31 | ... == ... | +| Assert.cs:99:9:99:33 | ...; | Assert.cs:98:9:98:25 | ... = ... | +| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:9:99:33 | ...; | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:28:99:31 | null | +| Assert.cs:99:28:99:31 | null | Assert.cs:99:23:99:23 | access to local variable s | +| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:100:27:100:34 | access to property Length | +| Assert.cs:100:9:100:36 | ...; | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:9:100:36 | ...; | +| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:27:100:27 | access to local variable s | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:102:9:102:26 | ...; | Assert.cs:100:9:100:35 | call to method WriteLine | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:9:102:26 | ...; | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:103:23:103:31 | ... != ... | +| Assert.cs:103:9:103:33 | ...; | Assert.cs:102:9:102:25 | ... = ... | +| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:9:103:33 | ...; | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:28:103:31 | null | +| Assert.cs:103:28:103:31 | null | Assert.cs:103:23:103:23 | access to local variable s | +| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:104:27:104:34 | access to property Length | +| Assert.cs:104:9:104:36 | ...; | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:9:104:36 | ...; | +| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:27:104:27 | access to local variable s | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:106:9:106:26 | ...; | Assert.cs:104:9:104:35 | call to method WriteLine | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:9:106:26 | ...; | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:107:24:107:32 | ... != ... | +| Assert.cs:107:9:107:34 | ...; | Assert.cs:106:9:106:25 | ... = ... | +| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:9:107:34 | ...; | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:29:107:32 | null | +| Assert.cs:107:29:107:32 | null | Assert.cs:107:24:107:24 | access to local variable s | +| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:108:27:108:34 | access to property Length | +| Assert.cs:108:9:108:36 | ...; | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:9:108:36 | ...; | +| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:27:108:27 | access to local variable s | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:110:9:110:26 | ...; | Assert.cs:108:9:108:35 | call to method WriteLine | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:9:110:26 | ...; | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:111:24:111:32 | ... == ... | +| Assert.cs:111:9:111:34 | ...; | Assert.cs:110:9:110:25 | ... = ... | +| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:9:111:34 | ...; | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:29:111:32 | null | +| Assert.cs:111:29:111:32 | null | Assert.cs:111:24:111:24 | access to local variable s | +| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:112:27:112:34 | access to property Length | +| Assert.cs:112:9:112:36 | ...; | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:9:112:36 | ...; | +| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:27:112:27 | access to local variable s | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:114:9:114:26 | ...; | Assert.cs:112:9:112:35 | call to method WriteLine | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:9:114:26 | ...; | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:115:9:115:38 | ...; | Assert.cs:114:9:114:25 | ... = ... | +| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:9:115:38 | ...; | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:28:115:31 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:115:28:115:31 | null | Assert.cs:115:23:115:23 | access to local variable s | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:31 | ... != ... | +| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:116:27:116:34 | access to property Length | +| Assert.cs:116:9:116:36 | ...; | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:9:116:36 | ...; | +| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:27:116:27 | access to local variable s | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:118:9:118:26 | ...; | Assert.cs:116:9:116:35 | call to method WriteLine | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:9:118:26 | ...; | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:119:9:119:40 | ...; | Assert.cs:118:9:118:25 | ... = ... | +| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:9:119:40 | ...; | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:29:119:32 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:119:29:119:32 | null | Assert.cs:119:24:119:24 | access to local variable s | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:24:119:32 | ... == ... | +| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:120:27:120:34 | access to property Length | +| Assert.cs:120:9:120:36 | ...; | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:9:120:36 | ...; | +| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:27:120:27 | access to local variable s | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:122:9:122:26 | ...; | Assert.cs:120:9:120:35 | call to method WriteLine | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:9:122:26 | ...; | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:123:9:123:38 | ...; | Assert.cs:122:9:122:25 | ... = ... | +| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:9:123:38 | ...; | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:28:123:31 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:123:28:123:31 | null | Assert.cs:123:23:123:23 | access to local variable s | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:31 | ... == ... | +| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:124:27:124:34 | access to property Length | +| Assert.cs:124:9:124:36 | ...; | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:9:124:36 | ...; | +| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:27:124:27 | access to local variable s | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:126:9:126:26 | ...; | Assert.cs:124:9:124:35 | call to method WriteLine | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:9:126:26 | ...; | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:127:9:127:40 | [b (line 84): true] ...; | Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | -| Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | Assert.cs:127:9:127:40 | [b (line 84): true] ...; | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:127:29:127:32 | [b (line 84): true] null | +| Assert.cs:127:9:127:40 | ...; | Assert.cs:126:9:126:25 | ... = ... | +| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:9:127:40 | ...; | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:29:127:32 | null | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:127:29:127:32 | [b (line 84): true] null | Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | +| Assert.cs:127:29:127:32 | null | Assert.cs:127:24:127:24 | access to local variable s | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:24:127:32 | ... != ... | | Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:128:27:128:34 | access to property Length | | Assert.cs:128:9:128:36 | ...; | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | | Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:9:128:36 | ...; | @@ -5173,8 +4613,6 @@ postDominance | BreakInTry.cs:20:10:20:11 | exit M2 (normal) | BreakInTry.cs:35:7:35:7 | ; | | BreakInTry.cs:21:5:36:5 | {...} | BreakInTry.cs:20:10:20:11 | enter M2 | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:29:22:32 | access to parameter args | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:31:21:31:32 | ... == ... | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | ; | | BreakInTry.cs:22:29:22:32 | access to parameter args | BreakInTry.cs:21:5:36:5 | {...} | | BreakInTry.cs:23:9:34:9 | {...} | BreakInTry.cs:22:22:22:24 | String arg | | BreakInTry.cs:24:13:33:13 | try {...} ... | BreakInTry.cs:23:9:34:9 | {...} | @@ -5183,21 +4621,18 @@ postDominance | BreakInTry.cs:26:21:26:23 | access to local variable arg | BreakInTry.cs:26:17:27:26 | if (...) ... | | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:26:28:26:31 | null | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:26:21:26:23 | access to local variable arg | -| BreakInTry.cs:30:13:33:13 | [finally: break] {...} | BreakInTry.cs:27:21:27:26 | break; | -| BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | BreakInTry.cs:30:13:33:13 | [finally: break] {...} | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:26:21:26:31 | ... == ... | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:27:21:27:26 | break; | | BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | | BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:17:32:21 | if (...) ... | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:31:29:31:32 | null | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:31:29:31:32 | [finally: break] null | -| BreakInTry.cs:31:29:31:32 | [finally: break] null | BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:31:21:31:24 | access to parameter args | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:32:21:32:21 | [finally: break] ; | +| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:31:21:31:32 | ... == ... | +| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:32:21:32:21 | ; | | BreakInTry.cs:38:10:38:11 | exit M3 | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:50:21:50:26 | [finally: return] break; | +| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | +| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:39:5:54:5 | {...} | BreakInTry.cs:38:10:38:11 | enter M3 | | BreakInTry.cs:40:9:52:9 | try {...} ... | BreakInTry.cs:39:5:54:5 | {...} | @@ -5206,27 +4641,17 @@ postDominance | BreakInTry.cs:42:17:42:20 | access to parameter args | BreakInTry.cs:42:13:43:23 | if (...) ... | | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:42:25:42:28 | null | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:17:42:20 | access to parameter args | -| BreakInTry.cs:46:9:52:9 | [finally: return] {...} | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:42:17:42:28 | ... == ... | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:43:17:43:23 | return ...; | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:33:47:36 | access to parameter args | -| BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | BreakInTry.cs:46:9:52:9 | [finally: return] {...} | | BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:48:13:51:13 | [finally: return] {...} | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | BreakInTry.cs:48:13:51:13 | [finally: return] {...} | | BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:48:13:51:13 | {...} | -| BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | | BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:17:50:26 | if (...) ... | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:49:28:49:31 | null | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:49:28:49:31 | [finally: return] null | -| BreakInTry.cs:49:28:49:31 | [finally: return] null | BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:49:21:49:23 | access to local variable arg | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:56:10:56:11 | exit M4 | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:68:21:68:26 | [finally: return] break; | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:68:21:68:26 | break; | | BreakInTry.cs:57:5:71:5 | {...} | BreakInTry.cs:56:10:56:11 | enter M4 | | BreakInTry.cs:58:9:70:9 | try {...} ... | BreakInTry.cs:57:5:71:5 | {...} | @@ -5235,20 +4660,14 @@ postDominance | BreakInTry.cs:60:17:60:20 | access to parameter args | BreakInTry.cs:60:13:61:23 | if (...) ... | | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:60:25:60:28 | null | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:17:60:20 | access to parameter args | -| BreakInTry.cs:64:9:70:9 | [finally: return] {...} | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:60:17:60:28 | ... == ... | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:61:17:61:23 | return ...; | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:33:65:36 | access to parameter args | -| BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | BreakInTry.cs:64:9:70:9 | [finally: return] {...} | | BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:66:13:69:13 | [finally: return] {...} | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | BreakInTry.cs:66:13:69:13 | [finally: return] {...} | | BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:66:13:69:13 | {...} | -| BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:17:68:26 | if (...) ... | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:28:67:31 | null | -| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:67:28:67:31 | [finally: return] null | -| BreakInTry.cs:67:28:67:31 | [finally: return] null | BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:23 | access to local variable arg | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | @@ -5278,17 +4697,19 @@ postDominance | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | {...} | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | -| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:28:10:28:10 | enter M | | 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] {...} | 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:36:9:38:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | "Finally" | +| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:36:9:38:9 | {...} | +| CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:13:37:41 | ...; | +| CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:39:27:39:32 | "Dead" | +| CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:9:39:34 | ...; | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:39:9:39:33 | 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 | ...; | @@ -5381,13 +4802,11 @@ postDominance | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:5:9:6:16 | if (...) ... | -| Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | -| Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | -| Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | -| Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | -| Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | +| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:6:13:6:13 | access to parameter x | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:6:13:6:15 | ...++ | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:16 | ...; | | Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:8:13:8:13 | access to parameter x | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:7:13:7:16 | [true] !... | @@ -5399,25 +4818,19 @@ postDominance | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:9:13:18 | ... ...; | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:13:13:13:17 | Int32 x = ... | | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:14:9:15:16 | if (...) ... | -| Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | -| Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | -| Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | -| Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | -| Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | -| Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | -| Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | +| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:15:13:15:13 | access to local variable x | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:15:13:15:15 | ...++ | +| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:16:17:16:17 | 0 | +| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:13:16:13 | access to local variable x | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:13:18:20 | if (...) ... | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:20 | ...; | | Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:18:17:18:17 | access to local variable x | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:17:17:17:18 | [true] !... | | Conditions.cs:19:9:19:17 | return ...; | Conditions.cs:19:16:19:16 | access to local variable x | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | +| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:13:16:17 | ... > ... | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:17:17:18 | [false] !... | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | | Conditions.cs:22:9:22:10 | exit M2 | Conditions.cs:22:9:22:10 | exit M2 (normal) | @@ -5429,17 +4842,15 @@ postDominance | Conditions.cs:25:9:27:20 | if (...) ... | Conditions.cs:24:13:24:17 | Int32 x = ... | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:25:9:27:20 | if (...) ... | | Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | -| Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | -| Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | -| Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | -| Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | +| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:27:17:27:17 | access to local variable x | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:25:13:25:14 | access to parameter b1 | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:27:17:27:19 | ...++ | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... | | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:16 | ...; | | Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:29:13:29:13 | access to local variable x | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | | Conditions.cs:30:9:30:17 | return ...; | Conditions.cs:30:16:30:16 | access to local variable x | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:13:28:14 | access to parameter b2 | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | | Conditions.cs:33:9:33:10 | exit M3 | Conditions.cs:33:9:33:10 | exit M3 (normal) | @@ -5458,16 +4869,15 @@ postDominance | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:37:13:37:14 | access to parameter b1 | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:38:13:38:19 | ... = ... | | Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | -| Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | -| Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | -| Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | -| Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | +| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:40:13:40:13 | access to local variable x | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:40:13:40:15 | ...++ | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:16 | ...; | | Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:42:13:42:13 | access to local variable x | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | | Conditions.cs:43:9:43:17 | return ...; | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | +| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:13:41:14 | access to local variable b2 | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | | Conditions.cs:46:9:46:10 | exit M4 | Conditions.cs:46:9:46:10 | exit M4 (normal) | | Conditions.cs:46:9:46:10 | exit M4 (normal) | Conditions.cs:54:9:54:17 | return ...; | @@ -5476,31 +4886,18 @@ postDominance | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:48:17:48:17 | 0 | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:9:48:18 | ... ...; | | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:48:13:48:17 | Int32 y = ... | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | -| Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:9:53:9 | while (...) ... | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:51:17:51:17 | access to parameter b | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:19 | ...++ | | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:16:49:16 | access to parameter x | -| Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | -| Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:49:22:49:22 | 0 | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:18 | ...-- | -| Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | -| Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | -| Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | -| Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | | Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:51:13:52:20 | if (...) ... | -| Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | -| Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | +| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:52:17:52:17 | access to local variable y | | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:54:16:54:16 | access to local variable y | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:22 | ... > ... | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | | Conditions.cs:57:9:57:10 | exit M5 | Conditions.cs:57:9:57:10 | exit M5 (normal) | | Conditions.cs:57:9:57:10 | exit M5 (normal) | Conditions.cs:67:9:67:17 | return ...; | | Conditions.cs:58:5:68:5 | {...} | Conditions.cs:57:9:57:10 | enter M5 | @@ -5508,37 +4905,21 @@ postDominance | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:59:17:59:17 | 0 | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:9:59:18 | ... ...; | | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:59:13:59:17 | Int32 y = ... | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | -| Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:9:64:9 | while (...) ... | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:62:17:62:17 | access to parameter b | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:19 | ...++ | | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:16:60:16 | access to parameter x | -| Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:60:22:60:22 | 0 | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:18 | ...-- | -| Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | -| Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | -| Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | -| Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | | Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:62:13:63:20 | if (...) ... | -| Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | -| Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | +| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:63:17:63:17 | access to local variable y | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:60:16:60:22 | ... > ... | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:65:9:66:16 | if (...) ... | | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:16 | ...; | | Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:66:13:66:13 | access to local variable y | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | | Conditions.cs:67:9:67:17 | return ...; | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:13:65:13 | access to parameter b | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | | Conditions.cs:70:9:70:10 | exit M6 | Conditions.cs:70:9:70:10 | exit M6 (normal) | @@ -5620,31 +5001,24 @@ postDominance | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:17:104:17 | access to parameter b | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:104:13:104:28 | String x = ... | | Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:105:9:106:20 | if (...) ... | -| Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | Conditions.cs:106:18:106:19 | [b (line 102): true] "" | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | -| Conditions.cs:106:18:106:19 | [b (line 102): true] "" | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | -| Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | -| Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | -| Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | -| Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | -| Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | -| Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | -| Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | +| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:18:106:19 | "" | +| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:106:13:106:19 | ... + ... | +| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:13:106:13 | access to local variable x | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:106:13:106:19 | ... = ... | +| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:13:107:13 | access to local variable x | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:107:24:107:24 | 0 | +| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:20 | access to property Length | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:13:109:24 | if (...) ... | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:17:109:24 | ...; | | Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:22:109:23 | "" | | Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:109:17:109:23 | ... + ... | | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:108:17:108:18 | [true] !... | | Conditions.cs:109:22:109:23 | "" | Conditions.cs:109:17:109:17 | access to local variable x | | Conditions.cs:110:9:110:17 | return ...; | Conditions.cs:110:16:110:16 | access to local variable x | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | +| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:13:107:24 | ... > ... | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:17:108:18 | [false] !... | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:109:17:109:23 | ... = ... | | Conditions.cs:113:10:113:11 | exit M9 | Conditions.cs:113:10:113:11 | exit M9 (normal) | @@ -5661,7 +5035,7 @@ postDominance | Conditions.cs:116:25:116:39 | ... < ... | Conditions.cs:116:29:116:39 | access to property Length | | Conditions.cs:116:29:116:32 | access to parameter args | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:116:29:116:39 | access to property Length | Conditions.cs:116:29:116:32 | access to parameter args | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | +| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:121:17:121:20 | access to local variable last | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:122:17:122:24 | ... = ... | | Conditions.cs:116:42:116:44 | ...++ | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:118:13:118:44 | ... ...; | Conditions.cs:117:9:123:9 | {...} | @@ -5674,67 +5048,43 @@ postDominance | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:29:118:39 | access to property Length | | Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:118:17:118:43 | Boolean last = ... | | Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:13:120:23 | if (...) ... | -| Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | Conditions.cs:120:21:120:22 | [last (line 118): false] "" | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:120:21:120:22 | [last (line 118): false] "" | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | -| Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:120:21:120:22 | "" | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:120:17:120:22 | ... = ... | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:122:21:122:24 | null | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | | Conditions.cs:122:21:122:24 | null | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:129:10:129:12 | enter M10 | | Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:130:5:141:5 | {...} | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | -| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:9:140:9 | while (...) ... | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | | Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | | Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:133:17:133:22 | this access | | Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:13:139:13 | if (...) ... | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | -| Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | -| Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | +| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:135:21:135:26 | this access | +| Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:17:138:17 | if (...) ... | +| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:26 | this access | +| Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:38 | ...; | +| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:137:21:137:26 | access to field Field1 | +| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:136:17:138:17 | {...} | | Conditions.cs:143:10:143:12 | exit M11 | Conditions.cs:143:10:143:12 | exit M11 (normal) | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:147:13:147:48 | call to method WriteLine | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:149:13:149:48 | call to method WriteLine | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:143:10:143:12 | enter M11 | | Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:144:5:150:5 | {...} | -| Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | -| Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | | Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:9:145:30 | ... ...; | -| Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | -| Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | -| Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | -| Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | -| Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | -| Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:27:145:29 | "b" | +| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:145:13:145:29 | String s = ... | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:146:9:149:49 | if (...) ... | | Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:147:38:147:47 | $"..." | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | | Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:44:147:46 | {...} | | Conditions.cs:147:40:147:43 | "a = " | Conditions.cs:147:13:147:49 | ...; | | Conditions.cs:147:44:147:46 | {...} | Conditions.cs:147:45:147:45 | access to local variable s | | Conditions.cs:147:45:147:45 | access to local variable s | Conditions.cs:147:40:147:43 | "a = " | | Conditions.cs:149:13:149:48 | call to method WriteLine | Conditions.cs:149:38:149:47 | $"..." | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | | Conditions.cs:149:38:149:47 | $"..." | Conditions.cs:149:44:149:46 | {...} | | Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:13:149:49 | ...; | | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:45:149:45 | access to local variable s | @@ -5784,9 +5134,9 @@ postDominance | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:42:25:42:29 | false | | ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:41:9:43:9 | {...} | | ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:13:42:31 | ...; | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | | ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | +| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | | ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:49:9:51:9 | {...} | | ExitMethods.cs:54:10:54:11 | exit M7 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | @@ -5933,7 +5283,6 @@ 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] 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 | {...} | @@ -5942,14 +5291,9 @@ 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] 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] ...; | 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] "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 | | Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:20:5:52:5 | {...} | @@ -5957,33 +5301,29 @@ postDominance | Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:23:31:23:36 | "Try2" | | Finally.cs:23:13:23:38 | ...; | Finally.cs:22:9:25:9 | {...} | | Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:13:23:38 | ...; | -| Finally.cs:26:48:26:51 | [exception: Exception] true | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | +| Finally.cs:26:48:26:51 | true | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:27:9:29:9 | {...} | Finally.cs:26:48:26:51 | true | | Finally.cs:28:13:28:18 | throw ...; | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:31:9:40:9 | {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | +| Finally.cs:31:9:40:9 | {...} | Finally.cs:30:41:30:42 | ArgumentException ex | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:31:9:40:9 | {...} | | 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] {...} | 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: return] {...} | Finally.cs:24:13:24:19 | return ...; | +| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:21:34:24 | true | +| Finally.cs:37:13:39:13 | {...} | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:38:17:38:44 | throw ...; | Finally.cs:38:23:38:43 | object creation of type Exception | +| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:37:38:42 | "Boo!" | +| Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:37:13:39:13 | {...} | +| Finally.cs:45:9:47:9 | {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:46:13:46:19 | return ...; | Finally.cs:45:9:47:9 | {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:24:13:24:19 | return ...; | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:38:17:38:44 | throw ...; | | Finally.cs:49:9:51:9 | {...} | Finally.cs:42:9:43:9 | {...} | -| 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:49:9:51:9 | {...} | Finally.cs:46:13:46:19 | return ...; | | 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] ...; | 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] "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 | | Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:55:5:72:5 | {...} | @@ -5991,37 +5331,29 @@ postDominance | Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:58:31:58:36 | "Try3" | | Finally.cs:58:13:58:38 | ...; | Finally.cs:57:9:60:9 | {...} | | Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:13:58:38 | ...; | -| Finally.cs:61:48:61:51 | [exception: Exception] true | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | +| Finally.cs:61:48:61:51 | true | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:62:9:64:9 | {...} | Finally.cs:61:48:61:51 | true | | Finally.cs:63:13:63:18 | throw ...; | Finally.cs:62:9:64:9 | {...} | -| 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:65:9:67:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | -| Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | -| 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: return] {...} | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:35:65:35 | access to local variable e | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:65:48:65:51 | null | +| Finally.cs:65:48:65:51 | null | Finally.cs:65:35:65:43 | access to property Message | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:35:65:51 | ... != ... | | Finally.cs:69:9:71:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| 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] ...; | 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] "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] ...-- | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:97:21:97:23 | [finally: return] ...-- | +| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:97:21:97:23 | ...-- | | Finally.cs:75:5:101:5 | {...} | Finally.cs:74:10:74:11 | enter M4 | | Finally.cs:76:9:76:19 | ... ...; | Finally.cs:75:5:101:5 | {...} | | Finally.cs:76:13:76:18 | Int32 i = ... | Finally.cs:76:17:76:18 | 10 | | Finally.cs:76:17:76:18 | 10 | Finally.cs:76:9:76:19 | ... ...; | | Finally.cs:77:9:100:9 | while (...) ... | Finally.cs:76:13:76:18 | Int32 i = ... | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:9:100:9 | while (...) ... | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:97:21:97:23 | ...-- | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:97:21:97:23 | [finally: continue] ...-- | | Finally.cs:77:16:77:20 | ... > ... | Finally.cs:77:20:77:20 | 0 | | Finally.cs:77:20:77:20 | 0 | Finally.cs:77:16:77:16 | access to local variable i | | Finally.cs:79:13:99:13 | try {...} ... | Finally.cs:78:9:100:9 | {...} | @@ -6036,64 +5368,23 @@ postDominance | Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:85:26:85:26 | 2 | | Finally.cs:85:26:85:26 | 2 | Finally.cs:85:21:85:21 | access to local variable i | -| Finally.cs:89:13:99:13 | [finally: break] {...} | Finally.cs:86:21:86:26 | break; | -| Finally.cs:89:13:99:13 | [finally: continue] {...} | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:89:13:99:13 | [finally: return] {...} | Finally.cs:82:21:82:27 | return ...; | -| Finally.cs:90:17:98:17 | [finally: break] try {...} ... | Finally.cs:89:13:99:13 | [finally: break] {...} | -| Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | Finally.cs:89:13:99:13 | [finally: continue] {...} | -| Finally.cs:90:17:98:17 | [finally: return] try {...} ... | Finally.cs:89:13:99:13 | [finally: return] {...} | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:82:21:82:27 | return ...; | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:84:21:84:29 | continue; | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:85:21:85:26 | ... == ... | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:86:21:86:26 | break; | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:91:17:94:17 | [finally: break] {...} | Finally.cs:90:17:98:17 | [finally: break] try {...} ... | -| Finally.cs:91:17:94:17 | [finally: continue] {...} | Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | -| Finally.cs:91:17:94:17 | [finally: return] {...} | Finally.cs:90:17:98:17 | [finally: return] try {...} ... | | Finally.cs:91:17:94:17 | {...} | Finally.cs:90:17:98:17 | try {...} ... | -| Finally.cs:92:21:93:46 | [finally: break] if (...) ... | Finally.cs:91:17:94:17 | [finally: break] {...} | -| Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | Finally.cs:91:17:94:17 | [finally: continue] {...} | -| Finally.cs:92:21:93:46 | [finally: return] if (...) ... | Finally.cs:91:17:94:17 | [finally: return] {...} | | Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:91:17:94:17 | {...} | -| Finally.cs:92:25:92:25 | [finally: break] access to local variable i | Finally.cs:92:21:93:46 | [finally: break] if (...) ... | -| Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | -| Finally.cs:92:25:92:25 | [finally: return] access to local variable i | Finally.cs:92:21:93:46 | [finally: return] if (...) ... | | Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:21:93:46 | if (...) ... | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:92:30:92:30 | 3 | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:92:30:92:30 | [finally: break] 3 | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:92:30:92:30 | [finally: continue] 3 | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:92:30:92:30 | [finally: return] 3 | | Finally.cs:92:30:92:30 | 3 | Finally.cs:92:25:92:25 | access to local variable i | -| Finally.cs:92:30:92:30 | [finally: break] 3 | Finally.cs:92:25:92:25 | [finally: break] access to local variable i | -| Finally.cs:92:30:92:30 | [finally: continue] 3 | Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | -| Finally.cs:92:30:92:30 | [finally: return] 3 | Finally.cs:92:25:92:25 | [finally: return] access to local variable i | -| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:92:25:92:30 | [finally: break] ... == ... | -| 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] 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] 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] 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:96:17:98:17 | {...} | Finally.cs:93:25:93:46 | throw ...; | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | | 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] ...-- | 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] ...-- | 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] ...-- | 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] ...; | 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] ...; | 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] ...; | 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] ... > ... | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:117:17:117:36 | call to method WriteLine | | Finally.cs:104:5:119:5 | {...} | Finally.cs:103:10:103:11 | enter M5 | | Finally.cs:105:9:118:9 | try {...} ... | Finally.cs:104:5:119:5 | {...} | @@ -6101,70 +5392,37 @@ postDominance | Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:106:9:111:9 | {...} | | Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:21 | this access | | Finally.cs:107:17:107:21 | this access | Finally.cs:107:13:108:23 | if (...) ... | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:21 | access to field Field | | Finally.cs:107:17:107:33 | ... == ... | Finally.cs:107:33:107:33 | 0 | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:28 | access to property Length | | Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:21 | this access | | Finally.cs:109:17:109:21 | this access | Finally.cs:109:13:110:49 | if (...) ... | -| 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: return] {...} | Finally.cs:108:17:108:23 | return ...; | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:21 | access to field Field | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:28 | access to property Length | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:108:17:108:23 | return ...; | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:21 | access to field Field | +| 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:17:109:33 | ... == ... | -| 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:113:9:118:9 | {...} | Finally.cs:110:17:110:49 | throw ...; | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:113:9:118:9 | {...} | -| 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] 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] ... == ... | 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] 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] 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] 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 | | Finally.cs:115:35:115:39 | this access | Finally.cs:115:17:115:41 | ...; | -| 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: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] 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] 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] ... > ... | 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] 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] 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] 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 = ... | | Finally.cs:122:5:131:5 | {...} | Finally.cs:121:10:121:11 | enter M6 | @@ -6177,18 +5435,17 @@ postDominance | Finally.cs:125:24:125:40 | ... / ... | Finally.cs:125:28:125:40 | access to constant E | | Finally.cs:125:28:125:40 | access to constant E | Finally.cs:125:24:125:24 | (...) ... | | Finally.cs:133:10:133:11 | exit M7 | Finally.cs:133:10:133:11 | exit M7 (abnormal) | +| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:141:13:141:44 | throw ...; | | Finally.cs:134:5:145:5 | {...} | Finally.cs:133:10:133:11 | enter M7 | | Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:134:5:145:5 | {...} | | Finally.cs:136:9:138:9 | {...} | Finally.cs:135:9:143:9 | try {...} ... | | 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] throw ...; | Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | +| Finally.cs:140:9:143:9 | {...} | Finally.cs:137:13:137:36 | call to method WriteLine | | 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] 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] "" | 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 | @@ -6200,58 +5457,30 @@ postDominance | 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.cs:151:17:151:28 | ... == ... | -| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:155:9:169:9 | [finally: exception] {...} | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:152:17:152:50 | throw ...; | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | | Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:155:9:169:9 | {...} | -| 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] 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] 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] 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] ... == ... | 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 | -| 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: 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, 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, 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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:159:27:159:44 | object creation of type Exception | +| Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:30:161:30 | Exception e | +| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:39:161:39 | access to local variable e | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:161:52:161:54 | "1" | +| Finally.cs:161:52:161:54 | "1" | Finally.cs:161:39:161:47 | access to property Message | | 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] ...; | 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] 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] 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] 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] ...; | 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] "" | 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 | {...} | @@ -6264,33 +5493,27 @@ postDominance | Finally.cs:174:11:174:20 | exit ExceptionC | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | {...} | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | call to constructor Exception | -| 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:176:10:176:11 | exit M9 (normal) | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:21:186:22 | access to parameter b2 | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:190:21:190:22 | access to parameter b1 | | Finally.cs:177:5:193:5 | {...} | Finally.cs:176:10:176:11 | enter M9 | | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:177:5:193:5 | {...} | | Finally.cs:179:9:181:9 | {...} | Finally.cs:178:9:192:9 | try {...} ... | | 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: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, 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, 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, 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, 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: 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, 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, 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:183:9:192:9 | {...} | Finally.cs:180:17:180:18 | access to parameter b1 | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:185:13:187:13 | {...} | Finally.cs:184:13:191:13 | try {...} ... | +| Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:185:13:187:13 | {...} | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:17:186:47 | if (...) ... | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:17:190:47 | if (...) ... | +| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:190:31:190:46 | 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 | {...} | @@ -6298,34 +5521,22 @@ postDominance | 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.cs:199:17:199:18 | access to parameter b1 | -| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:202:9:212:9 | [finally: exception] {...} | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:21:199:43 | throw ...; | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:27:199:42 | object creation of type ExceptionA | | Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:202:9:212:9 | {...} | -| 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] 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] 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.cs:205:21:205:22 | access to parameter b2 | -| 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:208:13:210:13 | {...} | Finally.cs:205:25:205:47 | throw ...; | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | | Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:208:13:210:13 | {...} | -| 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] 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] 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] ... = ... | 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] "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 | ... = ... | @@ -6350,7 +5561,6 @@ 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 | {...} | @@ -6360,41 +5570,28 @@ postDominance | 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.cs:239:21:239:22 | access to parameter b1 | -| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:243:13:253:13 | [finally: exception] {...} | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:240:21:240:43 | throw ...; | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | | Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:243:13:253:13 | {...} | -| 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] 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] 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.cs:246:25:246:26 | access to parameter b2 | -| 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:250:17:252:17 | {...} | Finally.cs:247:25:247:47 | throw ...; | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | | 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] ...; | 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] "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:251:21:251:54 | call to method WriteLine | | Finally.cs:257:9:259:9 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine | -| 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] ...; | 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] "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] ... = ... | | 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 | {...} | @@ -6403,22 +5600,14 @@ 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] 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] ...; | 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] "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] ... + ... | 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] ...; | 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] 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 | {...} | @@ -6698,9 +5887,8 @@ postDominance | LoopUnrolling.cs:9:13:9:23 | access to property Length | LoopUnrolling.cs:9:13:9:16 | access to parameter args | | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:9:28:9:28 | 0 | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:13:9:23 | access to property Length | -| LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | -| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | | LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:11:22:11:24 | String arg | | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:13:12:35 | ...; | @@ -6715,9 +5903,8 @@ postDominance | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:18:17:47 | array creation of type String[] | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:33:17:35 | "a" | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:38:17:40 | "b" | -| LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | -| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:17:13:17:47 | String[] xs = ... | | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:18:22:18:22 | String x | @@ -6728,22 +5915,25 @@ postDominance | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:29:24:32 | access to parameter args | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:23:5:27:5 | {...} | -| LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | access to parameter args | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:34:25:37 | access to parameter args | | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | -| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | | LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:24:22:24:24 | Char arg | | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | | LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:17:26:40 | ...; | | LoopUnrolling.cs:29:10:29:11 | exit M4 | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | -| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | | LoopUnrolling.cs:30:5:34:5 | {...} | LoopUnrolling.cs:29:10:29:11 | enter M4 | | LoopUnrolling.cs:31:9:31:31 | ... ...; | LoopUnrolling.cs:30:5:34:5 | {...} | | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:29:31:29 | 0 | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:9:31:31 | ... ...; | -| LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | +| LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:33:31:33:31 | access to local variable x | +| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:13:33:33 | ...; | | LoopUnrolling.cs:36:10:36:11 | exit M5 | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:36:10:36:11 | enter M5 | @@ -6763,19 +5953,19 @@ postDominance | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:18:39:47 | array creation of type String[] | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:33:39:35 | "0" | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:38:39:40 | "1" | -| LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:39:13:39:47 | String[] ys = ... | -| LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:40:22:40:22 | String x | | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:42:35:42:39 | ... + ... | | LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:17:42:41 | ...; | | LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:39:42:39 | access to local variable y | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:35:42:35 | access to local variable x | +| LoopUnrolling.cs:45:10:45:11 | exit M6 | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:45:10:45:11 | enter M6 | | LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:46:5:53:5 | {...} | | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | @@ -6785,7 +5975,7 @@ postDominance | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:18:47:47 | array creation of type String[] | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:33:47:35 | "a" | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:38:47:40 | "b" | -| LoopUnrolling.cs:48:9:52:9 | [unroll (line 48)] foreach (... ... in ...) ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:48:22:48:22 | String x | | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:50:34:50:34 | access to local variable x | @@ -6793,8 +5983,7 @@ postDominance | LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:16:50:36 | ...; | | LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | | LoopUnrolling.cs:55:10:55:11 | exit M7 | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | +| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:55:10:55:11 | enter M7 | | LoopUnrolling.cs:57:9:57:48 | ... ...; | LoopUnrolling.cs:56:5:65:5 | {...} | | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | @@ -6804,33 +5993,23 @@ postDominance | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:18:57:47 | array creation of type String[] | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:33:57:35 | "a" | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:38:57:40 | "b" | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | -| LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:57:13:57:47 | String[] xs = ... | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:59:9:64:9 | {...} | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | | LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:60:13:61:37 | if (...) ... | -| LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | -| LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | -| LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | -| LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | +| LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:61:35:61:35 | access to local variable x | +| LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:60:17:60:17 | access to parameter b | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:63:35:63:35 | access to local variable x | +| LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:17:63:37 | ...; | | LoopUnrolling.cs:67:10:67:11 | exit M8 | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:70:13:70:19 | return ...; | -| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:72:9:73:35 | [skip (line 72)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | | LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:67:10:67:11 | enter M8 | | LoopUnrolling.cs:69:9:70:19 | if (...) ... | LoopUnrolling.cs:68:5:74:5 | {...} | | LoopUnrolling.cs:69:14:69:17 | access to parameter args | LoopUnrolling.cs:69:9:70:19 | if (...) ... | @@ -6839,28 +6018,42 @@ postDominance | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:21 | ...; | | LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:71:9:71:12 | access to parameter args | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:69:13:69:23 | [false] !... | -| LoopUnrolling.cs:72:9:73:35 | [skip (line 72)] foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | access to parameter args | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:29:72:32 | access to parameter args | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | | LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:71:9:71:20 | call to method Clear | +| LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | +| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:13:73:35 | ...; | | LoopUnrolling.cs:76:10:76:11 | exit M9 | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | -| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:76:10:76:11 | enter M9 | | LoopUnrolling.cs:78:9:78:34 | ... ...; | LoopUnrolling.cs:77:5:83:5 | {...} | | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:32:78:32 | 0 | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:9:78:34 | ... ...; | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:29:78:29 | 2 | -| LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | +| LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:81:31:81:31 | access to local variable x | +| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:80:9:82:9 | {...} | +| LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:13:81:33 | ...; | | LoopUnrolling.cs:85:10:85:12 | exit M10 | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | -| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | +| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:85:10:85:12 | enter M10 | | LoopUnrolling.cs:87:9:87:34 | ... ...; | LoopUnrolling.cs:86:5:92:5 | {...} | | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:32:87:32 | 2 | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:9:87:34 | ... ...; | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:29:87:29 | 0 | -| LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | +| LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:90:31:90:31 | access to local variable x | +| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:89:9:91:9 | {...} | +| LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:13:90:33 | ...; | | LoopUnrolling.cs:94:10:94:12 | exit M11 | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:94:10:94:12 | enter M11 | @@ -6869,9 +6062,8 @@ postDominance | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:32:96:32 | 2 | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:9:96:34 | ... ...; | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:29:96:29 | 2 | -| LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | -| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | | LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:99:31:99:31 | access to local variable x | @@ -8255,8 +7447,7 @@ postDominance | cflow.cs:256:17:256:37 | ...; | cflow.cs:255:13:255:20 | default: | | cflow.cs:256:35:256:35 | 0 | cflow.cs:256:17:256:37 | ...; | | cflow.cs:257:17:257:22 | break; | cflow.cs:256:17:256:36 | call to method WriteLine | -| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | exit Yield (normal) | -| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:275:13:275:41 | call to method WriteLine | | cflow.cs:262:5:277:5 | {...} | cflow.cs:261:49:261:53 | enter Yield | | cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:263:22:263:22 | 0 | | cflow.cs:263:22:263:22 | 0 | cflow.cs:262:5:277:5 | {...} | @@ -8274,10 +7465,10 @@ postDominance | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:264:25:264:30 | ... < ... | | cflow.cs:269:9:272:9 | {...} | cflow.cs:268:9:276:9 | try {...} ... | | cflow.cs:270:13:270:24 | yield break; | cflow.cs:269:9:272:9 | {...} | -| cflow.cs:274:9:276:9 | [finally: return] {...} | cflow.cs:270:13:270:24 | yield break; | -| cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | cflow.cs:275:31:275:40 | [finally: return] "not dead" | -| cflow.cs:275:13:275:42 | [finally: return] ...; | cflow.cs:274:9:276:9 | [finally: return] {...} | -| cflow.cs:275:31:275:40 | [finally: return] "not dead" | cflow.cs:275:13:275:42 | [finally: return] ...; | +| cflow.cs:274:9:276:9 | {...} | cflow.cs:270:13:270:24 | yield break; | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:31:275:40 | "not dead" | +| cflow.cs:275:13:275:42 | ...; | cflow.cs:274:9:276:9 | {...} | +| cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:42 | ...; | | cflow.cs:282:5:282:18 | exit ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:31:282:33 | {...} | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:5:282:18 | enter ControlFlowSub | @@ -8470,1169 +7661,1272 @@ blockDominance | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | enter M8 | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:24:58:27 | [b (line 56): true] null | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:31:58:32 | [b (line 56): false] "" | +| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:24:58:27 | null | +| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:31:58:32 | "" | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:23:59:36 | [false] ... && ... | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:23:59:36 | [true] ... && ... | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | -| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | +| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:59:36:59:36 | access to parameter b | | Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:58:24:58:27 | [b (line 56): true] null | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:59:23:59:36 | [true] ... && ... | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:58:31:58:32 | [b (line 56): false] "" | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | exit M8 | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:36 | [false] ... && ... | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:23:59:36 | [true] ... && ... | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:59:36:59:36 | access to parameter b | +| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | +| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:23:59:36 | [false] ... && ... | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:23:59:36 | [true] ... && ... | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | enter M9 | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:24:65:27 | [b (line 63): true] null | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:31:65:32 | [b (line 63): false] "" | +| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:24:65:27 | null | +| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:31:65:32 | "" | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:24:66:37 | [false] ... \|\| ... | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:24:66:37 | [true] ... \|\| ... | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | -| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | +| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:65:24:65:27 | [b (line 63): true] null | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:65:31:65:32 | [b (line 63): false] "" | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:66:24:66:37 | [false] ... \|\| ... | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | exit M9 | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:37 | [false] ... \|\| ... | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:66:37:66:37 | access to parameter b | +| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | +| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:24:66:37 | [false] ... \|\| ... | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | enter M10 | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:24:72:27 | [b (line 70): true] null | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:31:72:32 | [b (line 70): false] "" | +| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:24:72:27 | null | +| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:31:72:32 | "" | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:23:73:36 | [false] ... && ... | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:23:73:36 | [true] ... && ... | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | -| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | +| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:73:36:73:36 | access to parameter b | | Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:72:24:72:27 | [b (line 70): true] null | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:73:23:73:36 | [true] ... && ... | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:72:31:72:32 | [b (line 70): false] "" | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | exit M10 | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:36 | [false] ... && ... | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:23:73:36 | [true] ... && ... | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:73:36:73:36 | access to parameter b | +| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | +| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:23:73:36 | [false] ... && ... | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:23:73:36 | [true] ... && ... | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | enter M11 | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:24:79:27 | [b (line 77): true] null | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:31:79:32 | [b (line 77): false] "" | +| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:24:79:27 | null | +| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:31:79:32 | "" | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:24:80:37 | [false] ... \|\| ... | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:24:80:37 | [true] ... \|\| ... | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | -| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | +| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:79:24:79:27 | [b (line 77): true] null | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:79:31:79:32 | [b (line 77): false] "" | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:80:24:80:37 | [false] ... \|\| ... | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | exit M11 | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:37 | [false] ... \|\| ... | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:80:37:80:37 | access to parameter b | +| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | +| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:24:80:37 | [false] ... \|\| ... | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | enter M12 | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | exit M12 | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:31:86:32 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:24:90:25 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:17:126:20 | [b (line 84): true] null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:24:86:27 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:31:86:32 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:17:90:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:90:24:90:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:17:94:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:94:24:94:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:17:98:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:98:24:98:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:17:102:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:102:24:102:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:17:106:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:106:24:106:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:17:110:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:110:24:110:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:17:114:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:114:24:114:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:17:118:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:118:24:118:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:17:122:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:122:24:122:25 | "" | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:17:126:20 | null | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:126:24:126:25 | "" | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:24:127:38 | [false] ... \|\| ... | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:24:127:38 | [true] ... \|\| ... | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:127:38:127:38 | access to parameter b | | Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | exit M12 | | Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:86:31:86:32 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:90:24:90:25 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:90:24:90:25 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:90:24:90:25 | [b (line 84): false] "" | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:24:127:38 | [true] ... \|\| ... | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | exit M12 | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | exit M12 (abnormal) | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | +| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | +| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:17:90:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:90:24:90:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:94:17:94:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:94:24:94:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:98:17:98:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:98:24:98:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:102:17:102:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:102:24:102:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:106:17:106:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:106:24:106:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:110:17:110:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:110:24:110:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:114:17:114:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:114:24:114:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:118:17:118:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:118:24:118:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:122:17:122:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:122:24:122:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:126:17:126:20 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:126:24:126:25 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | +| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | +| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:17:94:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:94:24:94:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:98:17:98:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:98:24:98:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:102:17:102:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:102:24:102:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:106:17:106:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:106:24:106:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:110:17:110:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:110:24:110:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:114:17:114:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:114:24:114:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:118:17:118:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:118:24:118:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:122:17:122:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:122:24:122:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:126:17:126:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:126:24:126:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | +| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | +| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:17:98:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:98:24:98:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:102:17:102:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:102:24:102:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:106:17:106:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:106:24:106:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:110:17:110:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:110:24:110:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:114:17:114:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:114:24:114:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:118:17:118:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:118:24:118:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:122:17:122:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:122:24:122:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:126:17:126:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:126:24:126:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | +| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | +| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:17:102:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:102:24:102:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:106:17:106:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:106:24:106:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:110:17:110:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:110:24:110:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:114:17:114:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:114:24:114:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:118:17:118:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:118:24:118:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:122:17:122:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:122:24:122:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:126:17:126:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:126:24:126:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | +| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | +| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:17:106:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:106:24:106:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:110:17:110:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:110:24:110:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:114:17:114:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:114:24:114:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:118:17:118:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:118:24:118:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:122:17:122:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:122:24:122:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:126:17:126:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:126:24:126:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | +| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | +| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:17:110:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:110:24:110:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:114:17:114:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:114:24:114:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:118:17:118:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:118:24:118:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:122:17:122:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:122:24:122:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:126:17:126:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:126:24:126:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | +| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | +| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:17:114:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:114:24:114:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:118:17:118:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:118:24:118:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:122:17:122:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:122:24:122:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:126:17:126:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:126:24:126:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | +| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | +| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:17:118:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:118:24:118:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:122:17:122:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:122:24:122:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:126:17:126:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:126:24:126:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:17:118:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:118:24:118:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:17:122:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:122:24:122:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:17:126:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:126:24:126:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | +| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | +| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:17:122:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:122:24:122:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:126:17:126:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:126:24:126:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:17:122:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:17:126:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:17:122:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:122:24:122:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:17:126:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:126:24:126:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | +| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | +| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:17:126:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:126:24:126:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:17:126:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:126:24:126:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | +| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | @@ -9642,10 +8936,12 @@ blockDominance | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | +| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:24:127:38 | [false] ... \|\| ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | | Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | enter AssertTrueFalse | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | enter M13 | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | exit M13 | @@ -9697,92 +8993,67 @@ blockDominance | BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:27:21:27:26 | break; | | BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:30:13:33:13 | {...} | | BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:32:21:32:21 | [finally: break] ; | | BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:35:7:35:7 | ; | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:22:22:24 | String arg | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:27:21:27:26 | break; | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:30:13:33:13 | {...} | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | [finally: break] ; | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:35:7:35:7 | ; | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:22:22:24 | String arg | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:27:21:27:26 | break; | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:30:13:33:13 | {...} | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:32:21:32:21 | [finally: break] ; | | BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | break; | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:32:21:32:21 | [finally: break] ; | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:30:13:33:13 | {...} | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:32:21:32:21 | ; | | BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:32:21:32:21 | [finally: break] ; | BreakInTry.cs:32:21:32:21 | [finally: break] ; | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:35:7:35:7 | ; | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | enter M3 | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:43:17:43:23 | return ...; | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | -| BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:50:21:50:26 | [finally: return] break; | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:50:21:50:26 | [finally: return] break; | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:46:9:52:9 | {...} | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:26:47:28 | String arg | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:53:7:53:7 | ; | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | [finally: return] break; | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:26:47:28 | String arg | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:50:21:50:26 | [finally: return] break; | -| BreakInTry.cs:50:21:50:26 | [finally: return] break; | BreakInTry.cs:50:21:50:26 | [finally: return] break; | | BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | enter M4 | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:61:17:61:23 | return ...; | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | -| BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:68:21:68:26 | [finally: return] break; | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:68:21:68:26 | break; | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | | BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:68:21:68:26 | [finally: return] break; | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:64:9:70:9 | {...} | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:26:65:28 | String arg | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | [finally: return] break; | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:68:21:68:26 | break; | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:26:65:28 | String arg | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:68:21:68:26 | break; | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:68:21:68:26 | [finally: return] break; | -| BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:68:21:68:26 | [finally: return] break; | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | enter Default | @@ -9791,6 +9062,14 @@ blockDominance | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | enter M | +| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | exit M | +| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | +| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:39:9:39:34 | ...; | +| CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:40:9:40:11 | End: | +| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M | +| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:34 | ...; | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:9:40:11 | End: | | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | enter M1 | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | @@ -9866,42 +9145,41 @@ blockDominance | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | -| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | +| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:9:8:16 | if (...) ... | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:13:7:16 | [false] !... | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:7:13:7:16 | [true] !... | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:8:13:8:16 | ...; | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:8:13:8:16 | ...; | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [false] !... | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:8:13:8:16 | ...; | | Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:7:13:7:16 | [false] !... | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:13:7:16 | [true] !... | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:16 | ...; | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | enter M1 | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | +| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:13:18:20 | if (...) ... | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:17:17:18 | [false] !... | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:17:17:17:18 | [true] !... | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:18:17:18:20 | ...; | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:19:16:19:16 | access to local variable x | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:18:17:18:20 | ...; | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:19:16:19:16 | access to local variable x | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [false] !... | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:17:17:18 | [true] !... | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:18:17:18:20 | ...; | | Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:17:17:18 | [false] !... | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:17:17:18 | [true] !... | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | @@ -9909,85 +9187,69 @@ blockDominance | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | enter M2 | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | -| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | +| Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:27:17:27:20 | ...; | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:28:9:29:16 | if (...) ... | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:29:13:29:16 | ...; | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:30:16:30:16 | access to local variable x | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | -| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | +| Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:20 | ...; | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:29:13:29:16 | ...; | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:30:16:30:16 | access to local variable x | | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:16 | ...; | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | enter M3 | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:38:13:38:20 | ...; | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | -| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | +| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:41:9:42:16 | if (...) ... | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:42:13:42:16 | ...; | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:43:16:43:16 | access to local variable x | | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:13:38:20 | ...; | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | -| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | +| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:42:13:42:16 | ...; | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:43:16:43:16 | access to local variable x | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:42:13:42:16 | ...; | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:42:13:42:16 | ...; | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:43:16:43:16 | access to local variable x | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:16 | ...; | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x | | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | enter M4 | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | +| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:49:16:49:16 | access to parameter x | | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | +| Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:52:17:52:20 | ...; | | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:54:16:54:16 | access to local variable y | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:50:9:53:9 | {...} | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:54:16:54:16 | access to local variable y | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | +| Conditions.cs:50:9:53:9 | {...} | Conditions.cs:52:17:52:20 | ...; | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:20 | ...; | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | +| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:60:16:60:16 | access to parameter x | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | +| Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:63:17:63:20 | ...; | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:65:9:66:16 | if (...) ... | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:66:13:66:16 | ...; | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:67:16:67:16 | access to local variable y | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:61:9:64:9 | {...} | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:65:9:66:16 | if (...) ... | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:66:13:66:16 | ...; | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:67:16:67:16 | access to local variable y | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | +| Conditions.cs:61:9:64:9 | {...} | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:20 | ...; | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:9:66:16 | if (...) ... | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:66:13:66:16 | ...; | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:67:16:67:16 | access to local variable y | | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:16 | ...; | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y | | Conditions.cs:70:9:70:10 | enter M6 | Conditions.cs:70:9:70:10 | enter M6 | @@ -10054,26 +9316,24 @@ blockDominance | Conditions.cs:97:17:97:20 | ...; | Conditions.cs:97:17:97:20 | ...; | | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | enter M8 | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | +| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:13:109:24 | if (...) ... | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:17:108:18 | [false] !... | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:108:17:108:18 | [true] !... | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:109:17:109:24 | ...; | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:110:16:110:16 | access to local variable x | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:109:17:109:24 | ...; | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:110:16:110:16 | access to local variable x | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [false] !... | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:17:108:18 | [true] !... | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:109:17:109:24 | ...; | | Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:17:108:18 | [false] !... | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:17:108:18 | [true] !... | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | @@ -10084,92 +9344,66 @@ blockDominance | Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:113:10:113:11 | enter M9 | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:113:10:113:11 | exit M9 (normal) | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | exit M9 (normal) | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:117:9:123:9 | {...} | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:122:17:122:25 | ...; | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:122:17:122:25 | ...; | +| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:116:42:116:42 | access to local variable i | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:13:122:25 | if (...) ... | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | enter M10 | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | +| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:131:16:131:19 | true | | Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | -| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | +| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:136:17:138:17 | {...} | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | true | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:136:17:138:17 | {...} | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | -| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | +| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:132:9:140:9 | {...} | Conditions.cs:136:17:138:17 | {...} | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:136:17:138:17 | {...} | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:136:17:138:17 | {...} | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | enter M11 | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | -| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | +| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:17:145:29 | ... ? ... : ... | +| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:145:27:145:29 | "b" | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:147:13:147:49 | ...; | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:149:13:149:49 | ...; | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:149:13:149:49 | ...; | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | exit M11 (normal) | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:147:13:147:49 | ...; | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:149:13:149:49 | ...; | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:49 | ...; | | Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:49 | ...; | | ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | enter ExitMethods | @@ -10180,19 +9414,13 @@ blockDominance | ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | enter M5 | | ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | enter M6 | | ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | | ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | +| ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:48:9:51:9 | catch (...) {...} | | ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:49:9:51:9 | {...} | | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | -| ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:49:9:51:9 | {...} | | ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | enter M7 | | ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | enter M8 | @@ -10257,82 +9485,95 @@ 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] {...} | -| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:14:9:16:9 | {...} | +| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | exit M1 (abnormal) | +| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | exit M1 (normal) | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | -| 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:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 (abnormal) | +| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | exit M1 (normal) | | 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 (...) {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | +| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:26:9:29:9 | catch (...) {...} | +| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:26:38:26:39 | IOException ex | | Finally.cs:19:10:19:11 | enter M2 | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | +| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:30:41:30:42 | ArgumentException ex | | 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:41:9:43:9 | 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 | enter M2 | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:49:9:51:9 | {...} | | 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: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 | {...} | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | -| 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:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | catch (...) {...} | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:27:9:29:9 | {...} | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:27:9:29:9 | {...} | | Finally.cs:27:9:29:9 | {...} | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | -| 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:34:27:34:32 | throw ...; | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | 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:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | -| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:34:27:34:32 | throw ...; | | Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:27:34:32 | throw ...; | -| 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:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | 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:44:9:47:9 | catch {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | exit M2 | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | exit M2 (abnormal) | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | exit M2 (normal) | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:49:9:51:9 | {...} | | 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 (...) {...} | -| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | +| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:61:9:64:9 | catch (...) {...} | +| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:61:38:61:39 | IOException ex | | Finally.cs:54:10:54:11 | enter M3 | Finally.cs:62:9:64:9 | {...} | -| 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:65:9:67:9 | catch (...) {...} | +| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:65:26:65:26 | 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] {...} | +| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:69:9:71:9 | {...} | | 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: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] {...} | -| 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:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | catch (...) {...} | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:62:9:64:9 | {...} | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:61:38:61:39 | 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: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:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:66:9:67:9 | {...} | | Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | exit M3 | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | exit M3 (abnormal) | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | exit M3 (normal) | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:69:9:71:9 | {...} | | 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) | @@ -10345,21 +9586,8 @@ blockDominance | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:86:21:86:26 | break; | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:25:93:46 | [finally: break] throw ...; | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | -| 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] {...} | -| 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] {...} | -| 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] {...} | -| 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 | | Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) | @@ -10375,21 +9603,8 @@ blockDominance | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:86:21:86:26 | break; | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | [finally: break] throw ...; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | -| 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] {...} | -| 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] {...} | -| 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] {...} | -| 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) | | Finally.cs:78:9:100:9 | {...} | Finally.cs:78:9:100:9 | {...} | @@ -10399,93 +9614,27 @@ blockDominance | Finally.cs:78:9:100:9 | {...} | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:78:9:100:9 | {...} | Finally.cs:86:21:86:26 | break; | | Finally.cs:78:9:100:9 | {...} | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | [finally: break] throw ...; | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | Finally.cs:78:9:100:9 | {...} | Finally.cs:93:25:93:46 | throw ...; | -| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | -| 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] {...} | -| 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] {...} | -| 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] {...} | -| 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] {...} | -| 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; | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:86:21:86:26 | break; | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:25:93:46 | [finally: break] throw ...; | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | -| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:25:93:46 | throw ...; | -| 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] {...} | -| 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] {...} | -| 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] {...} | -| 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; | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:25:93:46 | [finally: break] throw ...; | -| 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] {...} | -| 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] {...} | -| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break] {...} | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:74:10:74:11 | exit M4 (abnormal) | | 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] {...} | | 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 ...; | -| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | 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] {...} | -| 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] {...} | -| 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] {...} | | 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] {...} | -| 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] {...} | 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] {...} | 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:74:10:74:11 | exit M4 (abnormal) | | 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 | | Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | exit M5 | @@ -10499,27 +9648,15 @@ 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] {...} | | 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] !... | -| 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] !... | -| 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] ...; | -| 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] 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] ...; | -| 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) | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | exit M5 (normal) | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:103:10:103:11 | exit M5 (normal) | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | | 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:108:17:108:23 | return ...; | @@ -10528,18 +9665,6 @@ 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.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: 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: return] ...; | -| 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: 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 | | Finally.cs:107:33:107:33 | 0 | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:107:33:107:33 | 0 | Finally.cs:109:13:110:49 | if (...) ... | @@ -10547,191 +9672,87 @@ blockDominance | Finally.cs:107:33:107:33 | 0 | Finally.cs:109:33:109:33 | 1 | | 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: 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: 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: return] ...; | -| 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: 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] !... | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:17:114:36 | [true, finally: return] !... | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | -| Finally.cs:108:17:108:23 | return ...; | Finally.cs:117:17:117:37 | [finally: return] ...; | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:28 | access to property Length | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:33:109:33 | 1 | | 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.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:116:13:117:37 | if (...) ... | -| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:117:17:117:37 | ...; | | 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.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:116:13:117:37 | if (...) ... | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:117:17:117:37 | ...; | | 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.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:116:13:117:37 | if (...) ... | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | ...; | | 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: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] {...} | 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:103:10:103:11 | exit M5 | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | exit M5 (abnormal) | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | exit M5 (normal) | | 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] !... | 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] !... | 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] ...; | 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] 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:103:10:103:11 | exit M5 | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | exit M5 (normal) | | 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] ...; | 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] {...} | -| 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] {...} | 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 | | Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (abnormal) | | 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] {...} | | 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] 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] "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, 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, 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:161:13:164:13 | catch (...) {...} | +| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | Exception e | | 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] 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: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] {...} | -| 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 | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | exit M8 (abnormal) | | 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 | | Finally.cs:155:9:169:9 | {...} | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:155:9:169:9 | {...} | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | -| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:13:164:13 | catch (...) {...} | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:161:30:161:30 | Exception e | | Finally.cs:155:9:169:9 | {...} | Finally.cs:162:13:164:13 | {...} | | Finally.cs:155:9:169:9 | {...} | Finally.cs:165:13:168:13 | catch {...} | | 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] 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] "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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | catch (...) {...} | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:162:13:164:13 | {...} | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:165:13:168:13 | catch {...} | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:30:161:30 | Exception e | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:162:13:164:13 | {...} | | Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} | -| 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 | @@ -10740,158 +9761,87 @@ blockDominance | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 (normal) | -| 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, 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, 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, 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, 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, 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, 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 | enter M9 | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | 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: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, 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 ...; | -| 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 | -| 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 (...) {...} | -| 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, 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, 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, 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, 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, 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, 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:180:21:180:43 | throw ...; | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | exit M9 | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | exit M9 (normal) | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:31:190:46 | object creation of type ExceptionC | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | 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] {...} | | 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] 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] 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] {...} | -| 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] 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] ...; | +| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:213:9:213:25 | ...; | | 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: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] {...} | -| 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:195:10:195:12 | exit M10 | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | exit M10 (abnormal) | | 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] {...} | | 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] 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] throw ...; | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:213:9:213:25 | ...; | | Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | -| 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] {...} | -| 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:195:10:195:12 | exit M10 | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | exit M10 (abnormal) | | 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] 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:208:13:210:13 | {...} | Finally.cs:213:9:213:25 | ...; | | 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] ...; | Finally.cs:211:13:211:29 | [finally: exception] ...; | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:213:9:213:25 | ...; | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:25 | ...; | | 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 | {...} | @@ -10899,62 +9849,52 @@ 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] {...} | | 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] 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] 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] {...} | -| 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] {...} | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:254:13:254:45 | ...; | | Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | {...} | +| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:260:9:260:34 | ...; | | 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: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] {...} | -| 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:233:10:233:12 | exit M12 | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | | 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] {...} | | Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | {...} | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:254:13:254:45 | ...; | | Finally.cs:243:13:253:13 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:260:9:260:34 | ...; | | Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | -| 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] {...} | -| 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 | exit M12 | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | | Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:254:13:254:45 | ...; | | Finally.cs:250:17:252:17 | {...} | Finally.cs:257:9:259:9 | {...} | -| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:257:9:259:9 | [finally: exception] {...} | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:260:9:260:34 | ...; | +| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:45 | ...; | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | exit M12 | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | | Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:260:9:260:34 | ...; | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:9:260:34 | ...; | | 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] {...} | -| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:270:9:273:9 | {...} | +| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | exit M13 (abnormal) | +| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | exit M13 (normal) | | Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | -| 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 | {...} | +| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 (abnormal) | +| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 (normal) | | 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 | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | exit M1 (normal) | @@ -11035,110 +9975,149 @@ blockDominance | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | enter M1 | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:10:13:10:19 | return ...; | +| LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:22:11:24 | String arg | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:22:11:24 | String arg | | LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | enter M2 | | LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | +| LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | -| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | enter M3 | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:26:25:29 | Char arg0 | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | enter M4 | | LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | +| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:32:22:32:22 | String x | | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:22:32:22 | String x | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | enter M5 | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | enter M6 | +| LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:48:22:48:22 | String x | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:50:9:50:13 | Label: | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:48:22:48:22 | String x | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:50:9:50:13 | Label: | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:9:50:13 | Label: | | LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | enter M7 | | LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | +| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | +| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:63:17:63:37 | ...; | | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:63:17:63:37 | ...; | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:37 | ...; | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | enter M8 | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [false] !... | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:69:13:69:23 | [true] !... | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:70:13:70:19 | return ...; | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:72:22:72:24 | String arg | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | | LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:69:13:69:23 | [false] !... | | LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:72:22:72:24 | String arg | | LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:69:13:69:23 | [true] !... | | LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:70:13:70:19 | return ...; | | LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:22:72:24 | String arg | | LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | enter M9 | | LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | +| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:79:22:79:22 | String x | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:22:79:22 | String x | | LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | enter M10 | | LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | +| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:88:22:88:22 | String x | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:22:88:22 | String x | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | enter M11 | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | +| LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | -| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | @@ -12774,13 +11753,25 @@ blockDominance | cflow.cs:254:17:254:27 | goto ...; | cflow.cs:254:17:254:27 | goto ...; | | cflow.cs:255:13:255:20 | default: | cflow.cs:255:13:255:20 | default: | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | enter Yield | +| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | exit Yield | +| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | exit Yield (abnormal) | +| cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | exit Yield (normal) | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:264:25:264:25 | access to local variable i | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:265:9:267:9 | {...} | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:268:9:276:9 | try {...} ... | +| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | exit Yield | +| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield (abnormal) | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield (normal) | +| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield | +| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (abnormal) | +| cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | exit Yield (normal) | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:25 | access to local variable i | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:265:9:267:9 | {...} | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:268:9:276:9 | try {...} ... | | cflow.cs:265:9:267:9 | {...} | cflow.cs:265:9:267:9 | {...} | +| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | exit Yield | +| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | exit Yield (abnormal) | +| cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | exit Yield (normal) | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:268:9:276:9 | try {...} ... | | cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | enter ControlFlowSub | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | enter ControlFlowSub | @@ -12922,687 +11913,1174 @@ postBlockDominance | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | enter M8 | | Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | exit M8 | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:58:24:58:27 | [b (line 56): true] null | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:58:31:58:32 | [b (line 56): false] "" | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | enter M8 | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:24:58:27 | null | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:31:58:32 | "" | +| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | +| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:58:24:58:27 | [b (line 56): true] null | +| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:58:24:58:27 | null | +| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:58:31:58:32 | "" | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:59:23:59:36 | [true] ... && ... | -| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | +| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:59:36:59:36 | access to parameter b | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:23:59:36 | [false] ... && ... | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:58:24:58:27 | [b (line 56): true] null | +| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:58:24:58:27 | null | +| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:58:31:58:32 | "" | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:23:59:36 | [true] ... && ... | -| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:56:10:56:11 | enter M8 | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:58:24:58:27 | [b (line 56): true] null | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | +| Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:36:59:36 | access to parameter b | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:56:10:56:11 | enter M8 | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:24:58:27 | null | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:31:58:32 | "" | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | enter M9 | | Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | exit M9 | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:65:24:65:27 | [b (line 63): true] null | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:65:31:65:32 | [b (line 63): false] "" | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | enter M9 | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:24:65:27 | null | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:31:65:32 | "" | +| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | +| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:65:31:65:32 | [b (line 63): false] "" | +| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:65:24:65:27 | null | +| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:65:31:65:32 | "" | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:66:24:66:37 | [false] ... \|\| ... | -| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | +| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:65:31:65:32 | [b (line 63): false] "" | +| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:65:24:65:27 | null | +| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:65:31:65:32 | "" | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:24:66:37 | [false] ... \|\| ... | -| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | +| Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:63:10:63:11 | enter M9 | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:65:31:65:32 | [b (line 63): false] "" | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:63:10:63:11 | enter M9 | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:24:65:27 | null | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:31:65:32 | "" | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | enter M10 | | Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | exit M10 | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:72:24:72:27 | [b (line 70): true] null | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:72:31:72:32 | [b (line 70): false] "" | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | enter M10 | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:24:72:27 | null | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:31:72:32 | "" | +| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | +| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:72:24:72:27 | [b (line 70): true] null | +| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:72:24:72:27 | null | +| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:72:31:72:32 | "" | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:73:23:73:36 | [true] ... && ... | -| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | +| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:73:36:73:36 | access to parameter b | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:23:73:36 | [false] ... && ... | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:72:24:72:27 | [b (line 70): true] null | +| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:72:24:72:27 | null | +| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:72:31:72:32 | "" | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:23:73:36 | [true] ... && ... | -| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:70:10:70:12 | enter M10 | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:72:24:72:27 | [b (line 70): true] null | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | +| Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:36:73:36 | access to parameter b | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:70:10:70:12 | enter M10 | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:20:72:32 | ... ? ... : ... | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:24:72:27 | null | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:31:72:32 | "" | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | enter M11 | | Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | exit M11 | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:79:24:79:27 | [b (line 77): true] null | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:79:31:79:32 | [b (line 77): false] "" | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | enter M11 | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:24:79:27 | null | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:31:79:32 | "" | +| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | +| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:79:31:79:32 | [b (line 77): false] "" | +| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:79:24:79:27 | null | +| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:79:31:79:32 | "" | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:80:24:80:37 | [false] ... \|\| ... | -| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | +| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:79:31:79:32 | [b (line 77): false] "" | +| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:79:24:79:27 | null | +| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:79:31:79:32 | "" | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:24:80:37 | [false] ... \|\| ... | -| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | +| Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:77:10:77:12 | enter M11 | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:79:31:79:32 | [b (line 77): false] "" | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:77:10:77:12 | enter M11 | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:79:20:79:32 | ... ? ... : ... | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:79:24:79:27 | null | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:79:31:79:32 | "" | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | enter M12 | | Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | exit M12 | | Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | exit M12 (abnormal) | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:86:31:86:32 | [b (line 84): false] "" | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:90:24:90:25 | [b (line 84): false] "" | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:94:24:94:25 | [b (line 84): false] "" | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:98:24:98:25 | [b (line 84): false] "" | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:102:24:102:25 | [b (line 84): false] "" | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:106:24:106:25 | [b (line 84): false] "" | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:110:24:110:25 | [b (line 84): false] "" | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:114:24:114:25 | [b (line 84): false] "" | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:126:17:126:20 | [b (line 84): true] null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:86:24:86:27 | null | Assert.cs:86:24:86:27 | null | +| Assert.cs:86:31:86:32 | "" | Assert.cs:86:31:86:32 | "" | +| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:86:24:86:27 | null | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:86:31:86:32 | "" | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:90:17:90:20 | null | Assert.cs:90:17:90:20 | null | +| Assert.cs:90:24:90:25 | "" | Assert.cs:90:24:90:25 | "" | +| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:86:24:86:27 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:86:31:86:32 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:90:17:90:20 | null | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:90:24:90:25 | "" | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:94:17:94:20 | null | Assert.cs:94:17:94:20 | null | +| Assert.cs:94:24:94:25 | "" | Assert.cs:94:24:94:25 | "" | +| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:86:24:86:27 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:86:31:86:32 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:90:17:90:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:90:24:90:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:94:17:94:20 | null | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:94:24:94:25 | "" | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:98:17:98:20 | null | Assert.cs:98:17:98:20 | null | +| Assert.cs:98:24:98:25 | "" | Assert.cs:98:24:98:25 | "" | +| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:86:24:86:27 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:86:31:86:32 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:90:17:90:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:90:24:90:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:94:17:94:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:94:24:94:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:98:17:98:20 | null | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:98:24:98:25 | "" | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:102:17:102:20 | null | Assert.cs:102:17:102:20 | null | +| Assert.cs:102:24:102:25 | "" | Assert.cs:102:24:102:25 | "" | +| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:86:24:86:27 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:86:31:86:32 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:90:17:90:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:90:24:90:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:94:17:94:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:94:24:94:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:98:17:98:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:98:24:98:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:102:17:102:20 | null | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:102:24:102:25 | "" | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:106:17:106:20 | null | Assert.cs:106:17:106:20 | null | +| Assert.cs:106:24:106:25 | "" | Assert.cs:106:24:106:25 | "" | +| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:86:24:86:27 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:86:31:86:32 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:90:17:90:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:90:24:90:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:94:17:94:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:94:24:94:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:98:17:98:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:98:24:98:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:102:17:102:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:102:24:102:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:106:17:106:20 | null | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:106:24:106:25 | "" | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:110:17:110:20 | null | Assert.cs:110:17:110:20 | null | +| Assert.cs:110:24:110:25 | "" | Assert.cs:110:24:110:25 | "" | +| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:86:24:86:27 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:86:31:86:32 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:90:17:90:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:90:24:90:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:94:17:94:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:94:24:94:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:98:17:98:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:98:24:98:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:102:17:102:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:102:24:102:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:106:17:106:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:106:24:106:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:110:17:110:20 | null | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:110:24:110:25 | "" | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:114:17:114:20 | null | Assert.cs:114:17:114:20 | null | +| Assert.cs:114:24:114:25 | "" | Assert.cs:114:24:114:25 | "" | +| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:86:24:86:27 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:86:31:86:32 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:90:17:90:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:90:24:90:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:94:17:94:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:94:24:94:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:98:17:98:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:98:24:98:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:102:17:102:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:102:24:102:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:106:17:106:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:106:24:106:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:110:17:110:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:110:24:110:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:114:17:114:20 | null | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:114:24:114:25 | "" | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:23:115:36 | [false] ... && ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:86:24:86:27 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:86:31:86:32 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:90:17:90:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:90:24:90:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:94:17:94:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:94:24:94:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:98:17:98:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:98:24:98:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:102:17:102:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:102:24:102:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:106:17:106:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:106:24:106:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:110:17:110:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:110:24:110:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:114:17:114:20 | null | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:114:24:114:25 | "" | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:118:17:118:20 | null | Assert.cs:118:17:118:20 | null | +| Assert.cs:118:24:118:25 | "" | Assert.cs:118:24:118:25 | "" | +| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:86:24:86:27 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:86:31:86:32 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:90:17:90:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:90:24:90:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:94:17:94:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:94:24:94:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:98:17:98:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:98:24:98:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:102:17:102:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:102:24:102:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:106:17:106:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:106:24:106:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:110:17:110:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:110:24:110:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:114:17:114:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:114:24:114:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:118:17:118:20 | null | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:118:24:118:25 | "" | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:86:24:86:27 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:90:17:90:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:94:17:94:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:98:17:98:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:102:17:102:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:106:17:106:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:110:17:110:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:114:17:114:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:118:17:118:20 | null | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:37:119:38 | [true] !... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:86:24:86:27 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:86:31:86:32 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:90:17:90:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:90:24:90:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:94:17:94:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:94:24:94:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:98:17:98:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:98:24:98:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:102:17:102:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:102:24:102:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:106:17:106:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:106:24:106:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:110:17:110:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:110:24:110:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:114:17:114:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:114:24:114:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:118:17:118:20 | null | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:118:24:118:25 | "" | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:122:17:122:20 | null | Assert.cs:122:17:122:20 | null | +| Assert.cs:122:24:122:25 | "" | Assert.cs:122:24:122:25 | "" | +| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:86:24:86:27 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:86:31:86:32 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:90:17:90:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:90:24:90:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:94:17:94:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:94:24:94:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:98:17:98:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:98:24:98:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:102:17:102:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:102:24:102:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:106:17:106:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:106:24:106:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:110:17:110:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:110:24:110:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:114:17:114:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:114:24:114:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:118:17:118:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:118:24:118:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:122:17:122:20 | null | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:122:24:122:25 | "" | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:23:123:36 | [false] ... && ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:86:24:86:27 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:86:31:86:32 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:90:17:90:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:90:24:90:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:94:17:94:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:94:24:94:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:98:17:98:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:98:24:98:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:102:17:102:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:102:24:102:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:106:17:106:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:106:24:106:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:110:17:110:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:110:24:110:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:114:17:114:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:114:24:114:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:118:17:118:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:118:24:118:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:122:17:122:20 | null | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:122:24:122:25 | "" | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:24:126:25 | "" | +| Assert.cs:126:17:126:20 | null | Assert.cs:126:17:126:20 | null | +| Assert.cs:126:24:126:25 | "" | Assert.cs:126:24:126:25 | "" | | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:126:17:126:20 | [b (line 84): true] null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:86:24:86:27 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:86:31:86:32 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:90:17:90:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:90:24:90:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:94:17:94:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:94:24:94:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:98:17:98:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:98:24:98:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:102:17:102:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:102:24:102:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:106:17:106:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:106:24:106:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:110:17:110:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:110:24:110:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:114:17:114:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:114:24:114:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:118:17:118:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:118:24:118:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:122:17:122:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:122:24:122:25 | "" | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:126:17:126:20 | null | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:126:24:126:25 | "" | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:127:24:127:38 | [false] ... \|\| ... | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | +| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:127:38:127:38 | access to parameter b | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:126:17:126:20 | [b (line 84): true] null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:86:24:86:27 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:90:17:90:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:94:17:94:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:98:17:98:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:102:17:102:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:106:17:106:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:110:17:110:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:114:17:114:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:118:17:118:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:122:17:122:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:126:17:126:20 | null | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:126:24:126:25 | "" | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | +| Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:38:127:38 | access to parameter b | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:126:17:126:20 | [b (line 84): true] null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:86:24:86:27 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:86:31:86:32 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:90:17:90:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:90:24:90:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:94:17:94:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:94:24:94:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:98:17:98:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:98:24:98:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:102:17:102:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:102:24:102:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:106:17:106:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:106:24:106:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:110:17:110:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:110:24:110:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:114:17:114:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:114:24:114:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:118:17:118:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:118:24:118:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:122:17:122:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:122:24:122:25 | "" | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:126:17:126:20 | null | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:126:24:126:25 | "" | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:37:127:38 | [false] !... | -| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | enter M12 | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:86:24:86:27 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:90:17:90:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:94:17:94:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:98:17:98:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:102:17:102:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:106:17:106:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:110:17:110:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:114:17:114:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:118:17:118:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | +| Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:38:127:38 | access to parameter b | +| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:37:127:38 | [true] !... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:84:10:84:12 | enter M12 | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:86:20:86:32 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:86:24:86:27 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:86:31:86:32 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:90:13:90:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:90:17:90:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:90:24:90:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:94:13:94:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:94:17:94:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:94:24:94:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:98:13:98:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:98:17:98:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:98:24:98:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:102:13:102:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:102:17:102:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:102:24:102:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:106:13:106:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:106:17:106:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:106:24:106:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:110:13:110:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:110:17:110:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:110:24:110:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:114:13:114:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:114:17:114:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:114:24:114:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:115:36:115:36 | access to parameter b | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:118:13:118:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:118:17:118:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:118:24:118:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:119:24:119:38 | [false] ... \|\| ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:119:38:119:38 | access to parameter b | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:122:13:122:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:122:17:122:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:122:24:122:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:123:36:123:36 | access to parameter b | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:126:13:126:25 | ... ? ... : ... | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:126:17:126:20 | null | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:126:24:126:25 | "" | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:38:127:38 | access to parameter b | | Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | enter AssertTrueFalse | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | enter M13 | | Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | exit M13 | @@ -13641,68 +13119,56 @@ postBlockDominance | BreakInTry.cs:20:10:20:11 | enter M2 | BreakInTry.cs:20:10:20:11 | enter M2 | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:20:10:20:11 | enter M2 | | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:30:13:33:13 | {...} | -| BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | BreakInTry.cs:32:21:32:21 | ; | | BreakInTry.cs:22:22:22:24 | String arg | BreakInTry.cs:22:22:22:24 | String arg | | BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:27:21:27:26 | break; | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:22:22:22:24 | String arg | +| BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:27:21:27:26 | break; | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:30:13:33:13 | {...} | | BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:32:21:32:21 | [finally: break] ; | BreakInTry.cs:32:21:32:21 | [finally: break] ; | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | enter M2 | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:22:22:22:24 | String arg | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:27:21:27:26 | break; | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:30:13:33:13 | {...} | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:32:21:32:21 | ; | -| BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:32:21:32:21 | [finally: break] ; | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:35:7:35:7 | ; | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | enter M3 | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | enter M3 | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:43:17:43:23 | return ...; | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | -| BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:50:21:50:26 | [finally: return] break; | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:43:17:43:23 | return ...; | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | enter M3 | +| BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:43:17:43:23 | return ...; | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:43:17:43:23 | return ...; | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | enter M3 | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:43:17:43:23 | return ...; | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:46:9:52:9 | {...} | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | -| BreakInTry.cs:50:21:50:26 | [finally: return] break; | BreakInTry.cs:50:21:50:26 | [finally: return] break; | | BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:50:21:50:26 | break; | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:46:9:52:9 | {...} | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:47:26:47:28 | String arg | -| BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:50:21:50:26 | break; | | BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:53:7:53:7 | ; | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | enter M4 | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | enter M4 | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:61:17:61:23 | return ...; | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | -| BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:68:21:68:26 | [finally: return] break; | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:68:21:68:26 | break; | | BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:61:17:61:23 | return ...; | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | enter M4 | +| BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:61:17:61:23 | return ...; | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:64:9:70:9 | {...} | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:61:17:61:23 | return ...; | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | enter M4 | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:61:17:61:23 | return ...; | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:64:9:70:9 | {...} | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:65:26:65:28 | String arg | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | -| BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:68:21:68:26 | [finally: return] break; | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | enter Default | @@ -13711,6 +13177,12 @@ postBlockDominance | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | enter M | +| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M | +| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:34 | ...; | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | enter M | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:39:9:39:34 | ...; | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:9:40:11 | End: | | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | enter M1 | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | enter M1 | @@ -13784,52 +13256,48 @@ postBlockDominance | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | -| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | +| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:9:8:16 | if (...) ... | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:13:7:16 | [false] !... | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:13:7:16 | [true] !... | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:8:13:8:16 | ...; | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | -| Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | enter IncrOrDecr | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:6:13:6:16 | ...; | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:9:8:16 | if (...) ... | | Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:7:13:7:16 | [false] !... | -| Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:7:13:7:16 | [true] !... | -| Conditions.cs:8:13:8:16 | ...; | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:7:13:7:16 | [true] !... | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:16 | ...; | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | enter M1 | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | -| Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | enter M1 | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:13:18:20 | if (...) ... | | Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:17:17:17:18 | [false] !... | -| Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:17:17:17:18 | [true] !... | -| Conditions.cs:18:17:18:20 | ...; | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:17:17:17:18 | [true] !... | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:20 | ...; | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | enter M1 | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | -| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | +| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:15:13:15:16 | ...; | +| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:16:9:18:20 | if (...) ... | +| Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:13:18:20 | if (...) ... | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:17:17:18 | [false] !... | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:17:17:17:18 | [true] !... | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:18:17:18:20 | ...; | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:19:16:19:16 | access to local variable x | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | enter M2 | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:20 | ...; | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:22:9:22:10 | enter M2 | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:26:13:27:20 | if (...) ... | +| Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:27:17:27:20 | ...; | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:9:29:16 | if (...) ... | -| Conditions.cs:29:13:29:16 | ...; | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:29:13:29:16 | ...; | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | enter M2 | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:26:13:27:20 | if (...) ... | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | -| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | +| Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:27:17:27:20 | ...; | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:28:9:29:16 | if (...) ... | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:29:13:29:16 | ...; | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:30:16:30:16 | access to local variable x | @@ -13838,59 +13306,49 @@ postBlockDominance | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:33:9:33:10 | enter M3 | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:38:13:38:20 | ...; | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | -| Conditions.cs:42:13:42:16 | ...; | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:33:9:33:10 | enter M3 | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:38:13:38:20 | ...; | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:39:9:40:16 | if (...) ... | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:9:42:16 | if (...) ... | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:16 | ...; | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | enter M3 | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:38:13:38:20 | ...; | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:39:9:40:16 | if (...) ... | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | -| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | +| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:40:13:40:16 | ...; | +| Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:41:9:42:16 | if (...) ... | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:42:13:42:16 | ...; | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:43:16:43:16 | access to local variable x | | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | enter M4 | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:46:9:46:10 | enter M4 | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:16 | access to parameter x | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:50:9:53:9 | {...} | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:52:17:52:20 | ...; | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:20 | ...; | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | enter M4 | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | +| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:49:16:49:16 | access to parameter x | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:50:9:53:9 | {...} | -| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | +| Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:52:17:52:20 | ...; | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:16:54:16 | access to local variable y | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:57:9:57:10 | enter M5 | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:16 | access to parameter x | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:61:9:64:9 | {...} | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:63:17:63:20 | ...; | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:20 | ...; | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:57:9:57:10 | enter M5 | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:61:9:64:9 | {...} | +| Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:63:17:63:20 | ...; | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:9:66:16 | if (...) ... | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:66:13:66:16 | ...; | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:66:13:66:16 | ...; | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | enter M5 | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | +| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:60:16:60:16 | access to parameter x | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:61:9:64:9 | {...} | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | -| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | +| Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:63:17:63:20 | ...; | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:65:9:66:16 | if (...) ... | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:66:13:66:16 | ...; | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:67:16:67:16 | access to local variable y | @@ -13955,22 +13413,19 @@ postBlockDominance | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:97:17:97:20 | ...; | | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:99:16:99:16 | access to local variable x | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | enter M8 | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | -| Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | enter M8 | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:13:109:24 | if (...) ... | | Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:108:17:108:18 | [false] !... | -| Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:108:17:108:18 | [true] !... | -| Conditions.cs:109:17:109:24 | ...; | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:108:17:108:18 | [true] !... | | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:109:17:109:24 | ...; | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:102:12:102:13 | enter M8 | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | -| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | +| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:106:13:106:20 | ...; | +| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:107:9:109:24 | if (...) ... | +| Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:13:109:24 | if (...) ... | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:17:108:18 | [false] !... | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:108:17:108:18 | [true] !... | | Conditions.cs:110:16:110:16 | access to local variable x | Conditions.cs:109:17:109:24 | ...; | @@ -13981,60 +13436,58 @@ postBlockDominance | Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:113:10:113:11 | exit M9 (normal) | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | enter M9 | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:25:116:25 | access to local variable i | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:116:42:116:42 | access to local variable i | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:117:9:123:9 | {...} | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | -| Conditions.cs:122:17:122:25 | ...; | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | +| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:117:9:123:9 | {...} | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:119:17:119:21 | [false] !... | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:119:17:119:21 | [true] !... | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:120:17:120:23 | ...; | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:13:122:25 | if (...) ... | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:17:122:25 | ...; | | Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | enter M10 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:131:16:131:19 | true | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:132:9:140:9 | {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:134:13:139:13 | {...} | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:136:17:138:17 | {...} | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | enter M11 | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | enter M11 | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 (normal) | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | -| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | +| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:17:145:29 | ... ? ... : ... | +| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:145:27:145:29 | "b" | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:147:13:147:49 | ...; | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:149:13:149:49 | ...; | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | -| Conditions.cs:147:13:147:49 | ...; | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | enter M11 | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:17:145:29 | ... ? ... : ... | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:27:145:29 | "b" | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:21:145:23 | "a" | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:49 | ...; | -| Conditions.cs:149:13:149:49 | ...; | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | | Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:49 | ...; | | ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | enter ExitMethods | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | enter M1 | @@ -14045,17 +13498,12 @@ postBlockDominance | ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | enter M6 | | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | enter M6 | | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | +| ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:48:9:51:9 | catch (...) {...} | | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:49:9:51:9 | {...} | -| ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | -| ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:45:9:47:9 | {...} | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | -| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | +| ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:49:9:51:9 | {...} | | ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | enter M7 | | ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | enter M8 | @@ -14106,57 +13554,79 @@ 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] {...} | 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:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 (abnormal) | +| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | enter M1 | +| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:7:10:7:11 | exit M1 (normal) | | 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 ...; | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:26:9:29:9 | catch (...) {...} | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:27:9:29:9 | {...} | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:41:9:43:9 | catch (...) {...} | | Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:49:9:51:9 | {...} | | 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:26:9:29:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:9:29:9 | catch (...) {...} | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:27:9:29:9 | {...} | Finally.cs:26:38:26:39 | IOException ex | | Finally.cs:27:9:29:9 | {...} | Finally.cs:27:9:29:9 | {...} | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:30:41:30:42 | ArgumentException ex | | Finally.cs:34:27:34:32 | throw ...; | Finally.cs:34:27:34:32 | throw ...; | -| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40: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:26:9:29:9 | [exception: Exception] catch (...) {...} | -| 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:41:9:43:9 | catch (...) {...} | Finally.cs:41:9:43:9 | 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:44:9:47:9 | catch {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | enter M2 | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:24:13:24:19 | return ...; | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:26:9:29:9 | catch (...) {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:26:38:26:39 | IOException ex | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:27:9:29:9 | {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:30:9:40:9 | catch (...) {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:30:41:30:42 | ArgumentException ex | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:34:27:34:32 | throw ...; | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:41:9:43:9 | catch (...) {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:42:9:43:9 | {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:44:9:47:9 | catch {...} | +| Finally.cs:49:9:51:9 | {...} | Finally.cs:49:9:51:9 | {...} | | 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 ...; | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | +| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:61:9:64:9 | catch (...) {...} | +| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:62:9:64:9 | {...} | +| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:65:26:65:26 | Exception e | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:69:9:71:9 | {...} | | 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:61:9:64:9 | [exception: Exception] catch (...) {...} | -| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:9:64:9 | catch (...) {...} | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:62:9:64:9 | {...} | Finally.cs:61:38:61:39 | IOException ex | | Finally.cs:62:9:64:9 | {...} | Finally.cs:62:9:64:9 | {...} | -| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:9:64: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:61:9:64: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: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:61:9:64:9 | [exception: Exception] catch (...) {...} | -| 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:65:9:67:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:26:65:26 | Exception e | | Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} | -| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | enter M3 | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:59:13:59:19 | return ...; | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:61:9:64:9 | catch (...) {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:61:38:61:39 | IOException ex | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:62:9:64:9 | {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:9:67:9 | catch (...) {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:65:26:65:26 | Exception e | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:66:9:67:9 | {...} | +| Finally.cs:69:9:71:9 | {...} | Finally.cs:69:9:71:9 | {...} | | 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) | @@ -14170,42 +13640,35 @@ postBlockDominance | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:86:21:86:26 | break; | | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:89:13:99:13 | {...} | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:96:17:98:17 | [finally: break] {...} | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:96:17:98:17 | [finally: continue] {...} | -| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:96:17:98:17 | [finally: return] {...} | +| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:93:25:93:46 | throw ...; | +| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:93:31:93:45 | object creation of type Exception | | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:96:17:98:17 | {...} | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | enter M4 | | Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:77:16:77:16 | access to local variable i | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:84:21:84:29 | continue; | -| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:89:13:99:13 | {...} | -| 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.cs:78:9:100:9 | {...} | Finally.cs:78:9:100:9 | {...} | | Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:17:84:29 | if (...) ... | | Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | | Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:78:9:100:9 | {...} | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:82:21:82:27 | return ...; | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:83:17:84:29 | if (...) ... | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:84:21:84:29 | continue; | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:85:17:86:26 | if (...) ... | +| Finally.cs:89:13:99:13 | {...} | Finally.cs:86:21:86:26 | break; | | Finally.cs:89:13:99:13 | {...} | Finally.cs:89:13:99:13 | {...} | -| 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 ...; | -| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:93:25:93:46 | [finally: return] throw ...; | | 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:31:93:45 | [finally: break] 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: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] {...} | 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] {...} | 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] {...} | 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:78:9:100:9 | {...} | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:82:21:82:27 | return ...; | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:83:17:84:29 | if (...) ... | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:84:21:84:29 | continue; | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:85:17:86:26 | if (...) ... | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:86:21:86:26 | break; | | Finally.cs:96:17:98:17 | {...} | Finally.cs:89:13:99:13 | {...} | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:93:25:93:46 | throw ...; | +| Finally.cs:96:17:98:17 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | | 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 | | Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | exit M5 | @@ -14218,112 +13681,82 @@ postBlockDominance | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:109:13:110:49 | if (...) ... | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:109:17:109:28 | access to property Length | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:109:33:109:33 | 1 | +| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:110:17:110:49 | throw ...; | +| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:113:9:118:9 | {...} | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:114:17:114:36 | [false, finally: return] !... | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:114:17:114:36 | [false] !... | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:114:17:114:36 | [true, finally: return] !... | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:114:17:114:36 | [true] !... | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:115:17:115:41 | ...; | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:13:117:37 | if (...) ... | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:117:17:117:37 | ...; | -| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:117:17:117:37 | [finally: return] ...; | -| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:103:10:103:11 | enter M5 | | Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:17:107:28 | access to property Length | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:103:10:103:11 | enter M5 | -| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:28 | access to property Length | | Finally.cs:107:33:107:33 | 0 | Finally.cs:107:33:107:33 | 0 | | Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | -| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:13:110:49 | if (...) ... | | 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:13:110:49 | if (...) ... | -| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:28 | access to property Length | | 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] {...} | Finally.cs:113:9:118:9 | [finally: exception] {...} | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | enter M5 | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:17:107:28 | access to property Length | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:107:33:107:33 | 0 | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:108:17:108:23 | return ...; | | 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:110:17:110:49 | throw ...; | +| Finally.cs:113:9:118:9 | {...} | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} | -| 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] !... | 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] ...; | 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] 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] !... | -| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:115:17:115:41 | [finally: return] ...; | -| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | enter M5 | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:107:17:107:28 | access to property Length | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:107:33:107:33 | 0 | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:108:17:108:23 | return ...; | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:109:13:110:49 | if (...) ... | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:109:17:109:28 | access to property Length | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:109:33:109:33 | 1 | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:110:17:110:49 | throw ...; | +| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:113:9:118:9 | {...} | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:17:114:36 | [false] !... | | Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:17:114:36 | [true] !... | | 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] ...; | 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] {...} | 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 | | 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 | enter M8 | | Finally.cs:147:10:147:11 | exit M8 (normal) | 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:147:10:147:11 | exit M8 (normal) | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:155:9:169:9 | {...} | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:158:36:158:36 | 1 | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:159:21:159:45 | throw ...; | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:159:41:159:43 | "1" | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | -| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | +| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:13:164:13 | catch (...) {...} | +| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:161:30:161:30 | Exception e | | Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:162:13:164:13 | {...} | | 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] {...} | 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:152:17:152:50 | throw ...; | +| Finally.cs:155:9:169:9 | {...} | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | | 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] 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] "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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:159:41:159:43 | "1" | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:161:13:164:13 | catch (...) {...} | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:30:161:30 | Exception e | | Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} | -| 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 | @@ -14333,65 +13766,71 @@ postBlockDominance | 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 | enter M9 | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | -| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | -| Finally.cs:176:10:176:11 | exit M9 (normal) | 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 | exit M9 (normal) | 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 (normal) | 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 | exit M9 (normal) | 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 | exit M9 (normal) | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | -| 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: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, 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, 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, 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, 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, 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, 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:176:10:176:11 | exit M9 (normal) | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | enter M9 | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:21:180:43 | throw ...; | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:180:27:180:42 | object creation of type ExceptionA | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:183:9:192:9 | {...} | +| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:186:25:186:47 | throw ...; | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:186:31:186:46 | object creation of type ExceptionB | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:188:13:191:13 | catch (...) {...} | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:188:38:188:39 | access to parameter b2 | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:189:13:191:13 | {...} | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:31:190:46 | 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] {...} | 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:199:21:199:43 | throw ...; | +| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:27:199:42 | object creation of type ExceptionA | | Finally.cs:202:9:212:9 | {...} | Finally.cs:202:9:212:9 | {...} | -| 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] 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] {...} | 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:199:21:199:43 | throw ...; | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:199:27:199:42 | object creation of type ExceptionA | | Finally.cs:208:13:210:13 | {...} | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:25:205:47 | throw ...; | +| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | | Finally.cs:208:13:210:13 | {...} | Finally.cs:208:13:210:13 | {...} | -| 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:199:21:199:43 | throw ...; | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:199:27:199:42 | object creation of type ExceptionA | | Finally.cs:211:13:211:29 | ...; | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:205:25:205:47 | throw ...; | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:205:31:205:46 | object creation of type ExceptionB | | 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] ...; | Finally.cs:211:13:211:29 | [finally: exception] ...; | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | enter M10 | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:199:21:199:43 | throw ...; | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:199:27:199:42 | object creation of type ExceptionA | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:202:9:212:9 | {...} | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:205:25:205:47 | throw ...; | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:205:31:205:46 | object creation of type ExceptionB | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:208:13:210:13 | {...} | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:211:13:211:29 | ...; | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:25 | ...; | | 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 | @@ -14399,31 +13838,47 @@ 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] {...} | 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:240:21:240:43 | throw ...; | +| Finally.cs:243:13:253:13 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | | Finally.cs:243:13:253:13 | {...} | Finally.cs:243:13:253:13 | {...} | -| 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] 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] {...} | 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:240:21:240:43 | throw ...; | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | | Finally.cs:250:17:252:17 | {...} | Finally.cs:243:13:253:13 | {...} | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:247:25:247:47 | throw ...; | +| Finally.cs:250:17:252:17 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | | Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} | -| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:257:9:259:9 | [finally: exception] {...} | +| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:13:254:45 | ...; | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | enter M12 | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:240:21:240:43 | throw ...; | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:240:27:240:42 | object creation of type ExceptionA | | Finally.cs:257:9:259:9 | {...} | Finally.cs:243:13:253:13 | {...} | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:247:25:247:47 | throw ...; | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | | Finally.cs:257:9:259:9 | {...} | Finally.cs:250:17:252:17 | {...} | +| Finally.cs:257:9:259:9 | {...} | Finally.cs:254:13:254:45 | ...; | | Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | enter M12 | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:240:21:240:43 | throw ...; | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:240:27:240:42 | object creation of type ExceptionA | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:243:13:253:13 | {...} | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:247:25:247:47 | throw ...; | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:247:31:247:46 | object creation of type ExceptionA | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:250:17:252:17 | {...} | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:254:13:254:45 | ...; | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:257:9:259:9 | {...} | +| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:9:260:34 | ...; | | 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] {...} | 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 | {...} | +| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 (abnormal) | +| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | enter M13 | +| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 (normal) | | 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 | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | enter M1 | @@ -14508,76 +13963,92 @@ postBlockDominance | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | enter M1 | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:10:13:10:19 | return ...; | +| LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:11:22:11:24 | String arg | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:22:11:24 | String arg | -| LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:29:11:32 | access to parameter args | | LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | enter M2 | | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | enter M2 | | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | +| LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:18:22:18:22 | String x | -| LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:15:10:15:11 | enter M2 | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | enter M2 | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:18:22:18:22 | String x | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | enter M3 | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | enter M3 | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | enter M3 | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:24:22:24:24 | Char arg | -| LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:25:26:25:29 | Char arg0 | | LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | enter M4 | | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | enter M4 | | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | +| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | enter M4 | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:32:22:32:22 | String x | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | enter M5 | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | enter M5 | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | enter M5 | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | -| LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:36:10:36:11 | enter M5 | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:40:22:40:22 | String x | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:36:10:36:11 | enter M5 | -| LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:41:26:41:26 | String y | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | enter M6 | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | enter M6 | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:48:22:48:22 | String x | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:9:50:13 | Label: | | LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | enter M7 | | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | enter M7 | | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | +| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:55:10:55:11 | enter M7 | +| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:63:17:63:37 | ...; | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | enter M7 | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:63:17:63:37 | ...; | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:58:22:58:22 | String x | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:58:22:58:22 | String x | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:61:17:61:37 | ...; | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:13:63:37 | if (...) ... | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:17:63:37 | ...; | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | enter M8 | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | enter M8 | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | @@ -14585,23 +14056,45 @@ postBlockDominance | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:69:13:69:23 | [true] !... | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:70:13:70:19 | return ...; | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:72:22:72:24 | String arg | | LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:69:13:69:23 | [false] !... | | LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:69:13:69:23 | [true] !... | | LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:69:13:69:23 | [true] !... | | LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:70:13:70:19 | return ...; | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:69:13:69:23 | [false] !... | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:69:13:69:23 | [false] !... | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:71:9:71:21 | ...; | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:72:22:72:24 | String arg | | LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | enter M9 | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | enter M9 | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | +| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | enter M9 | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:79:22:79:22 | String x | | LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | enter M10 | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | enter M10 | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | +| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | enter M10 | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:88:22:88:22 | String x | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | enter M11 | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | enter M11 | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | +| LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:97:22:97:22 | String x | -| LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | enter M11 | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | enter M11 | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | @@ -15965,6 +15458,13 @@ postBlockDominance | cflow.cs:255:13:255:20 | default: | cflow.cs:249:17:249:29 | goto default; | | cflow.cs:255:13:255:20 | default: | cflow.cs:255:13:255:20 | default: | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | enter Yield | +| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | exit Yield | +| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield (abnormal) | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | enter Yield | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield (normal) | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:264:25:264:25 | access to local variable i | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:265:9:267:9 | {...} | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:268:9:276:9 | try {...} ... | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | enter Yield | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:25 | access to local variable i | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:265:9:267:9 | {...} | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 2c2e977ae126..a3a6a3cddfca 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -509,27 +509,20 @@ nodeEnclosing | Assert.cs:56:10:56:11 | exit M8 (normal) | Assert.cs:56:10:56:11 | M8 | | Assert.cs:57:5:61:5 | {...} | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:9:58:33 | ... ...; | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:24:58:27 | null | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:31:58:32 | "" | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:9:59:38 | [b (line 56): false] ...; | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:9:59:38 | [b (line 56): true] ...; | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:9:59:38 | ...; | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:28:59:31 | [b (line 56): false] null | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:28:59:31 | [b (line 56): true] null | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:28:59:31 | null | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:56:10:56:11 | M8 | | Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | M8 | | Assert.cs:60:9:60:36 | ...; | Assert.cs:56:10:56:11 | M8 | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:56:10:56:11 | M8 | @@ -540,27 +533,20 @@ nodeEnclosing | Assert.cs:63:10:63:11 | exit M9 (normal) | Assert.cs:63:10:63:11 | M9 | | Assert.cs:64:5:68:5 | {...} | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:9:65:33 | ... ...; | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:24:65:27 | null | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:31:65:32 | "" | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:9:66:39 | [b (line 63): false] ...; | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:9:66:39 | [b (line 63): true] ...; | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:9:66:39 | ...; | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:29:66:32 | [b (line 63): false] null | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:29:66:32 | [b (line 63): true] null | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:29:66:32 | null | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:63:10:63:11 | M9 | | Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | M9 | | Assert.cs:67:9:67:36 | ...; | Assert.cs:63:10:63:11 | M9 | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:63:10:63:11 | M9 | @@ -571,27 +557,20 @@ nodeEnclosing | Assert.cs:70:10:70:12 | exit M10 (normal) | Assert.cs:70:10:70:12 | M10 | | Assert.cs:71:5:75:5 | {...} | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:9:72:33 | ... ...; | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:24:72:27 | null | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:31:72:32 | "" | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:9:73:38 | [b (line 70): false] ...; | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:9:73:38 | [b (line 70): true] ...; | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:9:73:38 | ...; | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:28:73:31 | [b (line 70): false] null | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:28:73:31 | [b (line 70): true] null | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:28:73:31 | null | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:70:10:70:12 | M10 | | Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | M10 | | Assert.cs:74:9:74:36 | ...; | Assert.cs:70:10:70:12 | M10 | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:70:10:70:12 | M10 | @@ -602,27 +581,20 @@ nodeEnclosing | Assert.cs:77:10:77:12 | exit M11 (normal) | Assert.cs:77:10:77:12 | M11 | | Assert.cs:78:5:82:5 | {...} | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:9:79:33 | ... ...; | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:24:79:27 | null | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:31:79:32 | "" | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:9:80:39 | [b (line 77): false] ...; | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:9:80:39 | [b (line 77): true] ...; | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:9:80:39 | ...; | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:29:80:32 | [b (line 77): false] null | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:29:80:32 | [b (line 77): true] null | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:29:80:32 | null | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:77:10:77:12 | M11 | | Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | M11 | | Assert.cs:81:9:81:36 | ...; | Assert.cs:77:10:77:12 | M11 | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:77:10:77:12 | M11 | @@ -633,287 +605,189 @@ nodeEnclosing | Assert.cs:84:10:84:12 | exit M12 (normal) | Assert.cs:84:10:84:12 | M12 | | Assert.cs:85:5:129:5 | {...} | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:9:86:33 | ... ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:16:86:32 | String s = ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:32 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:32 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:27:87:30 | [b (line 84): false] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:27:87:30 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:9:88:36 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:9:88:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:9:90:26 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:9:90:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:25 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:25 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:9:92:36 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:9:92:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:9:94:26 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:9:94:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:28 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:28 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:9:96:36 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:9:96:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:9:98:26 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:9:98:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:33 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:33 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:28:99:31 | [b (line 84): false] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:28:99:31 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:9:100:36 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:9:100:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:9:102:26 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:9:102:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:33 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:33 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:28:103:31 | [b (line 84): false] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:28:103:31 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:9:104:36 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:9:104:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:9:106:26 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:9:106:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:34 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:34 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:29:107:32 | [b (line 84): false] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:29:107:32 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:9:108:36 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:9:108:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:9:110:26 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:9:110:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:34 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:34 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:29:111:32 | [b (line 84): false] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:29:111:32 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:9:112:36 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:9:112:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:9:114:26 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:9:114:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:38 | [b (line 84): false] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:38 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:28:115:31 | [b (line 84): false] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:28:115:31 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:116:9:116:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:9:118:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:9:119:40 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:29:119:32 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:120:9:120:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:9:122:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:9:123:38 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:28:123:31 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:124:9:124:36 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:9:126:26 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:24:86:27 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:31:86:32 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:32 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:27:87:30 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:9:88:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:9:90:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:17:90:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:24:90:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:25 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:9:92:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:9:94:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:17:94:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:24:94:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:28 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:9:96:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:9:98:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:17:98:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:24:98:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:33 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:28:99:31 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:9:100:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:9:102:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:17:102:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:24:102:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:33 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:28:103:31 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:9:104:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:9:106:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:17:106:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:24:106:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:34 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:29:107:32 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:9:108:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:9:110:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:17:110:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:24:110:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:34 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:29:111:32 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:9:112:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:9:114:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:17:114:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:24:114:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:38 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:28:115:31 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:9:116:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:9:118:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:17:118:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:24:118:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:40 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:29:119:32 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:9:120:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:9:122:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:17:122:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:24:122:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:38 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:28:123:31 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:9:124:36 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:9:126:26 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:17:126:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:24:126:25 | "" | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:9:127:40 | [b (line 84): true] ...; | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:9:127:40 | ...; | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:29:127:32 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:29:127:32 | null | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | M12 | | Assert.cs:128:9:128:36 | ...; | Assert.cs:84:10:84:12 | M12 | | Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:84:10:84:12 | M12 | @@ -1029,18 +903,12 @@ nodeEnclosing | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:30:13:33:13 | [finally: break] {...} | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:31:29:31:32 | [finally: break] null | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:32:21:32:21 | [finally: break] ; | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:38:10:38:11 | exit M3 | BreakInTry.cs:38:10:38:11 | M3 | @@ -1053,25 +921,15 @@ nodeEnclosing | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:46:9:52:9 | [finally: return] {...} | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:48:13:51:13 | [finally: return] {...} | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:49:28:49:31 | [finally: return] null | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:50:21:50:26 | [finally: return] break; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | M4 | @@ -1085,25 +943,15 @@ nodeEnclosing | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:64:9:70:9 | [finally: return] {...} | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:66:13:69:13 | [finally: return] {...} | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:67:28:67:31 | [finally: return] null | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | M4 | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | @@ -1141,15 +989,19 @@ nodeEnclosing | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:28:10:28:10 | M | | 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] {...} | 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:36:9:38:9 | {...} | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:39:27:39:32 | "Dead" | 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 | @@ -1259,15 +1111,13 @@ nodeEnclosing | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | @@ -1280,23 +1130,17 @@ nodeEnclosing | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:11:9:11:10 | M1 | @@ -1313,14 +1157,10 @@ nodeEnclosing | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:29:13:29:15 | ...++ | Conditions.cs:22:9:22:10 | M2 | @@ -1344,13 +1184,11 @@ nodeEnclosing | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:33:9:33:10 | M3 | @@ -1364,30 +1202,16 @@ nodeEnclosing | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | M5 | @@ -1398,35 +1222,17 @@ nodeEnclosing | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:66:13:66:15 | ...++ | Conditions.cs:57:9:57:10 | M5 | @@ -1515,27 +1321,20 @@ nodeEnclosing | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:106:18:106:19 | [b (line 102): true] "" | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:18:106:19 | "" | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:102:12:102:13 | M8 | @@ -1569,75 +1368,46 @@ nodeEnclosing | Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:120:21:120:22 | [last (line 118): false] "" | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:21:120:22 | "" | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:122:21:122:24 | null | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:131:16:131:19 | true | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:133:17:133:22 | this access | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:135:21:135:26 | this access | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:26 | this access | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:143:10:143:12 | exit M11 | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:143:10:143:12 | M11 | @@ -1701,11 +1471,10 @@ nodeEnclosing | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | M7 | @@ -1899,14 +1668,10 @@ 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] {...} | 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] 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] ...; | 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] "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 | @@ -1918,37 +1683,32 @@ nodeEnclosing | Finally.cs:23:13:23:38 | ...; | Finally.cs:19:10:19:11 | M2 | | Finally.cs:23:31:23:36 | "Try2" | 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 | -| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:26:48:26:51 | [exception: Exception] true | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:48:26:51 | true | Finally.cs:19:10:19:11 | M2 | | Finally.cs:27:9:29:9 | {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:28:13:28:18 | throw ...; | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:19:10:19:11 | M2 | | Finally.cs:31:9:40:9 | {...} | Finally.cs:19:10:19:11 | M2 | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:19:10:19:11 | M2 | | Finally.cs:33:13:35:13 | {...} | Finally.cs:19:10:19:11 | M2 | | 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] {...} | 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:37:13:39:13 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:17:38:44 | throw ...; | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:41:9:43:9 | 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:49:9:51:9 | [finally: return] {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:44:9:47:9 | catch {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:45:9:47:9 | {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:46:13:46:19 | 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] 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] ...; | 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] "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 | | Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | M3 | @@ -1960,30 +1720,22 @@ nodeEnclosing | Finally.cs:58:13:58:38 | ...; | Finally.cs:54:10:54:11 | M3 | | Finally.cs:58:31:58:36 | "Try3" | 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 | -| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:61:48:61:51 | [exception: Exception] true | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:48:61:51 | true | Finally.cs:54:10:54:11 | M3 | | Finally.cs:62:9:64:9 | {...} | Finally.cs:54:10:54:11 | M3 | | Finally.cs:63:13:63:18 | throw ...; | Finally.cs:54:10:54:11 | M3 | -| 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:65:35:65:35 | [exception: Exception] access to local variable e | Finally.cs:54:10:54:11 | M3 | -| Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | Finally.cs:54:10:54:11 | M3 | -| 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:65:9:67:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:48:65:51 | 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] {...} | 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] 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] ...; | 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] "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 | | Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | M4 | @@ -2014,74 +1766,19 @@ nodeEnclosing | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:85:26:85:26 | 2 | Finally.cs:74:10:74:11 | M4 | | Finally.cs:86:21:86:26 | break; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:89:13:99:13 | [finally: break] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:89:13:99:13 | [finally: continue] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:89:13:99:13 | [finally: return] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:89:13:99:13 | {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:90:17:98:17 | [finally: break] try {...} ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:90:17:98:17 | [finally: return] try {...} ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:91:17:94:17 | [finally: break] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:91:17:94:17 | [finally: continue] {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:91:17:94:17 | [finally: return] {...} | Finally.cs:74:10:74:11 | M4 | | Finally.cs:91:17:94:17 | {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:21:93:46 | [finally: break] if (...) ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:21:93:46 | [finally: return] if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:25:92:25 | [finally: break] access to local variable i | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:25:92:25 | [finally: return] access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:92:30:92:30 | 3 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:30:92:30 | [finally: break] 3 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:30:92:30 | [finally: continue] 3 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:92:30:92:30 | [finally: return] 3 | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:25:93:46 | throw ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:74:10:74:11 | M4 | -| 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] {...} | 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] {...} | 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] {...} | 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] 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] 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] 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] ...-- | 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] ...-- | 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] ...-- | 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] ...; | 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] ...; | 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] ...; | 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 | | Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | M5 | @@ -2104,72 +1801,28 @@ 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] {...} | 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] 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] !... | 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] !... | 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] 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] 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] ... == ... | 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] 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] 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] ...; | 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] 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] 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] 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] 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] ... > ... | 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] 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] 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] ...; | 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] 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 | | Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | M6 | @@ -2191,14 +1844,10 @@ 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] {...} | 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] 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] 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] "" | 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 | @@ -2212,74 +1861,34 @@ 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] {...} | 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] 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] {...} | 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] 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] 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] 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] ... == ... | 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] 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] 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] "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, 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, 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, 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, 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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:52:161:54 | "1" | 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] 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] ...; | 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] 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] 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] {...} | 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] 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] ...; | 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] "" | 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 | @@ -2304,38 +1913,22 @@ nodeEnclosing | Finally.cs:179:9:181:9 | {...} | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:176:10:176:11 | M9 | | Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:176:10:176:11 | M9 | -| 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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:180:21:180:43 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:185:13:187:13 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:31:190:46 | 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 | @@ -2347,48 +1940,22 @@ 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] {...} | 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] 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] {...} | 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] 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] 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] 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] 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] {...} | 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] 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] 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] 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] 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] 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] ... = ... | 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] ...; | 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] "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 | @@ -2427,47 +1994,24 @@ 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] {...} | 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] 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] {...} | 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] 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] 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] 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] 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] {...} | 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] 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] ...; | 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] "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] {...} | 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] 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] ...; | 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] "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 | @@ -2481,24 +2025,15 @@ 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] {...} | 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] 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] ...; | 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] "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] ... + ... | 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] ...; | 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] 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 | @@ -2795,7 +2330,6 @@ nodeEnclosing | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:7:10:7:11 | M1 | -| LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:7:10:7:11 | M1 | @@ -2814,7 +2348,6 @@ nodeEnclosing | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:15:10:15:11 | M2 | -| LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:15:10:15:11 | M2 | @@ -2828,7 +2361,6 @@ nodeEnclosing | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:22:10:22:11 | M3 | -| LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:22:10:22:11 | M3 | @@ -2843,8 +2375,12 @@ nodeEnclosing | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:29:10:29:11 | M4 | -| LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:36:10:36:11 | exit M5 | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | M5 | @@ -2865,11 +2401,9 @@ nodeEnclosing | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:36:10:36:11 | M5 | -| LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:36:10:36:11 | M5 | @@ -2879,6 +2413,8 @@ nodeEnclosing | LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:45:10:45:11 | exit M6 | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:45:10:45:11 | M6 | @@ -2888,7 +2424,7 @@ nodeEnclosing | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:45:10:45:11 | M6 | -| LoopUnrolling.cs:48:9:52:9 | [unroll (line 48)] foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:45:10:45:11 | M6 | @@ -2909,32 +2445,20 @@ nodeEnclosing | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:67:10:67:11 | exit M8 | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | M8 | @@ -2948,8 +2472,12 @@ nodeEnclosing | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:67:10:67:11 | M8 | -| LoopUnrolling.cs:72:9:73:35 | [skip (line 72)] foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:76:10:76:11 | exit M9 | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | M9 | @@ -2959,8 +2487,13 @@ nodeEnclosing | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:76:10:76:11 | M9 | -| LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:85:10:85:12 | exit M10 | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | M10 | @@ -2970,8 +2503,13 @@ nodeEnclosing | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:85:10:85:12 | M10 | -| LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:94:10:94:12 | exit M11 | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | M11 | @@ -2981,7 +2519,6 @@ nodeEnclosing | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:94:10:94:12 | M11 | -| LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:94:10:94:12 | M11 | @@ -4599,6 +4136,7 @@ nodeEnclosing | cflow.cs:257:17:257:22 | break; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | Yield | | cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | Yield | | cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | Yield | | cflow.cs:262:5:277:5 | {...} | cflow.cs:261:49:261:53 | Yield | | cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:261:49:261:53 | Yield | @@ -4617,10 +4155,10 @@ nodeEnclosing | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | Yield | | cflow.cs:269:9:272:9 | {...} | cflow.cs:261:49:261:53 | Yield | | cflow.cs:270:13:270:24 | yield break; | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:274:9:276:9 | [finally: return] {...} | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:275:13:275:42 | [finally: return] ...; | cflow.cs:261:49:261:53 | Yield | -| cflow.cs:275:31:275:40 | [finally: return] "not dead" | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:274:9:276:9 | {...} | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:275:13:275:42 | ...; | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:275:31:275:40 | "not dead" | cflow.cs:261:49:261:53 | Yield | | cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | exit ControlFlowSub | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | ControlFlowSub | @@ -4761,119 +4299,118 @@ blockEnclosing | Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:49:10:49:11 | M7 | | Assert.cs:56:10:56:11 | enter M8 | Assert.cs:56:10:56:11 | M8 | | Assert.cs:56:10:56:11 | exit M8 | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:24:58:27 | null | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:58:31:58:32 | "" | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:56:10:56:11 | M8 | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:56:10:56:11 | M8 | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:56:10:56:11 | M8 | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:56:10:56:11 | M8 | | Assert.cs:63:10:63:11 | enter M9 | Assert.cs:63:10:63:11 | M9 | | Assert.cs:63:10:63:11 | exit M9 | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:24:65:27 | null | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:65:31:65:32 | "" | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:63:10:63:11 | M9 | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:63:10:63:11 | M9 | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:63:10:63:11 | M9 | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:63:10:63:11 | M9 | | Assert.cs:70:10:70:12 | enter M10 | Assert.cs:70:10:70:12 | M10 | | Assert.cs:70:10:70:12 | exit M10 | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:24:72:27 | null | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:72:31:72:32 | "" | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:70:10:70:12 | M10 | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:70:10:70:12 | M10 | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:70:10:70:12 | M10 | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:70:10:70:12 | M10 | | Assert.cs:77:10:77:12 | enter M11 | Assert.cs:77:10:77:12 | M11 | | Assert.cs:77:10:77:12 | exit M11 | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:24:79:27 | null | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:79:31:79:32 | "" | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:77:10:77:12 | M11 | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:77:10:77:12 | M11 | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:77:10:77:12 | M11 | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:77:10:77:12 | M11 | | Assert.cs:84:10:84:12 | enter M12 | Assert.cs:84:10:84:12 | M12 | | Assert.cs:84:10:84:12 | exit M12 | Assert.cs:84:10:84:12 | M12 | | Assert.cs:84:10:84:12 | exit M12 (abnormal) | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:24:86:27 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:86:31:86:32 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:17:90:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:90:24:90:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:17:94:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:94:24:94:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:17:98:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:98:24:98:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:17:102:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:102:24:102:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:17:106:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:106:24:106:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:17:110:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:110:24:110:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:17:114:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:114:24:114:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:17:118:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:118:24:118:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:17:122:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:122:24:122:25 | "" | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:17:126:20 | null | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:126:24:126:25 | "" | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:84:10:84:12 | M12 | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:84:10:84:12 | M12 | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:84:10:84:12 | M12 | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:84:10:84:12 | M12 | | Assert.cs:131:18:131:32 | enter AssertTrueFalse | Assert.cs:131:18:131:32 | AssertTrueFalse | | Assert.cs:138:10:138:12 | enter M13 | Assert.cs:138:10:138:12 | M13 | | Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | M13 | @@ -4901,28 +4438,21 @@ blockEnclosing | BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:20:10:20:11 | M2 | -| BreakInTry.cs:32:21:32:21 | [finally: break] ; | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | M2 | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:38:10:38:11 | M3 | -| BreakInTry.cs:50:21:50:26 | [finally: return] break; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:38:10:38:11 | M3 | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:56:10:56:11 | M4 | -| BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | M4 | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | Default | @@ -4931,6 +4461,10 @@ blockEnclosing | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | Nameof | | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | +| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | M | | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | M1 | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | M1 | @@ -4971,49 +4505,41 @@ blockEnclosing | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:11:9:11:10 | enter M1 | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:11:9:11:10 | M1 | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:19:16:19:16 | access to local variable x | Conditions.cs:11:9:11:10 | M1 | | Conditions.cs:22:9:22:10 | enter M2 | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:22:9:22:10 | M2 | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:22:9:22:10 | M2 | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:29:13:29:16 | ...; | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:30:16:30:16 | access to local variable x | Conditions.cs:22:9:22:10 | M2 | | Conditions.cs:33:9:33:10 | enter M3 | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:33:9:33:10 | M3 | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:33:9:33:10 | M3 | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:43:16:43:16 | access to local variable x | Conditions.cs:33:9:33:10 | M3 | | Conditions.cs:46:9:46:10 | enter M4 | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:46:9:46:10 | M4 | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:46:9:46:10 | M4 | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:46:9:46:10 | M4 | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:57:9:57:10 | M5 | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:57:9:57:10 | M5 | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:66:13:66:16 | ...; | Conditions.cs:57:9:57:10 | M5 | | Conditions.cs:67:16:67:16 | access to local variable y | Conditions.cs:57:9:57:10 | M5 | @@ -5036,10 +4562,9 @@ blockEnclosing | Conditions.cs:97:17:97:20 | ...; | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:99:16:99:16 | access to local variable x | Conditions.cs:86:9:86:10 | M7 | | Conditions.cs:102:12:102:13 | enter M8 | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:102:12:102:13 | M8 | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:102:12:102:13 | M8 | | Conditions.cs:109:17:109:24 | ...; | Conditions.cs:102:12:102:13 | M8 | @@ -5049,26 +4574,21 @@ blockEnclosing | Conditions.cs:116:25:116:25 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:116:42:116:42 | access to local variable i | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:117:9:123:9 | {...} | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:113:10:113:11 | M9 | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:113:10:113:11 | M9 | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:113:10:113:11 | M9 | | Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:131:16:131:19 | true | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:129:10:129:12 | M10 | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:129:10:129:12 | M10 | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:143:10:143:12 | M11 | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:143:10:143:12 | M11 | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:149:13:149:49 | ...; | Conditions.cs:143:10:143:12 | M11 | | ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | ExitMethods | @@ -5079,10 +4599,8 @@ blockEnclosing | ExitMethods.cs:32:10:32:11 | enter M5 | ExitMethods.cs:32:10:32:11 | M5 | | ExitMethods.cs:38:10:38:11 | enter M6 | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:38:10:38:11 | M6 | | ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:54:10:54:11 | M7 | | ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:60:10:60:11 | M8 | @@ -5127,32 +4645,35 @@ 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] {...} | Finally.cs:7:10:7:11 | M1 | -| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | M1 | +| Finally.cs:7:10:7:11 | exit M1 (normal) | 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 | -| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:19:10:19:11 | M2 | | Finally.cs:27:9:29:9 | {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 | -| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:19:10:19:11 | M2 | | 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:41:9:43:9 | 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:44:9:47:9 | catch {...} | Finally.cs:19:10:19:11 | M2 | +| Finally.cs:49:9:51:9 | {...} | 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 | -| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:54:10:54:11 | M3 | | Finally.cs:62:9:64:9 | {...} | Finally.cs:54:10:54:11 | M3 | -| 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:65:9:67:9 | catch (...) {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:65:26:65:26 | 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] {...} | Finally.cs:54:10:54:11 | M3 | +| Finally.cs:69:9:71:9 | {...} | 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 | @@ -5165,21 +4686,8 @@ blockEnclosing | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:74:10:74:11 | M4 | | Finally.cs:86:21:86:26 | break; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:89:13:99:13 | {...} | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:74:10:74:11 | M4 | | Finally.cs:93:25:93:46 | throw ...; | Finally.cs:74:10:74:11 | M4 | -| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:74:10:74:11 | M4 | -| 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] {...} | 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] {...} | 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] {...} | 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 | | Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | M5 | @@ -5193,53 +4701,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] {...} | 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] !... | 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] !... | 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] ...; | 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] 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] ...; | 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] {...} | 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 | | Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | M8 | | 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] {...} | 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] 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] "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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:147:10:147:11 | M8 | +| Finally.cs:161:30:161:30 | Exception e | 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] 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 | @@ -5248,67 +4730,46 @@ blockEnclosing | Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | M9 | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | M9 | -| 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, 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, 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, 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, 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, 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, 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:180:21:180:43 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:176:10:176:11 | M9 | +| Finally.cs:190:31:190:46 | 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] {...} | 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] 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] 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] {...} | 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] 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] ...; | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:213:9:213:25 | ...; | 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] {...} | 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] 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] 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] {...} | 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] {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:254:13:254:45 | ...; | Finally.cs:233:10:233:12 | M12 | | Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | M12 | +| Finally.cs:260:9:260:34 | ...; | 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] {...} | Finally.cs:263:10:263:12 | M13 | -| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | M13 | +| Finally.cs:263:10:263:12 | exit M13 (normal) | 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 | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | M1 | @@ -5352,47 +4813,59 @@ blockEnclosing | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:7:10:7:11 | M1 | +| LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:15:10:15:11 | enter M2 | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | LoopUnrolling.cs:15:10:15:11 | M2 | +| LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:15:10:15:11 | M2 | | LoopUnrolling.cs:22:10:22:11 | enter M3 | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:22:10:22:11 | exit M3 (normal) | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:22:10:22:11 | M3 | +| LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:22:10:22:11 | M3 | | LoopUnrolling.cs:29:10:29:11 | enter M4 | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | M4 | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:29:10:29:11 | M4 | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:36:10:36:11 | M5 | +| LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:36:10:36:11 | M5 | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:45:10:45:11 | M6 | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:45:10:45:11 | M6 | | LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:55:10:55:11 | M7 | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:55:10:55:11 | M7 | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:69:13:69:23 | [false] !... | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:69:13:69:23 | [true] !... | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:70:13:70:19 | return ...; | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | M8 | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:67:10:67:11 | M8 | | LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | M9 | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:76:10:76:11 | M9 | | LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | M10 | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:85:10:85:12 | M10 | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | M11 | +| LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | M11 | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | C1 | @@ -5911,6 +5384,9 @@ blockEnclosing | cflow.cs:254:17:254:27 | goto ...; | cflow.cs:240:10:240:13 | Goto | | cflow.cs:255:13:255:20 | default: | cflow.cs:240:10:240:13 | Goto | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | exit Yield | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | Yield | | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:261:49:261:53 | Yield | | cflow.cs:265:9:267:9 | {...} | cflow.cs:261:49:261:53 | Yield | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:261:49:261:53 | Yield | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index 8726e77130bb..8f6f5e43d626 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -494,30 +494,23 @@ | Assert.cs:56:10:56:11 | exit M8 (normal) | Assert.cs:56:10:56:11 | exit M8 | | | Assert.cs:57:5:61:5 | {...} | Assert.cs:58:9:58:33 | ... ...; | | | Assert.cs:58:9:58:33 | ... ...; | Assert.cs:58:20:58:20 | access to parameter b | | -| Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | Assert.cs:59:9:59:38 | [b (line 56): false] ...; | | -| Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | Assert.cs:59:9:59:38 | [b (line 56): true] ...; | | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | [b (line 56): true] null | true | -| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | [b (line 56): false] "" | false | -| Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | | -| 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:58:16:58:32 | String s = ... | Assert.cs:59:9:59:38 | ...; | | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:24:58:27 | null | true | +| Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:31:58:32 | "" | false | +| Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:16:58:32 | String s = ... | | +| Assert.cs:58:24:58:27 | null | Assert.cs:58:20:58:32 | ... ? ... : ... | | +| Assert.cs:58:31:58:32 | "" | Assert.cs:58:20:58:32 | ... ? ... : ... | | | 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 | | -| Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | Assert.cs:59:28:59:31 | [b (line 56): false] null | | -| Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | Assert.cs:59:28:59:31 | [b (line 56): true] null | | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | true | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | true | +| Assert.cs:59:9:59:38 | ...; | Assert.cs:59:23:59:23 | access to local variable s | | +| Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:28:59:31 | null | | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:36 | [false] ... && ... | false | +| Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:36:59:36 | access to parameter b | true | | Assert.cs:59:23:59:36 | [false] ... && ... | Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | false | | Assert.cs:59:23:59:36 | [true] ... && ... | Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:59:28:59:31 | [b (line 56): false] null | Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | | -| Assert.cs:59:28:59:31 | [b (line 56): true] null | Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:59:23:59:36 | [false] ... && ... | false | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true | +| Assert.cs:59:28:59:31 | null | Assert.cs:59:23:59:31 | ... != ... | | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [false] ... && ... | false | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:23:59:36 | [true] ... && ... | true | | Assert.cs:60:9:60:35 | call to method WriteLine | Assert.cs:56:10:56:11 | exit M8 (normal) | | | Assert.cs:60:9:60:36 | ...; | Assert.cs:60:27:60:27 | access to local variable s | | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:60:27:60:34 | access to property Length | | @@ -527,30 +520,23 @@ | Assert.cs:63:10:63:11 | exit M9 (normal) | Assert.cs:63:10:63:11 | exit M9 | | | Assert.cs:64:5:68:5 | {...} | Assert.cs:65:9:65:33 | ... ...; | | | Assert.cs:65:9:65:33 | ... ...; | Assert.cs:65:20:65:20 | access to parameter b | | -| Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | Assert.cs:66:9:66:39 | [b (line 63): false] ...; | | -| Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | Assert.cs:66:9:66:39 | [b (line 63): true] ...; | | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | [b (line 63): true] null | true | -| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | [b (line 63): false] "" | false | -| Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | | -| 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:65:16:65:32 | String s = ... | Assert.cs:66:9:66:39 | ...; | | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:24:65:27 | null | true | +| Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:31:65:32 | "" | false | +| Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:16:65:32 | String s = ... | | +| Assert.cs:65:24:65:27 | null | Assert.cs:65:20:65:32 | ... ? ... : ... | | +| Assert.cs:65:31:65:32 | "" | Assert.cs:65:20:65:32 | ... ? ... : ... | | | 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 | | -| Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | Assert.cs:66:29:66:32 | [b (line 63): false] null | | -| Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | Assert.cs:66:29:66:32 | [b (line 63): true] null | | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | false | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | false | +| Assert.cs:66:9:66:39 | ...; | Assert.cs:66:24:66:24 | access to local variable s | | +| Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:29:66:32 | null | | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | +| Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:37:66:37 | access to parameter b | false | | Assert.cs:66:24:66:37 | [false] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | false | | Assert.cs:66:24:66:37 | [true] ... \|\| ... | Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | true | -| Assert.cs:66:29:66:32 | [b (line 63): false] null | Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | | -| Assert.cs:66:29:66:32 | [b (line 63): true] null | Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | +| Assert.cs:66:29:66:32 | null | Assert.cs:66:24:66:32 | ... == ... | | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [false] ... \|\| ... | false | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:24:66:37 | [true] ... \|\| ... | true | | Assert.cs:67:9:67:35 | call to method WriteLine | Assert.cs:63:10:63:11 | exit M9 (normal) | | | Assert.cs:67:9:67:36 | ...; | Assert.cs:67:27:67:27 | access to local variable s | | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:67:27:67:34 | access to property Length | | @@ -560,30 +546,23 @@ | Assert.cs:70:10:70:12 | exit M10 (normal) | Assert.cs:70:10:70:12 | exit M10 | | | Assert.cs:71:5:75:5 | {...} | Assert.cs:72:9:72:33 | ... ...; | | | Assert.cs:72:9:72:33 | ... ...; | Assert.cs:72:20:72:20 | access to parameter b | | -| Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | Assert.cs:73:9:73:38 | [b (line 70): false] ...; | | -| Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | Assert.cs:73:9:73:38 | [b (line 70): true] ...; | | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | [b (line 70): true] null | true | -| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | [b (line 70): false] "" | false | -| Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | | -| 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:72:16:72:32 | String s = ... | Assert.cs:73:9:73:38 | ...; | | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:24:72:27 | null | true | +| Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:31:72:32 | "" | false | +| Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:16:72:32 | String s = ... | | +| Assert.cs:72:24:72:27 | null | Assert.cs:72:20:72:32 | ... ? ... : ... | | +| Assert.cs:72:31:72:32 | "" | Assert.cs:72:20:72:32 | ... ? ... : ... | | | 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 | | -| Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | Assert.cs:73:28:73:31 | [b (line 70): false] null | | -| Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | Assert.cs:73:28:73:31 | [b (line 70): true] null | | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | true | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | true | +| Assert.cs:73:9:73:38 | ...; | Assert.cs:73:23:73:23 | access to local variable s | | +| Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:28:73:31 | null | | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:36 | [false] ... && ... | false | +| Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:36:73:36 | access to parameter b | true | | Assert.cs:73:23:73:36 | [false] ... && ... | Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | false | | Assert.cs:73:23:73:36 | [true] ... && ... | Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | true | -| Assert.cs:73:28:73:31 | [b (line 70): false] null | Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | | -| Assert.cs:73:28:73:31 | [b (line 70): true] null | Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:73:23:73:36 | [false] ... && ... | false | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true | +| Assert.cs:73:28:73:31 | null | Assert.cs:73:23:73:31 | ... == ... | | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [false] ... && ... | false | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:23:73:36 | [true] ... && ... | true | | Assert.cs:74:9:74:35 | call to method WriteLine | Assert.cs:70:10:70:12 | exit M10 (normal) | | | Assert.cs:74:9:74:36 | ...; | Assert.cs:74:27:74:27 | access to local variable s | | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:74:27:74:34 | access to property Length | | @@ -593,30 +572,23 @@ | Assert.cs:77:10:77:12 | exit M11 (normal) | Assert.cs:77:10:77:12 | exit M11 | | | Assert.cs:78:5:82:5 | {...} | Assert.cs:79:9:79:33 | ... ...; | | | Assert.cs:79:9:79:33 | ... ...; | Assert.cs:79:20:79:20 | access to parameter b | | -| Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | Assert.cs:80:9:80:39 | [b (line 77): false] ...; | | -| Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | Assert.cs:80:9:80:39 | [b (line 77): true] ...; | | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | [b (line 77): true] null | true | -| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | [b (line 77): false] "" | false | -| Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | | -| 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:79:16:79:32 | String s = ... | Assert.cs:80:9:80:39 | ...; | | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:24:79:27 | null | true | +| Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:31:79:32 | "" | false | +| Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:16:79:32 | String s = ... | | +| Assert.cs:79:24:79:27 | null | Assert.cs:79:20:79:32 | ... ? ... : ... | | +| Assert.cs:79:31:79:32 | "" | Assert.cs:79:20:79:32 | ... ? ... : ... | | | 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 | | -| Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | Assert.cs:80:29:80:32 | [b (line 77): false] null | | -| Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | Assert.cs:80:29:80:32 | [b (line 77): true] null | | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | false | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | false | +| Assert.cs:80:9:80:39 | ...; | Assert.cs:80:24:80:24 | access to local variable s | | +| Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:29:80:32 | null | | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | +| Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:37:80:37 | access to parameter b | false | | Assert.cs:80:24:80:37 | [false] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | false | | Assert.cs:80:24:80:37 | [true] ... \|\| ... | Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | true | -| Assert.cs:80:29:80:32 | [b (line 77): false] null | Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | | -| Assert.cs:80:29:80:32 | [b (line 77): true] null | Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | +| Assert.cs:80:29:80:32 | null | Assert.cs:80:24:80:32 | ... != ... | | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [false] ... \|\| ... | false | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:24:80:37 | [true] ... \|\| ... | true | | Assert.cs:81:9:81:35 | call to method WriteLine | Assert.cs:77:10:77:12 | exit M11 (normal) | | | Assert.cs:81:9:81:36 | ...; | Assert.cs:81:27:81:27 | access to local variable s | | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:81:27:81:34 | access to property Length | | @@ -626,307 +598,215 @@ | Assert.cs:84:10:84:12 | exit M12 (normal) | Assert.cs:84:10:84:12 | exit M12 | | | Assert.cs:85:5:129:5 | {...} | Assert.cs:86:9:86:33 | ... ...; | | | Assert.cs:86:9:86:33 | ... ...; | Assert.cs:86:20:86:20 | access to parameter b | | -| Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | Assert.cs:87:9:87:32 | [b (line 84): false] ...; | | -| Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | Assert.cs:87:9:87:32 | [b (line 84): true] ...; | | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | [b (line 84): true] null | true | -| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | [b (line 84): false] "" | false | -| Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | | -| Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exit | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exit | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | Assert.cs:88:9:88:36 | [b (line 84): false] ...; | | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | Assert.cs:88:9:88:36 | [b (line 84): true] ...; | | -| Assert.cs:87:9:87:32 | [b (line 84): false] ...; | Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | | -| Assert.cs:87:9:87:32 | [b (line 84): true] ...; | Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | | -| Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | Assert.cs:87:27:87:30 | [b (line 84): false] null | | -| Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | Assert.cs:87:27:87:30 | [b (line 84): true] null | | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | false | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | true | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | false | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | true | -| Assert.cs:87:27:87:30 | [b (line 84): false] null | Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | | -| Assert.cs:87:27:87:30 | [b (line 84): true] null | Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | | -| Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | Assert.cs:90:9:90:26 | [b (line 84): false] ...; | | -| Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | Assert.cs:90:9:90:26 | [b (line 84): true] ...; | | -| Assert.cs:88:9:88:36 | [b (line 84): false] ...; | Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | | -| Assert.cs:88:9:88:36 | [b (line 84): true] ...; | Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | | -| Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | | -| Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | | -| Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | Assert.cs:91:9:91:25 | [b (line 84): false] ...; | | -| Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | Assert.cs:91:9:91:25 | [b (line 84): true] ...; | | -| Assert.cs:90:9:90:26 | [b (line 84): false] ...; | Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | | -| Assert.cs:90:9:90:26 | [b (line 84): true] ...; | Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | | -| Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | Assert.cs:90:24:90:25 | [b (line 84): false] "" | false | -| Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | Assert.cs:90:17:90:20 | [b (line 84): true] null | true | -| Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | | -| 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 | -| 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 | | -| Assert.cs:91:9:91:25 | [b (line 84): true] ...; | Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | | -| Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | non-null | -| Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | null | -| Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | non-null | -| Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | null | -| Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | Assert.cs:94:9:94:26 | [b (line 84): false] ...; | | -| Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | Assert.cs:94:9:94:26 | [b (line 84): true] ...; | | -| Assert.cs:92:9:92:36 | [b (line 84): false] ...; | Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | | -| Assert.cs:92:9:92:36 | [b (line 84): true] ...; | Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | | -| Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | | -| Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | | -| Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | Assert.cs:95:9:95:28 | [b (line 84): false] ...; | | -| Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | Assert.cs:95:9:95:28 | [b (line 84): true] ...; | | -| Assert.cs:94:9:94:26 | [b (line 84): false] ...; | Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | | -| Assert.cs:94:9:94:26 | [b (line 84): true] ...; | Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | | -| Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | Assert.cs:94:24:94:25 | [b (line 84): false] "" | false | -| Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | Assert.cs:94:17:94:20 | [b (line 84): true] null | true | -| Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | | -| 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 | -| 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 | | -| Assert.cs:95:9:95:28 | [b (line 84): true] ...; | Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | | -| Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | null | -| Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | non-null | -| Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | null | -| Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | non-null | -| Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | Assert.cs:98:9:98:26 | [b (line 84): false] ...; | | -| Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | Assert.cs:98:9:98:26 | [b (line 84): true] ...; | | -| Assert.cs:96:9:96:36 | [b (line 84): false] ...; | Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | | -| Assert.cs:96:9:96:36 | [b (line 84): true] ...; | Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | | -| Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | | -| Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | | -| Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | Assert.cs:99:9:99:33 | [b (line 84): false] ...; | | -| Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | Assert.cs:99:9:99:33 | [b (line 84): true] ...; | | -| Assert.cs:98:9:98:26 | [b (line 84): false] ...; | Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | | -| Assert.cs:98:9:98:26 | [b (line 84): true] ...; | Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | | -| Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | Assert.cs:98:24:98:25 | [b (line 84): false] "" | false | -| Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | Assert.cs:98:17:98:20 | [b (line 84): true] null | true | -| Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | | -| 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 | -| 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 | | -| Assert.cs:99:9:99:33 | [b (line 84): true] ...; | Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | | -| Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | Assert.cs:99:28:99:31 | [b (line 84): false] null | | -| Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | Assert.cs:99:28:99:31 | [b (line 84): true] null | | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:99:28:99:31 | [b (line 84): false] null | Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | | -| Assert.cs:99:28:99:31 | [b (line 84): true] null | Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | | -| Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | Assert.cs:102:9:102:26 | [b (line 84): false] ...; | | -| Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | Assert.cs:102:9:102:26 | [b (line 84): true] ...; | | -| Assert.cs:100:9:100:36 | [b (line 84): false] ...; | Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | | -| Assert.cs:100:9:100:36 | [b (line 84): true] ...; | Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | | -| Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | | -| Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | | -| Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | Assert.cs:103:9:103:33 | [b (line 84): false] ...; | | -| Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | Assert.cs:103:9:103:33 | [b (line 84): true] ...; | | -| Assert.cs:102:9:102:26 | [b (line 84): false] ...; | Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | | -| Assert.cs:102:9:102:26 | [b (line 84): true] ...; | Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | | -| Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | Assert.cs:102:24:102:25 | [b (line 84): false] "" | false | -| Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | Assert.cs:102:17:102:20 | [b (line 84): true] null | true | -| Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | | -| 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 | -| 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 | | -| Assert.cs:103:9:103:33 | [b (line 84): true] ...; | Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | | -| Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | Assert.cs:103:28:103:31 | [b (line 84): false] null | | -| Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | Assert.cs:103:28:103:31 | [b (line 84): true] null | | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | true | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:103:28:103:31 | [b (line 84): false] null | Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | | -| Assert.cs:103:28:103:31 | [b (line 84): true] null | Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | | -| Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | Assert.cs:106:9:106:26 | [b (line 84): false] ...; | | -| Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | Assert.cs:106:9:106:26 | [b (line 84): true] ...; | | -| Assert.cs:104:9:104:36 | [b (line 84): false] ...; | Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | | -| Assert.cs:104:9:104:36 | [b (line 84): true] ...; | Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | | -| Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | | -| Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | | -| Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | Assert.cs:107:9:107:34 | [b (line 84): false] ...; | | -| Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | Assert.cs:107:9:107:34 | [b (line 84): true] ...; | | -| Assert.cs:106:9:106:26 | [b (line 84): false] ...; | Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | | -| Assert.cs:106:9:106:26 | [b (line 84): true] ...; | Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | | -| Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | Assert.cs:106:24:106:25 | [b (line 84): false] "" | false | -| Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | Assert.cs:106:17:106:20 | [b (line 84): true] null | true | -| Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | | -| 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 | -| 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 | | -| Assert.cs:107:9:107:34 | [b (line 84): true] ...; | Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | | -| Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | Assert.cs:107:29:107:32 | [b (line 84): false] null | | -| Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | Assert.cs:107:29:107:32 | [b (line 84): true] null | | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:107:29:107:32 | [b (line 84): false] null | Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | | -| Assert.cs:107:29:107:32 | [b (line 84): true] null | Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | | -| Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | Assert.cs:110:9:110:26 | [b (line 84): false] ...; | | -| Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | Assert.cs:110:9:110:26 | [b (line 84): true] ...; | | -| Assert.cs:108:9:108:36 | [b (line 84): false] ...; | Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | | -| Assert.cs:108:9:108:36 | [b (line 84): true] ...; | Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | | -| Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | | -| Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | | -| Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | Assert.cs:111:9:111:34 | [b (line 84): false] ...; | | -| Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | Assert.cs:111:9:111:34 | [b (line 84): true] ...; | | -| Assert.cs:110:9:110:26 | [b (line 84): false] ...; | Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | | -| Assert.cs:110:9:110:26 | [b (line 84): true] ...; | Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | | -| Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | Assert.cs:110:24:110:25 | [b (line 84): false] "" | false | -| Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | Assert.cs:110:17:110:20 | [b (line 84): true] null | true | -| Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | | -| 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 | -| 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 | | -| Assert.cs:111:9:111:34 | [b (line 84): true] ...; | Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | | -| Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | Assert.cs:111:29:111:32 | [b (line 84): false] null | | -| Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | Assert.cs:111:29:111:32 | [b (line 84): true] null | | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | true | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | false | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:111:29:111:32 | [b (line 84): false] null | Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | | -| Assert.cs:111:29:111:32 | [b (line 84): true] null | Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | | -| Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | Assert.cs:114:9:114:26 | [b (line 84): false] ...; | | -| Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | Assert.cs:114:9:114:26 | [b (line 84): true] ...; | | -| Assert.cs:112:9:112:36 | [b (line 84): false] ...; | Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | | -| Assert.cs:112:9:112:36 | [b (line 84): true] ...; | Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | | -| Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | | -| Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | | -| Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | Assert.cs:115:9:115:38 | [b (line 84): false] ...; | | -| Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | Assert.cs:115:9:115:38 | [b (line 84): true] ...; | | -| Assert.cs:114:9:114:26 | [b (line 84): false] ...; | Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | | -| Assert.cs:114:9:114:26 | [b (line 84): true] ...; | Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | | -| Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | Assert.cs:114:24:114:25 | [b (line 84): false] "" | false | -| Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | Assert.cs:114:17:114:20 | [b (line 84): true] null | true | -| Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | | -| 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 | -| 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 | | -| Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | Assert.cs:115:28:115:31 | [b (line 84): false] null | | -| Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | Assert.cs:115:28:115:31 | [b (line 84): true] null | | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | true | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | false | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:115:28:115:31 | [b (line 84): false] null | Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | | -| Assert.cs:115:28:115:31 | [b (line 84): true] null | Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | false | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | Assert.cs:118:9:118:26 | [b (line 84): true] ...; | | -| Assert.cs:116:9:116:36 | [b (line 84): true] ...; | Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | | -| Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | Assert.cs:119:9:119:40 | [b (line 84): true] ...; | | -| Assert.cs:118:9:118:26 | [b (line 84): true] ...; | Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | | -| 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 | -| 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 | | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | true | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | false | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | false | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | true | -| Assert.cs:119:29:119:32 | [b (line 84): true] null | Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | false | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | true | -| Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | Assert.cs:122:9:122:26 | [b (line 84): true] ...; | | -| Assert.cs:120:9:120:36 | [b (line 84): true] ...; | Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | | -| Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | Assert.cs:123:9:123:38 | [b (line 84): true] ...; | | -| Assert.cs:122:9:122:26 | [b (line 84): true] ...; | Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | | -| 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 | -| 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 | | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | false | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | true | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | false | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | true | -| Assert.cs:123:28:123:31 | [b (line 84): true] null | Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | true | -| Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | Assert.cs:126:9:126:26 | [b (line 84): true] ...; | | -| Assert.cs:124:9:124:36 | [b (line 84): true] ...; | Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | | -| Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | | -| Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | | -| Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | Assert.cs:127:9:127:40 | [b (line 84): true] ...; | | -| Assert.cs:126:9:126:26 | [b (line 84): true] ...; | Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | | -| 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:86:16:86:32 | String s = ... | Assert.cs:87:9:87:32 | ...; | | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:24:86:27 | null | true | +| Assert.cs:86:20:86:20 | access to parameter b | Assert.cs:86:31:86:32 | "" | false | +| Assert.cs:86:20:86:32 | ... ? ... : ... | Assert.cs:86:16:86:32 | String s = ... | | +| Assert.cs:86:24:86:27 | null | Assert.cs:86:20:86:32 | ... ? ... : ... | | +| Assert.cs:86:31:86:32 | "" | Assert.cs:86:20:86:32 | ... ? ... : ... | | +| Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exit | +| Assert.cs:87:9:87:31 | [assertion success] call to method Assert | Assert.cs:88:9:88:36 | ...; | | +| Assert.cs:87:9:87:32 | ...; | Assert.cs:87:22:87:22 | access to local variable s | | +| Assert.cs:87:22:87:22 | access to local variable s | Assert.cs:87:27:87:30 | null | | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion failure] call to method Assert | false | +| Assert.cs:87:22:87:30 | ... != ... | Assert.cs:87:9:87:31 | [assertion success] call to method Assert | true | +| Assert.cs:87:27:87:30 | null | Assert.cs:87:22:87:30 | ... != ... | | +| Assert.cs:88:9:88:35 | call to method WriteLine | Assert.cs:90:9:90:26 | ...; | | +| Assert.cs:88:9:88:36 | ...; | Assert.cs:88:27:88:27 | access to local variable s | | +| Assert.cs:88:27:88:27 | access to local variable s | Assert.cs:88:27:88:34 | access to property Length | | +| Assert.cs:88:27:88:34 | access to property Length | Assert.cs:88:9:88:35 | call to method WriteLine | | +| Assert.cs:90:9:90:25 | ... = ... | Assert.cs:91:9:91:25 | ...; | | +| Assert.cs:90:9:90:26 | ...; | Assert.cs:90:13:90:13 | access to parameter b | | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:17:90:20 | null | true | +| Assert.cs:90:13:90:13 | access to parameter b | Assert.cs:90:24:90:25 | "" | false | +| Assert.cs:90:13:90:25 | ... ? ... : ... | Assert.cs:90:9:90:25 | ... = ... | | +| Assert.cs:90:17:90:20 | null | Assert.cs:90:13:90:25 | ... ? ... : ... | | +| Assert.cs:90:24:90:25 | "" | Assert.cs:90:13:90:25 | ... ? ... : ... | | +| Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | Assert.cs:92:9:92:36 | ...; | | +| Assert.cs:91:9:91:25 | ...; | Assert.cs:91:23:91:23 | access to local variable s | | +| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | [assertion failure] call to method IsNull | non-null | +| Assert.cs:91:23:91:23 | access to local variable s | Assert.cs:91:9:91:24 | [assertion success] call to method IsNull | null | +| Assert.cs:92:9:92:35 | call to method WriteLine | Assert.cs:94:9:94:26 | ...; | | +| Assert.cs:92:9:92:36 | ...; | Assert.cs:92:27:92:27 | access to local variable s | | +| Assert.cs:92:27:92:27 | access to local variable s | Assert.cs:92:27:92:34 | access to property Length | | +| Assert.cs:92:27:92:34 | access to property Length | Assert.cs:92:9:92:35 | call to method WriteLine | | +| Assert.cs:94:9:94:25 | ... = ... | Assert.cs:95:9:95:28 | ...; | | +| Assert.cs:94:9:94:26 | ...; | Assert.cs:94:13:94:13 | access to parameter b | | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:17:94:20 | null | true | +| Assert.cs:94:13:94:13 | access to parameter b | Assert.cs:94:24:94:25 | "" | false | +| Assert.cs:94:13:94:25 | ... ? ... : ... | Assert.cs:94:9:94:25 | ... = ... | | +| Assert.cs:94:17:94:20 | null | Assert.cs:94:13:94:25 | ... ? ... : ... | | +| Assert.cs:94:24:94:25 | "" | Assert.cs:94:13:94:25 | ... ? ... : ... | | +| Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | Assert.cs:96:9:96:36 | ...; | | +| Assert.cs:95:9:95:28 | ...; | Assert.cs:95:26:95:26 | access to local variable s | | +| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | [assertion failure] call to method IsNotNull | null | +| Assert.cs:95:26:95:26 | access to local variable s | Assert.cs:95:9:95:27 | [assertion success] call to method IsNotNull | non-null | +| Assert.cs:96:9:96:35 | call to method WriteLine | Assert.cs:98:9:98:26 | ...; | | +| Assert.cs:96:9:96:36 | ...; | Assert.cs:96:27:96:27 | access to local variable s | | +| Assert.cs:96:27:96:27 | access to local variable s | Assert.cs:96:27:96:34 | access to property Length | | +| Assert.cs:96:27:96:34 | access to property Length | Assert.cs:96:9:96:35 | call to method WriteLine | | +| Assert.cs:98:9:98:25 | ... = ... | Assert.cs:99:9:99:33 | ...; | | +| Assert.cs:98:9:98:26 | ...; | Assert.cs:98:13:98:13 | access to parameter b | | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:17:98:20 | null | true | +| Assert.cs:98:13:98:13 | access to parameter b | Assert.cs:98:24:98:25 | "" | false | +| Assert.cs:98:13:98:25 | ... ? ... : ... | Assert.cs:98:9:98:25 | ... = ... | | +| Assert.cs:98:17:98:20 | null | Assert.cs:98:13:98:25 | ... ? ... : ... | | +| Assert.cs:98:24:98:25 | "" | Assert.cs:98:13:98:25 | ... ? ... : ... | | +| Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | Assert.cs:100:9:100:36 | ...; | | +| Assert.cs:99:9:99:33 | ...; | Assert.cs:99:23:99:23 | access to local variable s | | +| Assert.cs:99:23:99:23 | access to local variable s | Assert.cs:99:28:99:31 | null | | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:99:23:99:31 | ... == ... | Assert.cs:99:9:99:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:99:28:99:31 | null | Assert.cs:99:23:99:31 | ... == ... | | +| Assert.cs:100:9:100:35 | call to method WriteLine | Assert.cs:102:9:102:26 | ...; | | +| Assert.cs:100:9:100:36 | ...; | Assert.cs:100:27:100:27 | access to local variable s | | +| Assert.cs:100:27:100:27 | access to local variable s | Assert.cs:100:27:100:34 | access to property Length | | +| Assert.cs:100:27:100:34 | access to property Length | Assert.cs:100:9:100:35 | call to method WriteLine | | +| Assert.cs:102:9:102:25 | ... = ... | Assert.cs:103:9:103:33 | ...; | | +| Assert.cs:102:9:102:26 | ...; | Assert.cs:102:13:102:13 | access to parameter b | | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:17:102:20 | null | true | +| Assert.cs:102:13:102:13 | access to parameter b | Assert.cs:102:24:102:25 | "" | false | +| Assert.cs:102:13:102:25 | ... ? ... : ... | Assert.cs:102:9:102:25 | ... = ... | | +| Assert.cs:102:17:102:20 | null | Assert.cs:102:13:102:25 | ... ? ... : ... | | +| Assert.cs:102:24:102:25 | "" | Assert.cs:102:13:102:25 | ... ? ... : ... | | +| Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | Assert.cs:104:9:104:36 | ...; | | +| Assert.cs:103:9:103:33 | ...; | Assert.cs:103:23:103:23 | access to local variable s | | +| Assert.cs:103:23:103:23 | access to local variable s | Assert.cs:103:28:103:31 | null | | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion failure] call to method IsTrue | false | +| Assert.cs:103:23:103:31 | ... != ... | Assert.cs:103:9:103:32 | [assertion success] call to method IsTrue | true | +| Assert.cs:103:28:103:31 | null | Assert.cs:103:23:103:31 | ... != ... | | +| Assert.cs:104:9:104:35 | call to method WriteLine | Assert.cs:106:9:106:26 | ...; | | +| Assert.cs:104:9:104:36 | ...; | Assert.cs:104:27:104:27 | access to local variable s | | +| Assert.cs:104:27:104:27 | access to local variable s | Assert.cs:104:27:104:34 | access to property Length | | +| Assert.cs:104:27:104:34 | access to property Length | Assert.cs:104:9:104:35 | call to method WriteLine | | +| Assert.cs:106:9:106:25 | ... = ... | Assert.cs:107:9:107:34 | ...; | | +| Assert.cs:106:9:106:26 | ...; | Assert.cs:106:13:106:13 | access to parameter b | | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:17:106:20 | null | true | +| Assert.cs:106:13:106:13 | access to parameter b | Assert.cs:106:24:106:25 | "" | false | +| Assert.cs:106:13:106:25 | ... ? ... : ... | Assert.cs:106:9:106:25 | ... = ... | | +| Assert.cs:106:17:106:20 | null | Assert.cs:106:13:106:25 | ... ? ... : ... | | +| Assert.cs:106:24:106:25 | "" | Assert.cs:106:13:106:25 | ... ? ... : ... | | +| Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | Assert.cs:108:9:108:36 | ...; | | +| Assert.cs:107:9:107:34 | ...; | Assert.cs:107:24:107:24 | access to local variable s | | +| Assert.cs:107:24:107:24 | access to local variable s | Assert.cs:107:29:107:32 | null | | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:107:24:107:32 | ... != ... | Assert.cs:107:9:107:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:107:29:107:32 | null | Assert.cs:107:24:107:32 | ... != ... | | +| Assert.cs:108:9:108:35 | call to method WriteLine | Assert.cs:110:9:110:26 | ...; | | +| Assert.cs:108:9:108:36 | ...; | Assert.cs:108:27:108:27 | access to local variable s | | +| Assert.cs:108:27:108:27 | access to local variable s | Assert.cs:108:27:108:34 | access to property Length | | +| Assert.cs:108:27:108:34 | access to property Length | Assert.cs:108:9:108:35 | call to method WriteLine | | +| Assert.cs:110:9:110:25 | ... = ... | Assert.cs:111:9:111:34 | ...; | | +| Assert.cs:110:9:110:26 | ...; | Assert.cs:110:13:110:13 | access to parameter b | | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:17:110:20 | null | true | +| Assert.cs:110:13:110:13 | access to parameter b | Assert.cs:110:24:110:25 | "" | false | +| Assert.cs:110:13:110:25 | ... ? ... : ... | Assert.cs:110:9:110:25 | ... = ... | | +| Assert.cs:110:17:110:20 | null | Assert.cs:110:13:110:25 | ... ? ... : ... | | +| Assert.cs:110:24:110:25 | "" | Assert.cs:110:13:110:25 | ... ? ... : ... | | +| Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | Assert.cs:112:9:112:36 | ...; | | +| Assert.cs:111:9:111:34 | ...; | Assert.cs:111:24:111:24 | access to local variable s | | +| Assert.cs:111:24:111:24 | access to local variable s | Assert.cs:111:29:111:32 | null | | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion failure] call to method IsFalse | true | +| Assert.cs:111:24:111:32 | ... == ... | Assert.cs:111:9:111:33 | [assertion success] call to method IsFalse | false | +| Assert.cs:111:29:111:32 | null | Assert.cs:111:24:111:32 | ... == ... | | +| Assert.cs:112:9:112:35 | call to method WriteLine | Assert.cs:114:9:114:26 | ...; | | +| Assert.cs:112:9:112:36 | ...; | Assert.cs:112:27:112:27 | access to local variable s | | +| Assert.cs:112:27:112:27 | access to local variable s | Assert.cs:112:27:112:34 | access to property Length | | +| Assert.cs:112:27:112:34 | access to property Length | Assert.cs:112:9:112:35 | call to method WriteLine | | +| Assert.cs:114:9:114:25 | ... = ... | Assert.cs:115:9:115:38 | ...; | | +| Assert.cs:114:9:114:26 | ...; | Assert.cs:114:13:114:13 | access to parameter b | | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:17:114:20 | null | true | +| Assert.cs:114:13:114:13 | access to parameter b | Assert.cs:114:24:114:25 | "" | false | +| Assert.cs:114:13:114:25 | ... ? ... : ... | Assert.cs:114:9:114:25 | ... = ... | | +| Assert.cs:114:17:114:20 | null | Assert.cs:114:13:114:25 | ... ? ... : ... | | +| Assert.cs:114:24:114:25 | "" | Assert.cs:114:13:114:25 | ... ? ... : ... | | +| Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | Assert.cs:116:9:116:36 | ...; | | +| Assert.cs:115:9:115:38 | ...; | Assert.cs:115:23:115:23 | access to local variable s | | +| Assert.cs:115:23:115:23 | access to local variable s | Assert.cs:115:28:115:31 | null | | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:23:115:36 | [false] ... && ... | false | +| Assert.cs:115:23:115:31 | ... != ... | Assert.cs:115:36:115:36 | access to parameter b | true | +| Assert.cs:115:23:115:36 | [false] ... && ... | Assert.cs:115:9:115:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:115:23:115:36 | [true] ... && ... | Assert.cs:115:9:115:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:115:28:115:31 | null | Assert.cs:115:23:115:31 | ... != ... | | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [false] ... && ... | false | +| Assert.cs:115:36:115:36 | access to parameter b | Assert.cs:115:23:115:36 | [true] ... && ... | true | +| Assert.cs:116:9:116:35 | call to method WriteLine | Assert.cs:118:9:118:26 | ...; | | +| Assert.cs:116:9:116:36 | ...; | Assert.cs:116:27:116:27 | access to local variable s | | +| Assert.cs:116:27:116:27 | access to local variable s | Assert.cs:116:27:116:34 | access to property Length | | +| Assert.cs:116:27:116:34 | access to property Length | Assert.cs:116:9:116:35 | call to method WriteLine | | +| Assert.cs:118:9:118:25 | ... = ... | Assert.cs:119:9:119:40 | ...; | | +| Assert.cs:118:9:118:26 | ...; | Assert.cs:118:13:118:13 | access to parameter b | | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:17:118:20 | null | true | +| Assert.cs:118:13:118:13 | access to parameter b | Assert.cs:118:24:118:25 | "" | false | +| Assert.cs:118:13:118:25 | ... ? ... : ... | Assert.cs:118:9:118:25 | ... = ... | | +| Assert.cs:118:17:118:20 | null | Assert.cs:118:13:118:25 | ... ? ... : ... | | +| Assert.cs:118:24:118:25 | "" | Assert.cs:118:13:118:25 | ... ? ... : ... | | +| Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | Assert.cs:120:9:120:36 | ...; | | +| Assert.cs:119:9:119:40 | ...; | Assert.cs:119:24:119:24 | access to local variable s | | +| Assert.cs:119:24:119:24 | access to local variable s | Assert.cs:119:29:119:32 | null | | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:119:24:119:32 | ... == ... | Assert.cs:119:38:119:38 | access to parameter b | false | +| Assert.cs:119:24:119:38 | [false] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion success] call to method IsFalse | false | +| Assert.cs:119:24:119:38 | [true] ... \|\| ... | Assert.cs:119:9:119:39 | [assertion failure] call to method IsFalse | true | +| Assert.cs:119:29:119:32 | null | Assert.cs:119:24:119:32 | ... == ... | | +| Assert.cs:119:37:119:38 | [false] !... | Assert.cs:119:24:119:38 | [false] ... \|\| ... | false | +| Assert.cs:119:37:119:38 | [true] !... | Assert.cs:119:24:119:38 | [true] ... \|\| ... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [false] !... | true | +| Assert.cs:119:38:119:38 | access to parameter b | Assert.cs:119:37:119:38 | [true] !... | false | +| Assert.cs:120:9:120:35 | call to method WriteLine | Assert.cs:122:9:122:26 | ...; | | +| Assert.cs:120:9:120:36 | ...; | Assert.cs:120:27:120:27 | access to local variable s | | +| Assert.cs:120:27:120:27 | access to local variable s | Assert.cs:120:27:120:34 | access to property Length | | +| Assert.cs:120:27:120:34 | access to property Length | Assert.cs:120:9:120:35 | call to method WriteLine | | +| Assert.cs:122:9:122:25 | ... = ... | Assert.cs:123:9:123:38 | ...; | | +| Assert.cs:122:9:122:26 | ...; | Assert.cs:122:13:122:13 | access to parameter b | | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:17:122:20 | null | true | +| Assert.cs:122:13:122:13 | access to parameter b | Assert.cs:122:24:122:25 | "" | false | +| Assert.cs:122:13:122:25 | ... ? ... : ... | Assert.cs:122:9:122:25 | ... = ... | | +| Assert.cs:122:17:122:20 | null | Assert.cs:122:13:122:25 | ... ? ... : ... | | +| Assert.cs:122:24:122:25 | "" | Assert.cs:122:13:122:25 | ... ? ... : ... | | +| Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception | +| Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | Assert.cs:124:9:124:36 | ...; | | +| Assert.cs:123:9:123:38 | ...; | Assert.cs:123:23:123:23 | access to local variable s | | +| Assert.cs:123:23:123:23 | access to local variable s | Assert.cs:123:28:123:31 | null | | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:123:23:123:31 | ... == ... | Assert.cs:123:36:123:36 | access to parameter b | true | +| Assert.cs:123:23:123:36 | [false] ... && ... | Assert.cs:123:9:123:37 | [assertion failure] call to method IsTrue | false | +| Assert.cs:123:23:123:36 | [true] ... && ... | Assert.cs:123:9:123:37 | [assertion success] call to method IsTrue | true | +| Assert.cs:123:28:123:31 | null | Assert.cs:123:23:123:31 | ... == ... | | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [false] ... && ... | false | +| Assert.cs:123:36:123:36 | access to parameter b | Assert.cs:123:23:123:36 | [true] ... && ... | true | +| Assert.cs:124:9:124:35 | call to method WriteLine | Assert.cs:126:9:126:26 | ...; | | +| Assert.cs:124:9:124:36 | ...; | Assert.cs:124:27:124:27 | access to local variable s | | +| Assert.cs:124:27:124:27 | access to local variable s | Assert.cs:124:27:124:34 | access to property Length | | +| Assert.cs:124:27:124:34 | access to property Length | Assert.cs:124:9:124:35 | call to method WriteLine | | +| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:127:9:127:40 | ...; | | +| Assert.cs:126:9:126:26 | ...; | Assert.cs:126:13:126:13 | access to parameter b | | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:17:126:20 | null | true | +| Assert.cs:126:13:126:13 | access to parameter b | Assert.cs:126:24:126:25 | "" | false | +| Assert.cs:126:13:126:25 | ... ? ... : ... | Assert.cs:126:9:126:25 | ... = ... | | +| Assert.cs:126:17:126:20 | null | Assert.cs:126:13:126:25 | ... ? ... : ... | | +| Assert.cs:126:24:126:25 | "" | Assert.cs:126:13:126:25 | ... ? ... : ... | | | 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 | | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | false | +| Assert.cs:127:9:127:40 | ...; | Assert.cs:127:24:127:24 | access to local variable s | | +| Assert.cs:127:24:127:24 | access to local variable s | Assert.cs:127:29:127:32 | null | | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:127:24:127:32 | ... != ... | Assert.cs:127:38:127:38 | access to parameter b | false | | Assert.cs:127:24:127:38 | [false] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | false | | Assert.cs:127:24:127:38 | [true] ... \|\| ... | Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | true | -| Assert.cs:127:29:127:32 | [b (line 84): true] null | Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | | +| Assert.cs:127:29:127:32 | null | Assert.cs:127:24:127:32 | ... != ... | | | Assert.cs:127:37:127:38 | [false] !... | Assert.cs:127:24:127:38 | [false] ... \|\| ... | false | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:127:37:127:38 | [true] !... | Assert.cs:127:24:127:38 | [true] ... \|\| ... | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [false] !... | true | +| Assert.cs:127:38:127:38 | access to parameter b | Assert.cs:127:37:127:38 | [true] !... | false | | Assert.cs:128:9:128:35 | call to method WriteLine | Assert.cs:84:10:84:12 | exit M12 (normal) | | | Assert.cs:128:9:128:36 | ...; | Assert.cs:128:27:128:27 | access to local variable s | | | Assert.cs:128:27:128:27 | access to local variable s | Assert.cs:128:27:128:34 | access to property Length | | @@ -1039,21 +919,16 @@ | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:27:21:27:26 | break; | true | | BreakInTry.cs:26:21:26:31 | ... == ... | BreakInTry.cs:30:13:33:13 | {...} | false | | BreakInTry.cs:26:28:26:31 | null | BreakInTry.cs:26:21:26:31 | ... == ... | | -| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:30:13:33:13 | [finally: break] {...} | break | -| BreakInTry.cs:30:13:33:13 | [finally: break] {...} | BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | | +| BreakInTry.cs:27:21:27:26 | break; | BreakInTry.cs:30:13:33:13 | {...} | break | | BreakInTry.cs:30:13:33:13 | {...} | BreakInTry.cs:31:17:32:21 | if (...) ... | | -| BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | | | BreakInTry.cs:31:17:32:21 | if (...) ... | BreakInTry.cs:31:21:31:24 | access to parameter args | | -| BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | BreakInTry.cs:31:29:31:32 | [finally: break] null | | | BreakInTry.cs:31:21:31:24 | access to parameter args | BreakInTry.cs:31:29:31:32 | null | | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | false | | BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:32:21:32:21 | ; | true | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:32:21:32:21 | [finally: break] ; | true | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:35:7:35:7 | ; | false | -| BreakInTry.cs:31:29:31:32 | [finally: break] null | BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | | +| BreakInTry.cs:31:21:31:32 | ... == ... | BreakInTry.cs:35:7:35:7 | ; | false | | BreakInTry.cs:31:29:31:32 | null | BreakInTry.cs:31:21:31:32 | ... == ... | | | BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:22:9:34:9 | foreach (... ... in ...) ... | | -| BreakInTry.cs:32:21:32:21 | [finally: break] ; | BreakInTry.cs:35:7:35:7 | ; | break | +| BreakInTry.cs:32:21:32:21 | ; | BreakInTry.cs:35:7:35:7 | ; | break | | BreakInTry.cs:35:7:35:7 | ; | BreakInTry.cs:20:10:20:11 | exit M2 (normal) | | | BreakInTry.cs:38:10:38:11 | enter M3 | BreakInTry.cs:39:5:54:5 | {...} | | | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | BreakInTry.cs:38:10:38:11 | exit M3 | | @@ -1065,30 +940,20 @@ | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:43:17:43:23 | return ...; | true | | BreakInTry.cs:42:17:42:28 | ... == ... | BreakInTry.cs:46:9:52:9 | {...} | false | | BreakInTry.cs:42:25:42:28 | null | BreakInTry.cs:42:17:42:28 | ... == ... | | -| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:46:9:52:9 | [finally: return] {...} | return | -| BreakInTry.cs:46:9:52:9 | [finally: return] {...} | BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | | +| BreakInTry.cs:43:17:43:23 | return ...; | BreakInTry.cs:46:9:52:9 | {...} | return | | BreakInTry.cs:46:9:52:9 | {...} | BreakInTry.cs:47:33:47:36 | access to parameter args | | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | return | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | [finally: return] String arg | non-empty | +| BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | return | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:47:26:47:28 | String arg | non-empty | | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | BreakInTry.cs:53:7:53:7 | ; | empty | | BreakInTry.cs:47:26:47:28 | String arg | BreakInTry.cs:48:13:51:13 | {...} | | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:48:13:51:13 | [finally: return] {...} | | -| BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | | | BreakInTry.cs:47:33:47:36 | access to parameter args | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | | -| BreakInTry.cs:48:13:51:13 | [finally: return] {...} | BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | | | BreakInTry.cs:48:13:51:13 | {...} | BreakInTry.cs:49:17:50:26 | if (...) ... | | -| BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | | | BreakInTry.cs:49:17:50:26 | if (...) ... | BreakInTry.cs:49:21:49:23 | access to local variable arg | | -| BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | BreakInTry.cs:49:28:49:31 | [finally: return] null | | | BreakInTry.cs:49:21:49:23 | access to local variable arg | BreakInTry.cs:49:28:49:31 | null | | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:47:13:51:13 | foreach (... ... in ...) ... | false | | BreakInTry.cs:49:21:49:31 | ... == ... | BreakInTry.cs:50:21:50:26 | break; | true | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | false | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:50:21:50:26 | [finally: return] break; | true | -| BreakInTry.cs:49:28:49:31 | [finally: return] null | BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | | | BreakInTry.cs:49:28:49:31 | null | BreakInTry.cs:49:21:49:31 | ... == ... | | -| BreakInTry.cs:50:21:50:26 | [finally: return] break; | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | return | +| BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | return | | BreakInTry.cs:50:21:50:26 | break; | BreakInTry.cs:53:7:53:7 | ; | break | | BreakInTry.cs:53:7:53:7 | ; | BreakInTry.cs:38:10:38:11 | exit M3 (normal) | | | BreakInTry.cs:56:10:56:11 | enter M4 | BreakInTry.cs:57:5:71:5 | {...} | | @@ -1101,31 +966,19 @@ | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:61:17:61:23 | return ...; | true | | BreakInTry.cs:60:17:60:28 | ... == ... | BreakInTry.cs:64:9:70:9 | {...} | false | | BreakInTry.cs:60:25:60:28 | null | BreakInTry.cs:60:17:60:28 | ... == ... | | -| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:64:9:70:9 | [finally: return] {...} | return | -| BreakInTry.cs:64:9:70:9 | [finally: return] {...} | BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | | +| BreakInTry.cs:61:17:61:23 | return ...; | BreakInTry.cs:64:9:70:9 | {...} | return | | BreakInTry.cs:64:9:70:9 | {...} | BreakInTry.cs:65:33:65:36 | access to parameter args | | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | return | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | [finally: return] String arg | non-empty | -| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | empty | +| BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | empty, return | | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:26:65:28 | String arg | non-empty | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:66:13:69:13 | {...} | | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:66:13:69:13 | [finally: return] {...} | | -| BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | | | BreakInTry.cs:65:33:65:36 | access to parameter args | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | | -| BreakInTry.cs:66:13:69:13 | [finally: return] {...} | BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | | | BreakInTry.cs:66:13:69:13 | {...} | BreakInTry.cs:67:17:68:26 | if (...) ... | | -| BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | | | BreakInTry.cs:67:17:68:26 | if (...) ... | BreakInTry.cs:67:21:67:23 | access to local variable arg | | -| BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | BreakInTry.cs:67:28:67:31 | [finally: return] null | | | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:28:67:31 | null | | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | false | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | true | -| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | false | -| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:68:21:68:26 | [finally: return] break; | true | -| BreakInTry.cs:67:28:67:31 | [finally: return] null | BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:31 | ... == ... | | -| BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | return | -| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | break | +| BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | break, return | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | | @@ -1155,15 +1008,21 @@ | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:29:5:41:5 | {...} | | +| CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M | | | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:28:10:28:10 | exit M | | | 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] {...} | 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:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | {...} | goto | +| CompileTimeOperators.cs:36:9:38:9 | {...} | CompileTimeOperators.cs:37:13:37:41 | ...; | | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | exception | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:39:9:39:34 | ...; | | +| CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | goto | +| CompileTimeOperators.cs:37:13:37:41 | ...; | CompileTimeOperators.cs:37:31:37:39 | "Finally" | | +| CompileTimeOperators.cs:37:31:37:39 | "Finally" | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | | +| CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | | +| CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:27:39:32 | "Dead" | | +| CompileTimeOperators.cs:39:27:39:32 | "Dead" | CompileTimeOperators.cs:39:9:39:33 | 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" | | @@ -1271,17 +1130,16 @@ | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:5:9:6:16 | if (...) ... | | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:13:5:15 | access to parameter inc | | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | true | -| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | false | -| Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | | -| Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | | -| Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:6:13:6:16 | ...; | true | +| Conditions.cs:5:13:5:15 | access to parameter inc | Conditions.cs:7:9:8:16 | if (...) ... | false | +| Conditions.cs:6:13:6:13 | access to parameter x | Conditions.cs:6:13:6:15 | ...++ | | +| Conditions.cs:6:13:6:15 | ...++ | Conditions.cs:7:9:8:16 | if (...) ... | | +| Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:13 | access to parameter x | | +| Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:14:7:16 | access to parameter inc | | | Conditions.cs:7:13:7:16 | [false] !... | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | false | | Conditions.cs:7:13:7:16 | [true] !... | Conditions.cs:8:13:8:16 | ...; | true | -| Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | false | -| Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | true | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [false] !... | true | +| Conditions.cs:7:14:7:16 | access to parameter inc | Conditions.cs:7:13:7:16 | [true] !... | false | | Conditions.cs:8:13:8:13 | access to parameter x | Conditions.cs:8:13:8:15 | ...-- | | | Conditions.cs:8:13:8:15 | ...-- | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | | | Conditions.cs:8:13:8:16 | ...; | Conditions.cs:8:13:8:13 | access to parameter x | | @@ -1292,27 +1150,21 @@ | Conditions.cs:13:13:13:17 | Int32 x = ... | Conditions.cs:14:9:15:16 | if (...) ... | | | Conditions.cs:13:17:13:17 | 0 | Conditions.cs:13:13:13:17 | Int32 x = ... | | | Conditions.cs:14:9:15:16 | if (...) ... | Conditions.cs:14:13:14:13 | access to parameter b | | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | true | -| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | false | -| Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | | -| Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | | -| Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | | -| Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | | -| Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | true | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | true | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | -| Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | | -| Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:15:13:15:16 | ...; | true | +| Conditions.cs:14:13:14:13 | access to parameter b | Conditions.cs:16:9:18:20 | if (...) ... | false | +| Conditions.cs:15:13:15:13 | access to local variable x | Conditions.cs:15:13:15:15 | ...++ | | +| Conditions.cs:15:13:15:15 | ...++ | Conditions.cs:16:9:18:20 | if (...) ... | | +| Conditions.cs:15:13:15:16 | ...; | Conditions.cs:15:13:15:13 | access to local variable x | | +| Conditions.cs:16:9:18:20 | if (...) ... | Conditions.cs:16:13:16:13 | access to local variable x | | +| Conditions.cs:16:13:16:13 | access to local variable x | Conditions.cs:16:17:16:17 | 0 | | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:17:13:18:20 | if (...) ... | true | +| Conditions.cs:16:13:16:17 | ... > ... | Conditions.cs:19:16:19:16 | access to local variable x | false | +| Conditions.cs:16:17:16:17 | 0 | Conditions.cs:16:13:16:17 | ... > ... | | +| Conditions.cs:17:13:18:20 | if (...) ... | Conditions.cs:17:18:17:18 | access to parameter b | | | Conditions.cs:17:17:17:18 | [false] !... | Conditions.cs:19:16:19:16 | access to local variable x | false | | Conditions.cs:17:17:17:18 | [true] !... | Conditions.cs:18:17:18:20 | ...; | true | -| Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | false | -| Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | true | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [false] !... | true | +| Conditions.cs:17:18:17:18 | access to parameter b | Conditions.cs:17:17:17:18 | [true] !... | false | | Conditions.cs:18:17:18:17 | access to local variable x | Conditions.cs:18:17:18:19 | ...-- | | | Conditions.cs:18:17:18:19 | ...-- | Conditions.cs:19:16:19:16 | access to local variable x | | | Conditions.cs:18:17:18:20 | ...; | Conditions.cs:18:17:18:17 | access to local variable x | | @@ -1328,16 +1180,12 @@ | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:26:13:27:20 | if (...) ... | true | | Conditions.cs:25:13:25:14 | access to parameter b1 | Conditions.cs:28:9:29:16 | if (...) ... | false | | Conditions.cs:26:13:27:20 | if (...) ... | Conditions.cs:26:17:26:18 | access to parameter b2 | | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | true | -| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | false | -| Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | | -| Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | | -| Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:27:17:27:20 | ...; | true | +| Conditions.cs:26:17:26:18 | access to parameter b2 | Conditions.cs:28:9:29:16 | if (...) ... | false | +| Conditions.cs:27:17:27:17 | access to local variable x | Conditions.cs:27:17:27:19 | ...++ | | +| Conditions.cs:27:17:27:19 | ...++ | Conditions.cs:28:9:29:16 | if (...) ... | | +| Conditions.cs:27:17:27:20 | ...; | Conditions.cs:27:17:27:17 | access to local variable x | | | Conditions.cs:28:9:29:16 | if (...) ... | Conditions.cs:28:13:28:14 | access to parameter b2 | | -| Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | false | -| Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | true | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:29:13:29:16 | ...; | true | | Conditions.cs:28:13:28:14 | access to parameter b2 | Conditions.cs:30:16:30:16 | access to local variable x | false | | Conditions.cs:29:13:29:13 | access to local variable x | Conditions.cs:29:13:29:15 | ...++ | | @@ -1361,15 +1209,14 @@ | Conditions.cs:38:13:38:20 | ...; | Conditions.cs:38:18:38:19 | access to parameter b1 | | | Conditions.cs:38:18:38:19 | access to parameter b1 | Conditions.cs:38:13:38:19 | ... = ... | | | Conditions.cs:39:9:40:16 | if (...) ... | Conditions.cs:39:13:39:14 | access to local variable b2 | | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | true | -| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | false | -| Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | | -| Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | | -| Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | | -| Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | false | -| Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | true | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:40:13:40:16 | ...; | true | +| Conditions.cs:39:13:39:14 | access to local variable b2 | Conditions.cs:41:9:42:16 | if (...) ... | false | +| Conditions.cs:40:13:40:13 | access to local variable x | Conditions.cs:40:13:40:15 | ...++ | | +| Conditions.cs:40:13:40:15 | ...++ | Conditions.cs:41:9:42:16 | if (...) ... | | +| Conditions.cs:40:13:40:16 | ...; | Conditions.cs:40:13:40:13 | access to local variable x | | +| Conditions.cs:41:9:42:16 | if (...) ... | Conditions.cs:41:13:41:14 | access to local variable b2 | | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:42:13:42:16 | ...; | true | +| Conditions.cs:41:13:41:14 | access to local variable b2 | Conditions.cs:43:16:43:16 | access to local variable x | false | | Conditions.cs:42:13:42:13 | access to local variable x | Conditions.cs:42:13:42:15 | ...++ | | | Conditions.cs:42:13:42:15 | ...++ | Conditions.cs:43:16:43:16 | access to local variable x | | | Conditions.cs:42:13:42:16 | ...; | Conditions.cs:42:13:42:13 | access to local variable x | | @@ -1382,34 +1229,18 @@ | Conditions.cs:48:13:48:17 | Int32 y = ... | Conditions.cs:49:9:53:9 | while (...) ... | | | Conditions.cs:48:17:48:17 | 0 | Conditions.cs:48:13:48:17 | Int32 y = ... | | | Conditions.cs:49:9:53:9 | while (...) ... | Conditions.cs:49:16:49:16 | access to parameter x | | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | | -| Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | | | Conditions.cs:49:16:49:16 | access to parameter x | Conditions.cs:49:16:49:18 | ...-- | | | Conditions.cs:49:16:49:18 | ...-- | Conditions.cs:49:22:49:22 | 0 | | -| Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | | -| Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:50:9:53:9 | {...} | true | | Conditions.cs:49:16:49:22 | ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | true | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | true | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | Conditions.cs:54:16:54:16 | access to local variable y | false | | Conditions.cs:49:22:49:22 | 0 | Conditions.cs:49:16:49:22 | ... > ... | | -| Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | | -| Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | | | Conditions.cs:50:9:53:9 | {...} | Conditions.cs:51:13:52:20 | if (...) ... | | -| Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | | -| Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | | | Conditions.cs:51:13:52:20 | if (...) ... | Conditions.cs:51:17:51:17 | access to parameter b | | -| Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | false | -| Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | false | -| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | true | -| Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | | -| Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:49:16:49:16 | access to parameter x | false | +| Conditions.cs:51:17:51:17 | access to parameter b | Conditions.cs:52:17:52:20 | ...; | true | +| Conditions.cs:52:17:52:17 | access to local variable y | Conditions.cs:52:17:52:19 | ...++ | | +| Conditions.cs:52:17:52:19 | ...++ | Conditions.cs:49:16:49:16 | access to parameter x | | +| Conditions.cs:52:17:52:20 | ...; | Conditions.cs:52:17:52:17 | access to local variable y | | | Conditions.cs:54:9:54:17 | return ...; | Conditions.cs:46:9:46:10 | exit M4 (normal) | return | | Conditions.cs:54:16:54:16 | access to local variable y | Conditions.cs:54:9:54:17 | return ...; | | | Conditions.cs:57:9:57:10 | enter M5 | Conditions.cs:58:5:68:5 | {...} | | @@ -1419,39 +1250,19 @@ | Conditions.cs:59:13:59:17 | Int32 y = ... | Conditions.cs:60:9:64:9 | while (...) ... | | | Conditions.cs:59:17:59:17 | 0 | Conditions.cs:59:13:59:17 | Int32 y = ... | | | Conditions.cs:60:9:64:9 | while (...) ... | Conditions.cs:60:16:60:16 | access to parameter x | | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | | -| Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | | | Conditions.cs:60:16:60:16 | access to parameter x | Conditions.cs:60:16:60:18 | ...-- | | | Conditions.cs:60:16:60:18 | ...-- | Conditions.cs:60:22:60:22 | 0 | | -| Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | | -| Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:61:9:64:9 | {...} | true | | Conditions.cs:60:16:60:22 | ... > ... | Conditions.cs:65:9:66:16 | if (...) ... | false | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | true | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | false | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | true | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | false | | Conditions.cs:60:22:60:22 | 0 | Conditions.cs:60:16:60:22 | ... > ... | | -| Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | | -| Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | | | Conditions.cs:61:9:64:9 | {...} | Conditions.cs:62:13:63:20 | if (...) ... | | -| Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | | -| Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | | | Conditions.cs:62:13:63:20 | if (...) ... | Conditions.cs:62:17:62:17 | access to parameter b | | -| Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | false | -| Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | false | -| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | true | -| Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | | -| Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:60:16:60:16 | access to parameter x | false | +| Conditions.cs:62:17:62:17 | access to parameter b | Conditions.cs:63:17:63:20 | ...; | true | +| Conditions.cs:63:17:63:17 | access to local variable y | Conditions.cs:63:17:63:19 | ...++ | | +| Conditions.cs:63:17:63:19 | ...++ | Conditions.cs:60:16:60:16 | access to parameter x | | +| Conditions.cs:63:17:63:20 | ...; | Conditions.cs:63:17:63:17 | access to local variable y | | | Conditions.cs:65:9:66:16 | if (...) ... | Conditions.cs:65:13:65:13 | access to parameter b | | -| Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | false | -| Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | Conditions.cs:66:13:66:16 | ...; | true | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:66:13:66:16 | ...; | true | | Conditions.cs:65:13:65:13 | access to parameter b | Conditions.cs:67:16:67:16 | access to local variable y | false | | Conditions.cs:66:13:66:13 | access to local variable y | Conditions.cs:66:13:66:15 | ...++ | | @@ -1545,31 +1356,24 @@ | Conditions.cs:104:17:104:17 | access to parameter b | Conditions.cs:104:17:104:28 | call to method ToString | | | Conditions.cs:104:17:104:28 | call to method ToString | Conditions.cs:104:13:104:28 | String x = ... | | | Conditions.cs:105:9:106:20 | if (...) ... | Conditions.cs:105:13:105:13 | access to parameter b | | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | true | -| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | false | -| Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | Conditions.cs:106:18:106:19 | [b (line 102): true] "" | | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | | -| Conditions.cs:106:18:106:19 | [b (line 102): true] "" | Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | | -| Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | | -| Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | | -| Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | | -| Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | | -| Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | true | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | true | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | -| Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | | -| Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:106:13:106:20 | ...; | true | +| Conditions.cs:105:13:105:13 | access to parameter b | Conditions.cs:107:9:109:24 | if (...) ... | false | +| Conditions.cs:106:13:106:13 | access to local variable x | Conditions.cs:106:18:106:19 | "" | | +| Conditions.cs:106:13:106:19 | ... + ... | Conditions.cs:106:13:106:19 | ... = ... | | +| Conditions.cs:106:13:106:19 | ... = ... | Conditions.cs:107:9:109:24 | if (...) ... | | +| Conditions.cs:106:13:106:20 | ...; | Conditions.cs:106:13:106:13 | access to local variable x | | +| Conditions.cs:106:18:106:19 | "" | Conditions.cs:106:13:106:19 | ... + ... | | +| Conditions.cs:107:9:109:24 | if (...) ... | Conditions.cs:107:13:107:13 | access to local variable x | | +| Conditions.cs:107:13:107:13 | access to local variable x | Conditions.cs:107:13:107:20 | access to property Length | | +| Conditions.cs:107:13:107:20 | access to property Length | Conditions.cs:107:24:107:24 | 0 | | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:108:13:109:24 | if (...) ... | true | +| Conditions.cs:107:13:107:24 | ... > ... | Conditions.cs:110:16:110:16 | access to local variable x | false | +| Conditions.cs:107:24:107:24 | 0 | Conditions.cs:107:13:107:24 | ... > ... | | +| Conditions.cs:108:13:109:24 | if (...) ... | Conditions.cs:108:18:108:18 | access to parameter b | | | Conditions.cs:108:17:108:18 | [false] !... | Conditions.cs:110:16:110:16 | access to local variable x | false | | Conditions.cs:108:17:108:18 | [true] !... | Conditions.cs:109:17:109:24 | ...; | true | -| Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | false | -| Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | true | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [false] !... | true | +| Conditions.cs:108:18:108:18 | access to parameter b | Conditions.cs:108:17:108:18 | [true] !... | false | | Conditions.cs:109:17:109:17 | access to local variable x | Conditions.cs:109:22:109:23 | "" | | | Conditions.cs:109:17:109:23 | ... + ... | Conditions.cs:109:17:109:23 | ... = ... | | | Conditions.cs:109:17:109:23 | ... = ... | Conditions.cs:110:16:110:16 | access to local variable x | | @@ -1603,78 +1407,51 @@ | Conditions.cs:118:29:118:43 | ... - ... | Conditions.cs:118:24:118:43 | ... == ... | | | Conditions.cs:118:43:118:43 | 1 | Conditions.cs:118:29:118:43 | ... - ... | | | Conditions.cs:119:13:120:23 | if (...) ... | Conditions.cs:119:18:119:21 | access to local variable last | | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | false | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | true | -| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | false | -| Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | Conditions.cs:120:21:120:22 | [last (line 118): false] "" | | -| Conditions.cs:120:21:120:22 | [last (line 118): false] "" | Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | | -| Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | | -| Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | false | -| Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | Conditions.cs:122:17:122:25 | ...; | true | +| Conditions.cs:119:17:119:21 | [false] !... | Conditions.cs:121:13:122:25 | if (...) ... | false | +| Conditions.cs:119:17:119:21 | [true] !... | Conditions.cs:120:17:120:23 | ...; | true | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [false] !... | true | +| Conditions.cs:119:18:119:21 | access to local variable last | Conditions.cs:119:17:119:21 | [true] !... | false | +| Conditions.cs:120:17:120:22 | ... = ... | Conditions.cs:121:13:122:25 | if (...) ... | | +| Conditions.cs:120:17:120:23 | ...; | Conditions.cs:120:21:120:22 | "" | | +| Conditions.cs:120:21:120:22 | "" | Conditions.cs:120:17:120:22 | ... = ... | | +| Conditions.cs:121:13:122:25 | if (...) ... | Conditions.cs:121:17:121:20 | access to local variable last | | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:116:42:116:42 | access to local variable i | false | +| Conditions.cs:121:17:121:20 | access to local variable last | Conditions.cs:122:17:122:25 | ...; | true | | Conditions.cs:122:17:122:24 | ... = ... | Conditions.cs:116:42:116:42 | access to local variable i | | | Conditions.cs:122:17:122:25 | ...; | Conditions.cs:122:21:122:24 | null | | | Conditions.cs:122:21:122:24 | null | Conditions.cs:122:17:122:24 | ... = ... | | | Conditions.cs:129:10:129:12 | enter M10 | Conditions.cs:130:5:141:5 | {...} | | | Conditions.cs:130:5:141:5 | {...} | Conditions.cs:131:9:140:9 | while (...) ... | | | Conditions.cs:131:9:140:9 | while (...) ... | Conditions.cs:131:16:131:19 | true | | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | | Conditions.cs:131:16:131:19 | true | Conditions.cs:132:9:140:9 | {...} | true | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | | | Conditions.cs:132:9:140:9 | {...} | Conditions.cs:133:13:139:13 | if (...) ... | | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | | | Conditions.cs:133:13:139:13 | if (...) ... | Conditions.cs:133:17:133:22 | this access | | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | false | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | false | -| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | true | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:131:16:131:19 | true | false | +| Conditions.cs:133:17:133:22 | access to field Field1 | Conditions.cs:134:13:139:13 | {...} | true | | Conditions.cs:133:17:133:22 | this access | Conditions.cs:133:17:133:22 | access to field Field1 | | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | false | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | false | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | | -| Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | | -| Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | | +| Conditions.cs:134:13:139:13 | {...} | Conditions.cs:135:17:138:17 | if (...) ... | | +| Conditions.cs:135:17:138:17 | if (...) ... | Conditions.cs:135:21:135:26 | this access | | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:131:16:131:19 | true | false | +| Conditions.cs:135:21:135:26 | access to field Field2 | Conditions.cs:136:17:138:17 | {...} | true | +| Conditions.cs:135:21:135:26 | this access | Conditions.cs:135:21:135:26 | access to field Field2 | | +| Conditions.cs:136:17:138:17 | {...} | Conditions.cs:137:21:137:38 | ...; | | +| Conditions.cs:137:21:137:26 | access to field Field1 | Conditions.cs:137:21:137:37 | call to method ToString | | +| Conditions.cs:137:21:137:26 | this access | Conditions.cs:137:21:137:26 | access to field Field1 | | +| Conditions.cs:137:21:137:37 | call to method ToString | Conditions.cs:131:16:131:19 | true | | +| Conditions.cs:137:21:137:38 | ...; | Conditions.cs:137:21:137:26 | this access | | | Conditions.cs:143:10:143:12 | enter M11 | Conditions.cs:144:5:150:5 | {...} | | | Conditions.cs:143:10:143:12 | exit M11 (normal) | Conditions.cs:143:10:143:12 | exit M11 | | | Conditions.cs:144:5:150:5 | {...} | Conditions.cs:145:9:145:30 | ... ...; | | | Conditions.cs:145:9:145:30 | ... ...; | Conditions.cs:145:17:145:17 | access to parameter b | | -| Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | | -| Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | true | -| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | false | -| Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | | -| Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | | -| Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | | -| Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | | -| Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | Conditions.cs:149:13:149:49 | ...; | false | -| Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | Conditions.cs:147:13:147:49 | ...; | true | +| Conditions.cs:145:13:145:29 | String s = ... | Conditions.cs:146:9:149:49 | if (...) ... | | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:21:145:23 | "a" | true | +| Conditions.cs:145:17:145:17 | access to parameter b | Conditions.cs:145:27:145:29 | "b" | false | +| Conditions.cs:145:17:145:29 | ... ? ... : ... | Conditions.cs:145:13:145:29 | String s = ... | | +| Conditions.cs:145:21:145:23 | "a" | Conditions.cs:145:17:145:29 | ... ? ... : ... | | +| Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:17:145:29 | ... ? ... : ... | | +| Conditions.cs:146:9:149:49 | if (...) ... | Conditions.cs:146:13:146:13 | access to parameter b | | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:147:13:147:49 | ...; | true | +| Conditions.cs:146:13:146:13 | access to parameter b | Conditions.cs:149:13:149:49 | ...; | false | | Conditions.cs:147:13:147:48 | call to method WriteLine | Conditions.cs:143:10:143:12 | exit M11 (normal) | | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:40:147:43 | "a = " | | | Conditions.cs:147:38:147:47 | $"..." | Conditions.cs:147:13:147:48 | call to method WriteLine | | @@ -1728,16 +1505,14 @@ | 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 | -| 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:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | 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 | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:45:9:47:9 | {...} | match | -| ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | no-match | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:45:9:47:9 | {...} | match | +| ExitMethods.cs:44:9:47:9 | catch (...) {...} | ExitMethods.cs:48:9:51:9 | catch (...) {...} | no-match | | ExitMethods.cs:45:9:47:9 | {...} | ExitMethods.cs:46:13:46:19 | return ...; | | | ExitMethods.cs:46:13:46:19 | return ...; | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | return | -| ExitMethods.cs:48:9:51:9 | [exception: Exception] catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | match | +| ExitMethods.cs:48:9:51:9 | catch (...) {...} | ExitMethods.cs:49:9:51:9 | {...} | match | | ExitMethods.cs:49:9:51:9 | {...} | ExitMethods.cs:50:13:50:19 | return ...; | | | ExitMethods.cs:50:13:50:19 | return ...; | ExitMethods.cs:38:10:38:11 | exit M6 (normal) | return | | ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:55:5:58:5 | {...} | | @@ -1912,18 +1687,14 @@ | 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.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} | , exception | | 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] {...} | 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] 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 (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] ...; | 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] "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,43 +1702,40 @@ | 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 | +| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | 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 | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | match | -| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | no-match | -| 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:24:13:24:19 | return ...; | Finally.cs:49:9:51:9 | {...} | return | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:26:38:26:39 | IOException ex | match | +| Finally.cs:26:9:29:9 | catch (...) {...} | Finally.cs:30:9:40:9 | catch (...) {...} | no-match | +| Finally.cs:26:38:26:39 | IOException ex | Finally.cs:26:48:26:51 | true | | +| Finally.cs:26:48:26:51 | 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] {...} | 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 | {...} | | +| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | {...} | exception | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:30:41:30:42 | ArgumentException ex | match | +| Finally.cs:30:9:40:9 | catch (...) {...} | Finally.cs:41:9:43:9 | catch (...) {...} | no-match | +| Finally.cs:30:41:30:42 | ArgumentException ex | Finally.cs:31:9:40:9 | {...} | | | Finally.cs:31:9:40:9 | {...} | Finally.cs:32:13:39:13 | try {...} ... | | | Finally.cs:32:13:39:13 | try {...} ... | Finally.cs:33:13:35:13 | {...} | | | 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] {...} | 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:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | {...} | exception | +| Finally.cs:37:13:39:13 | {...} | Finally.cs:38:37:38:42 | "Boo!" | | +| Finally.cs:38:17:38:44 | throw ...; | Finally.cs:49:9:51:9 | {...} | exception | +| Finally.cs:38:23:38:43 | object creation of type Exception | Finally.cs:38:17:38:44 | throw ...; | | +| Finally.cs:38:37:38:42 | "Boo!" | Finally.cs:38:23:38:43 | object creation of type Exception | | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:42:9:43:9 | {...} | match | +| Finally.cs:41:9:43:9 | catch (...) {...} | Finally.cs:44:9:47:9 | catch {...} | no-match | | Finally.cs:42:9:43:9 | {...} | Finally.cs:49:9:51:9 | {...} | | -| 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:44:9:47:9 | catch {...} | Finally.cs:45:9:47:9 | {...} | | +| Finally.cs:45:9:47:9 | {...} | Finally.cs:46:13:46:19 | return ...; | | +| Finally.cs:46:13:46:19 | return ...; | Finally.cs:49:9:51:9 | {...} | 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) | 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:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception | +| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (normal) | , return | | Finally.cs:50:13:50:41 | ...; | Finally.cs:50:31:50:39 | "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] "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 | | | Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 | | @@ -1975,36 +1743,30 @@ | 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 | +| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | 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 | -| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | match | -| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | no-match | -| 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:59:13:59:19 | return ...; | Finally.cs:69:9:71:9 | {...} | return | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:61:38:61:39 | IOException ex | match | +| Finally.cs:61:9:64:9 | catch (...) {...} | Finally.cs:65:9:67:9 | catch (...) {...} | no-match | +| Finally.cs:61:38:61:39 | IOException ex | Finally.cs:61:48:61:51 | true | | +| Finally.cs:61:48:61:51 | 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] {...} | 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 | -| Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | | +| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | {...} | exception | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:65:26:65:26 | Exception e | match | +| Finally.cs:65:9:67:9 | catch (...) {...} | Finally.cs:69:9:71:9 | {...} | exception | +| Finally.cs:65:26:65:26 | Exception e | Finally.cs:65:35:65:35 | access to local variable e | | +| Finally.cs:65:35:65:35 | access to local variable e | Finally.cs:65:35:65:43 | access to property Message | | +| Finally.cs:65:35:65:43 | access to property Message | Finally.cs:65:48:65:51 | null | | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:66:9:67:9 | {...} | true | +| Finally.cs:65:35:65:51 | ... != ... | Finally.cs:69:9:71:9 | {...} | exception | +| Finally.cs:65:48:65:51 | null | Finally.cs:65:35:65:51 | ... != ... | | | Finally.cs:66:9:67:9 | {...} | Finally.cs:69:9:71:9 | {...} | | -| 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) | 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:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception | +| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (normal) | , return | | Finally.cs:70:13:70:41 | ...; | Finally.cs:70:31:70:39 | "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] "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 | | | Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:74:10:74:11 | exit M4 | | @@ -2025,95 +1787,36 @@ | Finally.cs:81:21:81:26 | ... == ... | Finally.cs:82:21:82:27 | return ...; | true | | Finally.cs:81:21:81:26 | ... == ... | Finally.cs:83:17:84:29 | if (...) ... | false | | Finally.cs:81:26:81:26 | 0 | Finally.cs:81:21:81:26 | ... == ... | | -| Finally.cs:82:21:82:27 | return ...; | Finally.cs:89:13:99:13 | [finally: return] {...} | return | +| Finally.cs:82:21:82:27 | return ...; | Finally.cs:89:13:99:13 | {...} | return | | Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:21:83:21 | access to local variable i | | | Finally.cs:83:21:83:21 | access to local variable i | Finally.cs:83:26:83:26 | 1 | | | Finally.cs:83:21:83:26 | ... == ... | Finally.cs:84:21:84:29 | continue; | true | | Finally.cs:83:21:83:26 | ... == ... | Finally.cs:85:17:86:26 | if (...) ... | false | | Finally.cs:83:26:83:26 | 1 | Finally.cs:83:21:83:26 | ... == ... | | -| Finally.cs:84:21:84:29 | continue; | Finally.cs:89:13:99:13 | [finally: continue] {...} | continue | +| Finally.cs:84:21:84:29 | continue; | Finally.cs:89:13:99:13 | {...} | continue | | Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:21:85:21 | access to local variable i | | | Finally.cs:85:21:85:21 | access to local variable i | Finally.cs:85:26:85:26 | 2 | | | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:86:21:86:26 | break; | true | | Finally.cs:85:21:85:26 | ... == ... | Finally.cs:89:13:99:13 | {...} | false | | Finally.cs:85:26:85:26 | 2 | Finally.cs:85:21:85:26 | ... == ... | | -| Finally.cs:86:21:86:26 | break; | Finally.cs:89:13:99:13 | [finally: break] {...} | break | -| Finally.cs:89:13:99:13 | [finally: break] {...} | Finally.cs:90:17:98:17 | [finally: break] try {...} ... | | -| Finally.cs:89:13:99:13 | [finally: continue] {...} | Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | | -| Finally.cs:89:13:99:13 | [finally: return] {...} | Finally.cs:90:17:98:17 | [finally: return] try {...} ... | | +| Finally.cs:86:21:86:26 | break; | Finally.cs:89:13:99:13 | {...} | break | | Finally.cs:89:13:99:13 | {...} | Finally.cs:90:17:98:17 | try {...} ... | | -| Finally.cs:90:17:98:17 | [finally: break] try {...} ... | Finally.cs:91:17:94:17 | [finally: break] {...} | | -| Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | Finally.cs:91:17:94:17 | [finally: continue] {...} | | -| Finally.cs:90:17:98:17 | [finally: return] try {...} ... | Finally.cs:91:17:94:17 | [finally: return] {...} | | | Finally.cs:90:17:98:17 | try {...} ... | Finally.cs:91:17:94:17 | {...} | | -| Finally.cs:91:17:94:17 | [finally: break] {...} | Finally.cs:92:21:93:46 | [finally: break] if (...) ... | | -| Finally.cs:91:17:94:17 | [finally: continue] {...} | Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | | -| Finally.cs:91:17:94:17 | [finally: return] {...} | Finally.cs:92:21:93:46 | [finally: return] if (...) ... | | | Finally.cs:91:17:94:17 | {...} | Finally.cs:92:21:93:46 | if (...) ... | | -| Finally.cs:92:21:93:46 | [finally: break] if (...) ... | Finally.cs:92:25:92:25 | [finally: break] access to local variable i | | -| Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | | -| Finally.cs:92:21:93:46 | [finally: return] if (...) ... | Finally.cs:92:25:92:25 | [finally: return] access to local variable i | | | Finally.cs:92:21:93:46 | if (...) ... | Finally.cs:92:25:92:25 | access to local variable i | | -| Finally.cs:92:25:92:25 | [finally: break] access to local variable i | Finally.cs:92:30:92:30 | [finally: break] 3 | | -| Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | Finally.cs:92:30:92:30 | [finally: continue] 3 | | -| Finally.cs:92:25:92:25 | [finally: return] access to local variable i | Finally.cs:92:30:92:30 | [finally: return] 3 | | | Finally.cs:92:25:92:25 | access to local variable i | Finally.cs:92:30:92:30 | 3 | | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:93:31:93:45 | object creation of type Exception | true | | Finally.cs:92:25:92:30 | ... == ... | Finally.cs:96:17:98:17 | {...} | false | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | true | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:96:17:98:17 | [finally: break] {...} | false | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:96:17:98:17 | [finally: continue] {...} | false | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:96:17:98:17 | [finally: return] {...} | false | | Finally.cs:92:30:92:30 | 3 | Finally.cs:92:25:92:30 | ... == ... | | -| 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 | -| 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 | -| 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: 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:25:93:46 | throw ...; | Finally.cs:96:17:98:17 | {...} | 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] {...} | 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] {...} | 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] {...} | 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:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | {...} | exception | | Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:24 | ...; | | -| 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] 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] 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] ...-- | 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] ...-- | 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] ...-- | 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:23 | ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception | +| Finally.cs:97:21:97:23 | ...-- | Finally.cs:74:10:74:11 | exit M4 (normal) | break, return | +| Finally.cs:97:21:97:23 | ...-- | Finally.cs:77:16:77:16 | access to local variable i | , continue | | 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] ...; | 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] ...; | 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] ...; | 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 | | | Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:103:10:103:11 | exit M5 | | @@ -2122,98 +1825,52 @@ | 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] {...} | exception | +| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | {...} | 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:28 | access to property Length | Finally.cs:113:9:118:9 | {...} | 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:108:17:108:23 | return ...; | Finally.cs:113:9:118:9 | {...} | 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] {...} | exception | +| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:113:9:118:9 | {...} | 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 | +| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | {...} | 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] {...} | exception | +| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | {...} | 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 | -| 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:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:113:9:118:9 | {...} | exception | | Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | if (...) ... | | -| 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] !... | 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] !... | 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] 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] 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] ... == ... | 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] 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] 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] ...; | 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] 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] 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] 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] 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:103:10:103:11 | exit M5 (abnormal) | exception | +| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | false, return | | Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | 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] 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] 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:36 | call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception | +| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (normal) | , return | | Finally.cs:117:17:117:37 | ...; | Finally.cs:117:35:117:35 | 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] 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 | | | Finally.cs:122:5:131:5 | {...} | Finally.cs:123:9:130:9 | try {...} ... | | @@ -2230,18 +1887,13 @@ | 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.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} | , exception | | 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] {...} | 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] 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] "" | 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 | | @@ -2253,89 +1905,45 @@ | 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] {...} | exception | +| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | {...} | 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 | -| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | | +| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | {...} | exception | | Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | try {...} ... | | -| 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] {...} | 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] 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] 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] 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 | -| 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:31 | access to property Length | Finally.cs:161:13:164:13 | catch (...) {...} | exception | +| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | 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] ... == ... | 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] 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:21:159:45 | throw ...; | Finally.cs:161:13:164:13 | 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 | +| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:161:13:164:13 | 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] "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, 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, 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, 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, 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, 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, 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:161:13:164:13 | catch (...) {...} | Finally.cs:161:30:161:30 | Exception e | match | +| Finally.cs:161:13:164:13 | catch (...) {...} | Finally.cs:165:13:168:13 | catch {...} | no-match | +| Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:39 | access to local variable e | | +| Finally.cs:161:39:161:39 | access to local variable e | Finally.cs:161:39:161:47 | access to property Message | | +| Finally.cs:161:39:161:47 | access to property Message | Finally.cs:161:52:161:54 | "1" | | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:162:13:164:13 | {...} | true | +| Finally.cs:161:39:161:54 | ... == ... | Finally.cs:165:13:168:13 | catch {...} | false | +| Finally.cs:161:52:161:54 | "1" | Finally.cs:161:39:161:54 | ... == ... | | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:43 | ...; | | -| 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 (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] ...; | 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] 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] 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] {...} | 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] 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 (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] ...; | 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] "" | 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 | | @@ -2355,47 +1963,32 @@ | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:179:9:181:9 | {...} | | | Finally.cs:179:9:181:9 | {...} | Finally.cs:180:13:180:43 | if (...) ... | | | 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, 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, 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, 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, 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, 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, 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, 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 | -| 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, 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, 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, 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, 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, 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:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | object creation of type ExceptionA | true | +| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | {...} | false | +| Finally.cs:180:21:180:43 | throw ...; | Finally.cs:183:9:192:9 | {...} | exception | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:180:21:180:43 | throw ...; | | +| Finally.cs:180:27:180:42 | object creation of type ExceptionA | Finally.cs:183:9:192:9 | {...} | exception | +| Finally.cs:183:9:192:9 | {...} | Finally.cs:184:13:191:13 | try {...} ... | | +| Finally.cs:184:13:191:13 | try {...} ... | Finally.cs:185:13:187:13 | {...} | | +| Finally.cs:185:13:187:13 | {...} | Finally.cs:186:17:186:47 | if (...) ... | | +| Finally.cs:186:17:186:47 | if (...) ... | Finally.cs:186:21:186:22 | access to parameter b2 | | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | +| Finally.cs:186:21:186:22 | access to parameter b2 | Finally.cs:186:31:186:46 | object creation of type ExceptionB | true | +| Finally.cs:186:25:186:47 | throw ...; | Finally.cs:188:13:191:13 | catch (...) {...} | exception | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:186:25:186:47 | throw ...; | | +| Finally.cs:186:31:186:46 | object creation of type ExceptionB | Finally.cs:188:13:191:13 | catch (...) {...} | exception | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:188:13:191:13 | catch (...) {...} | Finally.cs:188:38:188:39 | access to parameter b2 | match | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:188:38:188:39 | access to parameter b2 | Finally.cs:189:13:191:13 | {...} | true | +| Finally.cs:189:13:191:13 | {...} | Finally.cs:190:17:190:47 | if (...) ... | | +| Finally.cs:190:17:190:47 | if (...) ... | Finally.cs:190:21:190:22 | access to parameter b1 | | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false | +| Finally.cs:190:21:190:22 | access to parameter b1 | Finally.cs:190:31:190:46 | object creation of type ExceptionC | true | +| Finally.cs:190:25:190:47 | throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception | +| Finally.cs:190:31:190:46 | object creation of type ExceptionC | Finally.cs:190:25:190:47 | 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 | | @@ -2405,59 +1998,30 @@ | 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] {...} | exception | +| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | {...} | 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 | -| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | | +| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | {...} | exception | | Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | try {...} ... | | -| 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] {...} | 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] 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] 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] 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:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | {...} | 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] {...} | 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:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | {...} | exception | | Finally.cs:208:13:210:13 | {...} | Finally.cs:209:17:209:47 | if (...) ... | | -| 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] 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:195:10:195:12 | exit M10 (abnormal) | exception | | 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] 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] 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:195:10:195:12 | exit M10 (abnormal) | exception | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | | -| 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] ...; | 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] "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 | | @@ -2494,55 +2058,31 @@ | 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] {...} | exception | +| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | {...} | 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 | -| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | | +| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | {...} | exception | | Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | try {...} ... | | -| 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] {...} | 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] 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] 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] 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:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | {...} | 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] {...} | 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:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | {...} | exception | | Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:55 | ...; | | -| 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:54 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | exception | | Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "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] "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:44 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | , exception | | 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] {...} | 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) | exception | +| Finally.cs:258:13:258:46 | 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] ...; | 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] "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 | | @@ -2552,28 +2092,19 @@ | 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.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} | , exception | | 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] {...} | 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] 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] ...; | 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] "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 (abnormal) | exception | | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | exit M13 (normal) | | -| 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] ...; | 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] 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 | | @@ -2863,11 +2394,10 @@ | LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:11:29:11:32 | access to parameter args | false | | LoopUnrolling.cs:9:28:9:28 | 0 | LoopUnrolling.cs:9:13:9:28 | ... == ... | | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | return | -| LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | non-empty | | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | empty | | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:11:22:11:24 | String arg | non-empty | | LoopUnrolling.cs:11:22:11:24 | String arg | LoopUnrolling.cs:12:13:12:35 | ...; | | -| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | [unroll (line 11)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:11:29:11:32 | access to parameter args | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:12:13:12:35 | ...; | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | | | LoopUnrolling.cs:12:31:12:33 | access to local variable arg | LoopUnrolling.cs:12:13:12:34 | call to method WriteLine | | @@ -2882,11 +2412,10 @@ | LoopUnrolling.cs:17:33:17:35 | "a" | LoopUnrolling.cs:17:38:17:40 | "b" | | | LoopUnrolling.cs:17:38:17:40 | "b" | LoopUnrolling.cs:17:43:17:45 | "c" | | | LoopUnrolling.cs:17:43:17:45 | "c" | LoopUnrolling.cs:17:31:17:47 | { ..., ... } | | -| LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | non-empty | | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:15:10:15:11 | exit M2 (normal) | empty | | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:18:22:18:22 | String x | non-empty | | LoopUnrolling.cs:18:22:18:22 | String x | LoopUnrolling.cs:19:13:19:33 | ...; | | -| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:9:19:33 | [unroll (line 18)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:18:27:18:28 | access to local variable xs | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | LoopUnrolling.cs:18:9:19:33 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:19:13:19:33 | ...; | LoopUnrolling.cs:19:31:19:31 | access to local variable x | | | LoopUnrolling.cs:19:31:19:31 | access to local variable x | LoopUnrolling.cs:19:13:19:32 | call to method WriteLine | | @@ -2897,11 +2426,10 @@ | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:22:24:24 | Char arg | non-empty | | LoopUnrolling.cs:24:22:24:24 | Char arg | LoopUnrolling.cs:25:34:25:37 | access to parameter args | | | LoopUnrolling.cs:24:29:24:32 | access to parameter args | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | | -| LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | non-empty | | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:24:9:26:40 | foreach (... ... in ...) ... | empty | | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | LoopUnrolling.cs:25:26:25:29 | Char arg0 | non-empty | | LoopUnrolling.cs:25:26:25:29 | Char arg0 | LoopUnrolling.cs:26:17:26:40 | ...; | | -| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:13:26:40 | [unroll (line 25)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:25:34:25:37 | access to parameter args | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | LoopUnrolling.cs:25:13:26:40 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:26:17:26:40 | ...; | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | | | LoopUnrolling.cs:26:35:26:38 | access to local variable arg0 | LoopUnrolling.cs:26:17:26:39 | call to method WriteLine | | @@ -2912,8 +2440,13 @@ | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | LoopUnrolling.cs:32:27:32:28 | access to local variable xs | | | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | LoopUnrolling.cs:31:13:31:30 | String[] xs = ... | | | LoopUnrolling.cs:31:29:31:29 | 0 | LoopUnrolling.cs:31:18:31:30 | array creation of type String[] | | -| LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | empty | -| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:9:33:33 | [skip (line 32)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:29:10:29:11 | exit M4 (normal) | empty | +| LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | LoopUnrolling.cs:32:22:32:22 | String x | non-empty | +| LoopUnrolling.cs:32:22:32:22 | String x | LoopUnrolling.cs:33:13:33:33 | ...; | | +| LoopUnrolling.cs:32:27:32:28 | access to local variable xs | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | LoopUnrolling.cs:32:9:33:33 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:33:13:33:33 | ...; | LoopUnrolling.cs:33:31:33:31 | access to local variable x | | +| LoopUnrolling.cs:33:31:33:31 | access to local variable x | LoopUnrolling.cs:33:13:33:32 | call to method WriteLine | | | LoopUnrolling.cs:36:10:36:11 | enter M5 | LoopUnrolling.cs:37:5:43:5 | {...} | | | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | LoopUnrolling.cs:36:10:36:11 | exit M5 | | | LoopUnrolling.cs:37:5:43:5 | {...} | LoopUnrolling.cs:38:9:38:48 | ... ...; | | @@ -2933,22 +2466,21 @@ | LoopUnrolling.cs:39:33:39:35 | "0" | LoopUnrolling.cs:39:38:39:40 | "1" | | | LoopUnrolling.cs:39:38:39:40 | "1" | LoopUnrolling.cs:39:43:39:45 | "2" | | | LoopUnrolling.cs:39:43:39:45 | "2" | LoopUnrolling.cs:39:31:39:47 | { ..., ... } | | -| LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | non-empty | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:36:10:36:11 | exit M5 (normal) | empty | | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:22:40:22 | String x | non-empty | | LoopUnrolling.cs:40:22:40:22 | String x | LoopUnrolling.cs:41:31:41:32 | access to local variable ys | | -| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:9:42:41 | [unroll (line 40)] foreach (... ... in ...) ... | | -| LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | non-empty | +| LoopUnrolling.cs:40:27:40:28 | access to local variable xs | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:40:9:42:41 | foreach (... ... in ...) ... | empty | | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | LoopUnrolling.cs:41:26:41:26 | String y | non-empty | | LoopUnrolling.cs:41:26:41:26 | String y | LoopUnrolling.cs:42:17:42:41 | ...; | | -| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:13:42:41 | [unroll (line 41)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:41:31:41:32 | access to local variable ys | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | LoopUnrolling.cs:41:13:42:41 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:42:17:42:41 | ...; | LoopUnrolling.cs:42:35:42:35 | access to local variable x | | | LoopUnrolling.cs:42:35:42:35 | access to local variable x | LoopUnrolling.cs:42:39:42:39 | access to local variable y | | | LoopUnrolling.cs:42:35:42:39 | ... + ... | LoopUnrolling.cs:42:17:42:40 | call to method WriteLine | | | LoopUnrolling.cs:42:39:42:39 | access to local variable y | LoopUnrolling.cs:42:35:42:39 | ... + ... | | | LoopUnrolling.cs:45:10:45:11 | enter M6 | LoopUnrolling.cs:46:5:53:5 | {...} | | +| LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | LoopUnrolling.cs:45:10:45:11 | exit M6 | | | LoopUnrolling.cs:46:5:53:5 | {...} | LoopUnrolling.cs:47:9:47:48 | ... ...; | | | LoopUnrolling.cs:47:9:47:48 | ... ...; | LoopUnrolling.cs:47:18:47:47 | 3 | | | LoopUnrolling.cs:47:13:47:47 | String[] xs = ... | LoopUnrolling.cs:48:27:48:28 | access to local variable xs | | @@ -2958,9 +2490,10 @@ | LoopUnrolling.cs:47:33:47:35 | "a" | LoopUnrolling.cs:47:38:47:40 | "b" | | | LoopUnrolling.cs:47:38:47:40 | "b" | LoopUnrolling.cs:47:43:47:45 | "c" | | | LoopUnrolling.cs:47:43:47:45 | "c" | LoopUnrolling.cs:47:31:47:47 | { ..., ... } | | -| LoopUnrolling.cs:48:9:52:9 | [unroll (line 48)] foreach (... ... in ...) ... | LoopUnrolling.cs:48:22:48:22 | String x | non-empty | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:45:10:45:11 | exit M6 (normal) | empty | +| LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:48:22:48:22 | String x | non-empty | | LoopUnrolling.cs:48:22:48:22 | String x | LoopUnrolling.cs:49:9:52:9 | {...} | | -| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:9:52:9 | [unroll (line 48)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:48:27:48:28 | access to local variable xs | LoopUnrolling.cs:48:9:52:9 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:49:9:52:9 | {...} | LoopUnrolling.cs:50:9:50:13 | Label: | | | LoopUnrolling.cs:50:9:50:13 | Label: | LoopUnrolling.cs:50:16:50:36 | ...; | | | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:51:13:51:23 | goto ...; | | @@ -2978,35 +2511,23 @@ | LoopUnrolling.cs:57:33:57:35 | "a" | LoopUnrolling.cs:57:38:57:40 | "b" | | | LoopUnrolling.cs:57:38:57:40 | "b" | LoopUnrolling.cs:57:43:57:45 | "c" | | | LoopUnrolling.cs:57:43:57:45 | "c" | LoopUnrolling.cs:57:31:57:47 | { ..., ... } | | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | empty | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | non-empty | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | empty | -| LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | non-empty | -| LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | non-empty | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | empty | +| LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:58:22:58:22 | String x | non-empty | | LoopUnrolling.cs:58:22:58:22 | String x | LoopUnrolling.cs:59:9:64:9 | {...} | | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | | -| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:9:64:9 | [unroll (line 58)] foreach (... ... in ...) ... | | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | | +| LoopUnrolling.cs:58:27:58:28 | access to local variable xs | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:59:9:64:9 | {...} | LoopUnrolling.cs:60:13:61:37 | if (...) ... | | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | | | LoopUnrolling.cs:60:13:61:37 | if (...) ... | LoopUnrolling.cs:60:17:60:17 | access to parameter b | | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | false | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | false | -| LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | | -| LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | false | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | true | -| LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | | -| LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:61:17:61:37 | ...; | true | +| LoopUnrolling.cs:60:17:60:17 | access to parameter b | LoopUnrolling.cs:62:13:63:37 | if (...) ... | false | +| LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | LoopUnrolling.cs:62:13:63:37 | if (...) ... | | +| LoopUnrolling.cs:61:17:61:37 | ...; | LoopUnrolling.cs:61:35:61:35 | access to local variable x | | +| LoopUnrolling.cs:61:35:61:35 | access to local variable x | LoopUnrolling.cs:61:17:61:36 | call to method WriteLine | | +| LoopUnrolling.cs:62:13:63:37 | if (...) ... | LoopUnrolling.cs:62:17:62:17 | access to parameter b | | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | false | +| LoopUnrolling.cs:62:17:62:17 | access to parameter b | LoopUnrolling.cs:63:17:63:37 | ...; | true | +| LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | LoopUnrolling.cs:58:9:64:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:63:17:63:37 | ...; | LoopUnrolling.cs:63:35:63:35 | access to local variable x | | +| LoopUnrolling.cs:63:35:63:35 | access to local variable x | LoopUnrolling.cs:63:17:63:36 | call to method WriteLine | | | LoopUnrolling.cs:67:10:67:11 | enter M8 | LoopUnrolling.cs:68:5:74:5 | {...} | | | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | LoopUnrolling.cs:67:10:67:11 | exit M8 | | | LoopUnrolling.cs:68:5:74:5 | {...} | LoopUnrolling.cs:69:9:70:19 | if (...) ... | | @@ -3020,8 +2541,13 @@ | LoopUnrolling.cs:71:9:71:12 | access to parameter args | LoopUnrolling.cs:71:9:71:20 | call to method Clear | | | LoopUnrolling.cs:71:9:71:20 | call to method Clear | LoopUnrolling.cs:72:29:72:32 | access to parameter args | | | LoopUnrolling.cs:71:9:71:21 | ...; | LoopUnrolling.cs:71:9:71:12 | access to parameter args | | -| LoopUnrolling.cs:72:9:73:35 | [skip (line 72)] foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | empty | -| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:9:73:35 | [skip (line 72)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:67:10:67:11 | exit M8 (normal) | empty | +| LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | LoopUnrolling.cs:72:22:72:24 | String arg | non-empty | +| LoopUnrolling.cs:72:22:72:24 | String arg | LoopUnrolling.cs:73:13:73:35 | ...; | | +| LoopUnrolling.cs:72:29:72:32 | access to parameter args | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | LoopUnrolling.cs:72:9:73:35 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:73:13:73:35 | ...; | LoopUnrolling.cs:73:31:73:33 | access to local variable arg | | +| LoopUnrolling.cs:73:31:73:33 | access to local variable arg | LoopUnrolling.cs:73:13:73:34 | call to method WriteLine | | | LoopUnrolling.cs:76:10:76:11 | enter M9 | LoopUnrolling.cs:77:5:83:5 | {...} | | | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | LoopUnrolling.cs:76:10:76:11 | exit M9 | | | LoopUnrolling.cs:77:5:83:5 | {...} | LoopUnrolling.cs:78:9:78:34 | ... ...; | | @@ -3030,8 +2556,14 @@ | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | LoopUnrolling.cs:78:13:78:33 | String[,] xs = ... | | | LoopUnrolling.cs:78:29:78:29 | 2 | LoopUnrolling.cs:78:32:78:32 | 0 | | | LoopUnrolling.cs:78:32:78:32 | 0 | LoopUnrolling.cs:78:18:78:33 | array creation of type String[,] | | -| LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | empty | -| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:9:82:9 | [skip (line 79)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:76:10:76:11 | exit M9 (normal) | empty | +| LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:79:22:79:22 | String x | non-empty | +| LoopUnrolling.cs:79:22:79:22 | String x | LoopUnrolling.cs:80:9:82:9 | {...} | | +| LoopUnrolling.cs:79:27:79:28 | access to local variable xs | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:80:9:82:9 | {...} | LoopUnrolling.cs:81:13:81:33 | ...; | | +| LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | LoopUnrolling.cs:79:9:82:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:81:13:81:33 | ...; | LoopUnrolling.cs:81:31:81:31 | access to local variable x | | +| LoopUnrolling.cs:81:31:81:31 | access to local variable x | LoopUnrolling.cs:81:13:81:32 | call to method WriteLine | | | LoopUnrolling.cs:85:10:85:12 | enter M10 | LoopUnrolling.cs:86:5:92:5 | {...} | | | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | LoopUnrolling.cs:85:10:85:12 | exit M10 | | | LoopUnrolling.cs:86:5:92:5 | {...} | LoopUnrolling.cs:87:9:87:34 | ... ...; | | @@ -3040,8 +2572,14 @@ | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | LoopUnrolling.cs:87:13:87:33 | String[,] xs = ... | | | LoopUnrolling.cs:87:29:87:29 | 0 | LoopUnrolling.cs:87:32:87:32 | 2 | | | LoopUnrolling.cs:87:32:87:32 | 2 | LoopUnrolling.cs:87:18:87:33 | array creation of type String[,] | | -| LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | empty | -| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:9:91:9 | [skip (line 88)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:85:10:85:12 | exit M10 (normal) | empty | +| LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:88:22:88:22 | String x | non-empty | +| LoopUnrolling.cs:88:22:88:22 | String x | LoopUnrolling.cs:89:9:91:9 | {...} | | +| LoopUnrolling.cs:88:27:88:28 | access to local variable xs | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:89:9:91:9 | {...} | LoopUnrolling.cs:90:13:90:33 | ...; | | +| LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | LoopUnrolling.cs:88:9:91:9 | foreach (... ... in ...) ... | | +| LoopUnrolling.cs:90:13:90:33 | ...; | LoopUnrolling.cs:90:31:90:31 | access to local variable x | | +| LoopUnrolling.cs:90:31:90:31 | access to local variable x | LoopUnrolling.cs:90:13:90:32 | call to method WriteLine | | | LoopUnrolling.cs:94:10:94:12 | enter M11 | LoopUnrolling.cs:95:5:101:5 | {...} | | | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | | | LoopUnrolling.cs:95:5:101:5 | {...} | LoopUnrolling.cs:96:9:96:34 | ... ...; | | @@ -3050,11 +2588,10 @@ | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | LoopUnrolling.cs:96:13:96:33 | String[,] xs = ... | | | LoopUnrolling.cs:96:29:96:29 | 2 | LoopUnrolling.cs:96:32:96:32 | 2 | | | LoopUnrolling.cs:96:32:96:32 | 2 | LoopUnrolling.cs:96:18:96:33 | array creation of type String[,] | | -| LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | non-empty | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | empty | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | non-empty | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:98:9:100:9 | {...} | | -| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:9:100:9 | [unroll (line 97)] foreach (... ... in ...) ... | | +| LoopUnrolling.cs:97:27:97:28 | access to local variable xs | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:98:9:100:9 | {...} | LoopUnrolling.cs:99:13:99:33 | ...; | | | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | @@ -4708,6 +4245,7 @@ | cflow.cs:256:35:256:35 | 0 | cflow.cs:256:17:256:36 | call to method WriteLine | | | cflow.cs:257:17:257:22 | break; | cflow.cs:240:10:240:13 | exit Goto (normal) | break | | cflow.cs:261:49:261:53 | enter Yield | cflow.cs:262:5:277:5 | {...} | | +| cflow.cs:261:49:261:53 | exit Yield (abnormal) | cflow.cs:261:49:261:53 | exit Yield | | | cflow.cs:261:49:261:53 | exit Yield (normal) | cflow.cs:261:49:261:53 | exit Yield | | | cflow.cs:262:5:277:5 | {...} | cflow.cs:263:22:263:22 | 0 | | | cflow.cs:263:9:263:23 | yield return ...; | cflow.cs:264:9:267:9 | for (...;...;...) ... | | @@ -4726,11 +4264,12 @@ | cflow.cs:266:26:266:26 | access to local variable i | cflow.cs:266:13:266:27 | yield return ...; | | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:269:9:272:9 | {...} | | | cflow.cs:269:9:272:9 | {...} | cflow.cs:270:13:270:24 | yield break; | | -| cflow.cs:270:13:270:24 | yield break; | cflow.cs:274:9:276:9 | [finally: return] {...} | return | -| cflow.cs:274:9:276:9 | [finally: return] {...} | cflow.cs:275:13:275:42 | [finally: return] ...; | | -| cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | return | -| cflow.cs:275:13:275:42 | [finally: return] ...; | cflow.cs:275:31:275:40 | [finally: return] "not dead" | | -| cflow.cs:275:31:275:40 | [finally: return] "not dead" | cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | | +| cflow.cs:270:13:270:24 | yield break; | cflow.cs:274:9:276:9 | {...} | return | +| cflow.cs:274:9:276:9 | {...} | cflow.cs:275:13:275:42 | ...; | | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (abnormal) | exception | +| cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | , return | +| cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | | +| cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | | | cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | exit ControlFlowSub | | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index 81c154386797..26e8d074b191 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -1,843 +1,3 @@ -booleanNode -| Assert.cs:58:16:58:32 | [b (line 56): false] String s = ... | b (line 56): false | -| Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | b (line 56): true | -| Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | b (line 56): false | -| Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | b (line 56): true | -| Assert.cs:58:24:58:27 | [b (line 56): true] null | b (line 56): true | -| Assert.cs:58:31:58:32 | [b (line 56): false] "" | b (line 56): false | -| Assert.cs:59:9:59:38 | [b (line 56): false] ...; | b (line 56): false | -| Assert.cs:59:9:59:38 | [b (line 56): true] ...; | b (line 56): true | -| Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | b (line 56): false | -| Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | b (line 56): true | -| Assert.cs:59:23:59:31 | [b (line 56): false] ... != ... | b (line 56): false | -| Assert.cs:59:23:59:31 | [b (line 56): true] ... != ... | b (line 56): true | -| Assert.cs:59:28:59:31 | [b (line 56): false] null | b (line 56): false | -| Assert.cs:59:28:59:31 | [b (line 56): true] null | b (line 56): true | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | b (line 56): false | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | b (line 56): true | -| Assert.cs:65:16:65:32 | [b (line 63): false] String s = ... | b (line 63): false | -| Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | b (line 63): true | -| Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | b (line 63): false | -| Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | b (line 63): true | -| Assert.cs:65:24:65:27 | [b (line 63): true] null | b (line 63): true | -| Assert.cs:65:31:65:32 | [b (line 63): false] "" | b (line 63): false | -| Assert.cs:66:9:66:39 | [b (line 63): false] ...; | b (line 63): false | -| Assert.cs:66:9:66:39 | [b (line 63): true] ...; | b (line 63): true | -| Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | b (line 63): false | -| Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | b (line 63): true | -| Assert.cs:66:24:66:32 | [b (line 63): false] ... == ... | b (line 63): false | -| Assert.cs:66:24:66:32 | [b (line 63): true] ... == ... | b (line 63): true | -| Assert.cs:66:29:66:32 | [b (line 63): false] null | b (line 63): false | -| Assert.cs:66:29:66:32 | [b (line 63): true] null | b (line 63): true | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | b (line 63): false | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | b (line 63): true | -| Assert.cs:72:16:72:32 | [b (line 70): false] String s = ... | b (line 70): false | -| Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | b (line 70): true | -| Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | b (line 70): false | -| Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | b (line 70): true | -| Assert.cs:72:24:72:27 | [b (line 70): true] null | b (line 70): true | -| Assert.cs:72:31:72:32 | [b (line 70): false] "" | b (line 70): false | -| Assert.cs:73:9:73:38 | [b (line 70): false] ...; | b (line 70): false | -| Assert.cs:73:9:73:38 | [b (line 70): true] ...; | b (line 70): true | -| Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | b (line 70): false | -| Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | b (line 70): true | -| Assert.cs:73:23:73:31 | [b (line 70): false] ... == ... | b (line 70): false | -| Assert.cs:73:23:73:31 | [b (line 70): true] ... == ... | b (line 70): true | -| Assert.cs:73:28:73:31 | [b (line 70): false] null | b (line 70): false | -| Assert.cs:73:28:73:31 | [b (line 70): true] null | b (line 70): true | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | b (line 70): false | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | b (line 70): true | -| Assert.cs:79:16:79:32 | [b (line 77): false] String s = ... | b (line 77): false | -| Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | b (line 77): true | -| Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | b (line 77): false | -| Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | b (line 77): true | -| Assert.cs:79:24:79:27 | [b (line 77): true] null | b (line 77): true | -| Assert.cs:79:31:79:32 | [b (line 77): false] "" | b (line 77): false | -| Assert.cs:80:9:80:39 | [b (line 77): false] ...; | b (line 77): false | -| Assert.cs:80:9:80:39 | [b (line 77): true] ...; | b (line 77): true | -| Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | b (line 77): false | -| Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | b (line 77): true | -| Assert.cs:80:24:80:32 | [b (line 77): false] ... != ... | b (line 77): false | -| Assert.cs:80:24:80:32 | [b (line 77): true] ... != ... | b (line 77): true | -| Assert.cs:80:29:80:32 | [b (line 77): false] null | b (line 77): false | -| Assert.cs:80:29:80:32 | [b (line 77): true] null | b (line 77): true | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | b (line 77): false | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | b (line 77): true | -| Assert.cs:86:16:86:32 | [b (line 84): false] String s = ... | b (line 84): false | -| Assert.cs:86:16:86:32 | [b (line 84): true] String s = ... | b (line 84): true | -| Assert.cs:86:20:86:32 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:86:20:86:32 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:86:24:86:27 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:86:31:86:32 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): false] call to method Assert | b (line 84): false | -| Assert.cs:87:9:87:31 | [assertion failure, b (line 84): true] call to method Assert | b (line 84): true | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): false] call to method Assert | b (line 84): false | -| Assert.cs:87:9:87:31 | [assertion success, b (line 84): true] call to method Assert | b (line 84): true | -| Assert.cs:87:9:87:32 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:87:9:87:32 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:87:22:87:22 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:87:22:87:22 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:87:22:87:30 | [b (line 84): false] ... != ... | b (line 84): false | -| Assert.cs:87:22:87:30 | [b (line 84): true] ... != ... | b (line 84): true | -| Assert.cs:87:27:87:30 | [b (line 84): false] null | b (line 84): false | -| Assert.cs:87:27:87:30 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:88:9:88:35 | [b (line 84): false] call to method WriteLine | b (line 84): false | -| Assert.cs:88:9:88:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:88:9:88:36 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:88:9:88:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:88:27:88:27 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:88:27:88:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:88:27:88:34 | [b (line 84): false] access to property Length | b (line 84): false | -| Assert.cs:88:27:88:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:90:9:90:25 | [b (line 84): false] ... = ... | b (line 84): false | -| Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:90:9:90:26 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:90:9:90:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:90:13:90:13 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:90:13:90:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:90:17:90:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:90:24:90:25 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | b (line 84): false | -| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | b (line 84): true | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | b (line 84): false | -| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | b (line 84): true | -| Assert.cs:91:9:91:25 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:91:9:91:25 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:91:23:91:23 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:92:9:92:35 | [b (line 84): false] call to method WriteLine | b (line 84): false | -| Assert.cs:92:9:92:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:92:9:92:36 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:92:9:92:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:92:27:92:27 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:92:27:92:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:92:27:92:34 | [b (line 84): false] access to property Length | b (line 84): false | -| Assert.cs:92:27:92:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:94:9:94:25 | [b (line 84): false] ... = ... | b (line 84): false | -| Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:94:9:94:26 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:94:9:94:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:94:13:94:13 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:94:13:94:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:94:17:94:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:94:24:94:25 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | b (line 84): false | -| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | b (line 84): true | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | b (line 84): false | -| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | b (line 84): true | -| Assert.cs:95:9:95:28 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:95:9:95:28 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:95:26:95:26 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:96:9:96:35 | [b (line 84): false] call to method WriteLine | b (line 84): false | -| Assert.cs:96:9:96:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:96:9:96:36 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:96:9:96:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:96:27:96:27 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:96:27:96:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:96:27:96:34 | [b (line 84): false] access to property Length | b (line 84): false | -| Assert.cs:96:27:96:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:98:9:98:25 | [b (line 84): false] ... = ... | b (line 84): false | -| Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:98:9:98:26 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:98:9:98:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:98:13:98:13 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:98:13:98:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:98:17:98:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:98:24:98:25 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | b (line 84): false | -| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | b (line 84): false | -| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:99:9:99:33 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:99:9:99:33 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:99:23:99:23 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:99:23:99:31 | [b (line 84): false] ... == ... | b (line 84): false | -| Assert.cs:99:23:99:31 | [b (line 84): true] ... == ... | b (line 84): true | -| Assert.cs:99:28:99:31 | [b (line 84): false] null | b (line 84): false | -| Assert.cs:99:28:99:31 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:100:9:100:35 | [b (line 84): false] call to method WriteLine | b (line 84): false | -| Assert.cs:100:9:100:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:100:9:100:36 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:100:9:100:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:100:27:100:27 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:100:27:100:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:100:27:100:34 | [b (line 84): false] access to property Length | b (line 84): false | -| Assert.cs:100:27:100:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:102:9:102:25 | [b (line 84): false] ... = ... | b (line 84): false | -| Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:102:9:102:26 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:102:9:102:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:102:13:102:13 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:102:13:102:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:102:17:102:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:102:24:102:25 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | b (line 84): false | -| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | b (line 84): false | -| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:103:9:103:33 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:103:9:103:33 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:103:23:103:23 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:103:23:103:31 | [b (line 84): false] ... != ... | b (line 84): false | -| Assert.cs:103:23:103:31 | [b (line 84): true] ... != ... | b (line 84): true | -| Assert.cs:103:28:103:31 | [b (line 84): false] null | b (line 84): false | -| Assert.cs:103:28:103:31 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:104:9:104:35 | [b (line 84): false] call to method WriteLine | b (line 84): false | -| Assert.cs:104:9:104:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:104:9:104:36 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:104:9:104:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:104:27:104:27 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:104:27:104:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:104:27:104:34 | [b (line 84): false] access to property Length | b (line 84): false | -| Assert.cs:104:27:104:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:106:9:106:25 | [b (line 84): false] ... = ... | b (line 84): false | -| Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:106:9:106:26 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:106:9:106:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:106:13:106:13 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:106:13:106:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:106:17:106:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:106:24:106:25 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | b (line 84): false | -| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | b (line 84): true | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | b (line 84): false | -| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | b (line 84): true | -| Assert.cs:107:9:107:34 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:107:9:107:34 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:107:24:107:24 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:107:24:107:32 | [b (line 84): false] ... != ... | b (line 84): false | -| Assert.cs:107:24:107:32 | [b (line 84): true] ... != ... | b (line 84): true | -| Assert.cs:107:29:107:32 | [b (line 84): false] null | b (line 84): false | -| Assert.cs:107:29:107:32 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:108:9:108:35 | [b (line 84): false] call to method WriteLine | b (line 84): false | -| Assert.cs:108:9:108:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:108:9:108:36 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:108:9:108:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:108:27:108:27 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:108:27:108:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:108:27:108:34 | [b (line 84): false] access to property Length | b (line 84): false | -| Assert.cs:108:27:108:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:110:9:110:25 | [b (line 84): false] ... = ... | b (line 84): false | -| Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:110:9:110:26 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:110:9:110:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:110:13:110:13 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:110:13:110:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:110:17:110:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:110:24:110:25 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | b (line 84): false | -| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | b (line 84): true | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | b (line 84): false | -| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | b (line 84): true | -| Assert.cs:111:9:111:34 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:111:9:111:34 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:111:24:111:24 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:111:24:111:32 | [b (line 84): false] ... == ... | b (line 84): false | -| Assert.cs:111:24:111:32 | [b (line 84): true] ... == ... | b (line 84): true | -| Assert.cs:111:29:111:32 | [b (line 84): false] null | b (line 84): false | -| Assert.cs:111:29:111:32 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:112:9:112:35 | [b (line 84): false] call to method WriteLine | b (line 84): false | -| Assert.cs:112:9:112:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:112:9:112:36 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:112:9:112:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:112:27:112:27 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:112:27:112:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:112:27:112:34 | [b (line 84): false] access to property Length | b (line 84): false | -| Assert.cs:112:27:112:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:114:9:114:25 | [b (line 84): false] ... = ... | b (line 84): false | -| Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:114:9:114:26 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:114:9:114:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:114:13:114:13 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:114:13:114:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | b (line 84): false | -| Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:114:17:114:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:114:24:114:25 | [b (line 84): false] "" | b (line 84): false | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | b (line 84): false | -| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:115:9:115:38 | [b (line 84): false] ...; | b (line 84): false | -| Assert.cs:115:9:115:38 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | b (line 84): false | -| Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | b (line 84): false | -| Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | b (line 84): true | -| Assert.cs:115:23:115:36 | [false, b (line 84): false] ... && ... | b (line 84): false | -| Assert.cs:115:23:115:36 | [false, b (line 84): true] ... && ... | b (line 84): true | -| Assert.cs:115:23:115:36 | [true, b (line 84): true] ... && ... | b (line 84): true | -| Assert.cs:115:28:115:31 | [b (line 84): false] null | b (line 84): false | -| Assert.cs:115:28:115:31 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | b (line 84): false | -| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:116:9:116:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:116:9:116:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:116:27:116:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:116:27:116:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:118:9:118:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:118:17:118:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | b (line 84): true | -| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | b (line 84): true | -| Assert.cs:119:9:119:40 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | b (line 84): true | -| Assert.cs:119:24:119:38 | [false, b (line 84): true] ... \|\| ... | b (line 84): true | -| Assert.cs:119:24:119:38 | [true, b (line 84): true] ... \|\| ... | b (line 84): true | -| Assert.cs:119:29:119:32 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:119:37:119:38 | [false, b (line 84): true] !... | b (line 84): true | -| Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:120:9:120:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:120:9:120:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:120:27:120:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:120:27:120:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:122:9:122:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:122:17:122:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | b (line 84): true | -| Assert.cs:123:9:123:38 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | b (line 84): true | -| Assert.cs:123:23:123:36 | [false, b (line 84): true] ... && ... | b (line 84): true | -| Assert.cs:123:23:123:36 | [true, b (line 84): true] ... && ... | b (line 84): true | -| Assert.cs:123:28:123:31 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:124:9:124:35 | [b (line 84): true] call to method WriteLine | b (line 84): true | -| Assert.cs:124:9:124:36 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:124:27:124:27 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:124:27:124:34 | [b (line 84): true] access to property Length | b (line 84): true | -| Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | b (line 84): true | -| Assert.cs:126:9:126:26 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | b (line 84): true | -| Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | b (line 84): true | -| Assert.cs:126:17:126:20 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:127:9:127:40 | [b (line 84): true] ...; | b (line 84): true | -| Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | b (line 84): true | -| Assert.cs:127:24:127:32 | [b (line 84): true] ... != ... | b (line 84): true | -| Assert.cs:127:29:127:32 | [b (line 84): true] null | b (line 84): true | -| Assert.cs:127:38:127:38 | [b (line 84): true] access to parameter b | b (line 84): true | -| Conditions.cs:6:13:6:13 | [inc (line 3): true] access to parameter x | inc (line 3): true | -| Conditions.cs:6:13:6:15 | [inc (line 3): true] ...++ | inc (line 3): true | -| Conditions.cs:6:13:6:16 | [inc (line 3): true] ...; | inc (line 3): true | -| Conditions.cs:7:9:8:16 | [inc (line 3): false] if (...) ... | inc (line 3): false | -| Conditions.cs:7:9:8:16 | [inc (line 3): true] if (...) ... | inc (line 3): true | -| Conditions.cs:7:14:7:16 | [inc (line 3): false] access to parameter inc | inc (line 3): false | -| Conditions.cs:7:14:7:16 | [inc (line 3): true] access to parameter inc | inc (line 3): true | -| Conditions.cs:15:13:15:13 | [b (line 11): true] access to local variable x | b (line 11): true | -| Conditions.cs:15:13:15:15 | [b (line 11): true] ...++ | b (line 11): true | -| Conditions.cs:15:13:15:16 | [b (line 11): true] ...; | b (line 11): true | -| Conditions.cs:16:9:18:20 | [b (line 11): false] if (...) ... | b (line 11): false | -| Conditions.cs:16:9:18:20 | [b (line 11): true] if (...) ... | b (line 11): true | -| Conditions.cs:16:13:16:13 | [b (line 11): false] access to local variable x | b (line 11): false | -| Conditions.cs:16:13:16:13 | [b (line 11): true] access to local variable x | b (line 11): true | -| Conditions.cs:16:13:16:17 | [b (line 11): false] ... > ... | b (line 11): false | -| Conditions.cs:16:13:16:17 | [b (line 11): true] ... > ... | b (line 11): true | -| Conditions.cs:16:17:16:17 | [b (line 11): false] 0 | b (line 11): false | -| Conditions.cs:16:17:16:17 | [b (line 11): true] 0 | b (line 11): true | -| Conditions.cs:17:13:18:20 | [b (line 11): false] if (...) ... | b (line 11): false | -| Conditions.cs:17:13:18:20 | [b (line 11): true] if (...) ... | b (line 11): true | -| Conditions.cs:17:18:17:18 | [b (line 11): false] access to parameter b | b (line 11): false | -| Conditions.cs:17:18:17:18 | [b (line 11): true] access to parameter b | b (line 11): true | -| Conditions.cs:27:17:27:17 | [b2 (line 22): true] access to local variable x | b2 (line 22): true | -| Conditions.cs:27:17:27:19 | [b2 (line 22): true] ...++ | b2 (line 22): true | -| Conditions.cs:27:17:27:20 | [b2 (line 22): true] ...; | b2 (line 22): true | -| Conditions.cs:28:9:29:16 | [b2 (line 22): false] if (...) ... | b2 (line 22): false | -| Conditions.cs:28:9:29:16 | [b2 (line 22): true] if (...) ... | b2 (line 22): true | -| Conditions.cs:28:13:28:14 | [b2 (line 22): false] access to parameter b2 | b2 (line 22): false | -| Conditions.cs:28:13:28:14 | [b2 (line 22): true] access to parameter b2 | b2 (line 22): true | -| Conditions.cs:40:13:40:13 | [b2 (line 39): true] access to local variable x | b2 (line 39): true | -| Conditions.cs:40:13:40:15 | [b2 (line 39): true] ...++ | b2 (line 39): true | -| Conditions.cs:40:13:40:16 | [b2 (line 39): true] ...; | b2 (line 39): true | -| Conditions.cs:41:9:42:16 | [b2 (line 39): false] if (...) ... | b2 (line 39): false | -| Conditions.cs:41:9:42:16 | [b2 (line 39): true] if (...) ... | b2 (line 39): true | -| Conditions.cs:41:13:41:14 | [b2 (line 39): false] access to local variable b2 | b2 (line 39): false | -| Conditions.cs:41:13:41:14 | [b2 (line 39): true] access to local variable b2 | b2 (line 39): true | -| Conditions.cs:49:16:49:16 | [b (line 46): false] access to parameter x | b (line 46): false | -| Conditions.cs:49:16:49:16 | [b (line 46): true] access to parameter x | b (line 46): true | -| Conditions.cs:49:16:49:18 | [b (line 46): false] ...-- | b (line 46): false | -| Conditions.cs:49:16:49:18 | [b (line 46): true] ...-- | b (line 46): true | -| Conditions.cs:49:16:49:22 | [b (line 46): false] ... > ... | b (line 46): false | -| Conditions.cs:49:16:49:22 | [b (line 46): true] ... > ... | b (line 46): true | -| Conditions.cs:49:22:49:22 | [b (line 46): false] 0 | b (line 46): false | -| Conditions.cs:49:22:49:22 | [b (line 46): true] 0 | b (line 46): true | -| Conditions.cs:50:9:53:9 | [b (line 46): false] {...} | b (line 46): false | -| Conditions.cs:50:9:53:9 | [b (line 46): true] {...} | b (line 46): true | -| Conditions.cs:51:13:52:20 | [b (line 46): false] if (...) ... | b (line 46): false | -| Conditions.cs:51:13:52:20 | [b (line 46): true] if (...) ... | b (line 46): true | -| Conditions.cs:51:17:51:17 | [b (line 46): false] access to parameter b | b (line 46): false | -| Conditions.cs:51:17:51:17 | [b (line 46): true] access to parameter b | b (line 46): true | -| Conditions.cs:52:17:52:17 | [b (line 46): true] access to local variable y | b (line 46): true | -| Conditions.cs:52:17:52:19 | [b (line 46): true] ...++ | b (line 46): true | -| Conditions.cs:52:17:52:20 | [b (line 46): true] ...; | b (line 46): true | -| Conditions.cs:60:16:60:16 | [b (line 57): false] access to parameter x | b (line 57): false | -| Conditions.cs:60:16:60:16 | [b (line 57): true] access to parameter x | b (line 57): true | -| Conditions.cs:60:16:60:18 | [b (line 57): false] ...-- | b (line 57): false | -| Conditions.cs:60:16:60:18 | [b (line 57): true] ...-- | b (line 57): true | -| Conditions.cs:60:16:60:22 | [b (line 57): false] ... > ... | b (line 57): false | -| Conditions.cs:60:16:60:22 | [b (line 57): true] ... > ... | b (line 57): true | -| Conditions.cs:60:22:60:22 | [b (line 57): false] 0 | b (line 57): false | -| Conditions.cs:60:22:60:22 | [b (line 57): true] 0 | b (line 57): true | -| Conditions.cs:61:9:64:9 | [b (line 57): false] {...} | b (line 57): false | -| Conditions.cs:61:9:64:9 | [b (line 57): true] {...} | b (line 57): true | -| Conditions.cs:62:13:63:20 | [b (line 57): false] if (...) ... | b (line 57): false | -| Conditions.cs:62:13:63:20 | [b (line 57): true] if (...) ... | b (line 57): true | -| Conditions.cs:62:17:62:17 | [b (line 57): false] access to parameter b | b (line 57): false | -| Conditions.cs:62:17:62:17 | [b (line 57): true] access to parameter b | b (line 57): true | -| Conditions.cs:63:17:63:17 | [b (line 57): true] access to local variable y | b (line 57): true | -| Conditions.cs:63:17:63:19 | [b (line 57): true] ...++ | b (line 57): true | -| Conditions.cs:63:17:63:20 | [b (line 57): true] ...; | b (line 57): true | -| Conditions.cs:65:9:66:16 | [b (line 57): false] if (...) ... | b (line 57): false | -| Conditions.cs:65:9:66:16 | [b (line 57): true] if (...) ... | b (line 57): true | -| Conditions.cs:65:13:65:13 | [b (line 57): false] access to parameter b | b (line 57): false | -| Conditions.cs:65:13:65:13 | [b (line 57): true] access to parameter b | b (line 57): true | -| Conditions.cs:106:13:106:13 | [b (line 102): true] access to local variable x | b (line 102): true | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... + ... | b (line 102): true | -| Conditions.cs:106:13:106:19 | [b (line 102): true] ... = ... | b (line 102): true | -| Conditions.cs:106:13:106:20 | [b (line 102): true] ...; | b (line 102): true | -| Conditions.cs:106:18:106:19 | [b (line 102): true] "" | b (line 102): true | -| Conditions.cs:107:9:109:24 | [b (line 102): false] if (...) ... | b (line 102): false | -| Conditions.cs:107:9:109:24 | [b (line 102): true] if (...) ... | b (line 102): true | -| Conditions.cs:107:13:107:13 | [b (line 102): false] access to local variable x | b (line 102): false | -| Conditions.cs:107:13:107:13 | [b (line 102): true] access to local variable x | b (line 102): true | -| Conditions.cs:107:13:107:20 | [b (line 102): false] access to property Length | b (line 102): false | -| Conditions.cs:107:13:107:20 | [b (line 102): true] access to property Length | b (line 102): true | -| Conditions.cs:107:13:107:24 | [b (line 102): false] ... > ... | b (line 102): false | -| Conditions.cs:107:13:107:24 | [b (line 102): true] ... > ... | b (line 102): true | -| Conditions.cs:107:24:107:24 | [b (line 102): false] 0 | b (line 102): false | -| Conditions.cs:107:24:107:24 | [b (line 102): true] 0 | b (line 102): true | -| Conditions.cs:108:13:109:24 | [b (line 102): false] if (...) ... | b (line 102): false | -| Conditions.cs:108:13:109:24 | [b (line 102): true] if (...) ... | b (line 102): true | -| Conditions.cs:108:18:108:18 | [b (line 102): false] access to parameter b | b (line 102): false | -| Conditions.cs:108:18:108:18 | [b (line 102): true] access to parameter b | b (line 102): true | -| Conditions.cs:119:17:119:21 | [false, last (line 118): true] !... | last (line 118): true | -| Conditions.cs:119:17:119:21 | [true, last (line 118): false] !... | last (line 118): false | -| Conditions.cs:120:17:120:22 | [last (line 118): false] ... = ... | last (line 118): false | -| Conditions.cs:120:17:120:23 | [last (line 118): false] ...; | last (line 118): false | -| Conditions.cs:120:21:120:22 | [last (line 118): false] "" | last (line 118): false | -| Conditions.cs:121:13:122:25 | [last (line 118): false] if (...) ... | last (line 118): false | -| Conditions.cs:121:13:122:25 | [last (line 118): true] if (...) ... | last (line 118): true | -| Conditions.cs:121:17:121:20 | [last (line 118): false] access to local variable last | last (line 118): false | -| Conditions.cs:121:17:121:20 | [last (line 118): true] access to local variable last | last (line 118): true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): false] true | Field1 (line 129): false | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Field1 (line 129): true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): false] true | Field2 (line 129): false | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | Field1 (line 129): true | -| Conditions.cs:131:16:131:19 | [Field1 (line 129): true, Field2 (line 129): true] true | Field2 (line 129): true | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): false] {...} | Field1 (line 129): false | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Field1 (line 129): true | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Field2 (line 129): false | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Field1 (line 129): true | -| Conditions.cs:132:9:140:9 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Field2 (line 129): true | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): false] if (...) ... | Field1 (line 129): false | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Field1 (line 129): true | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Field2 (line 129): false | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Field1 (line 129): true | -| Conditions.cs:133:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Field2 (line 129): true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] access to field Field1 | Field1 (line 129): false | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): false] this access | Field1 (line 129): false | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | Field1 (line 129): true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field1 | Field2 (line 129): false | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | Field1 (line 129): true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): false] this access | Field2 (line 129): false | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Field1 (line 129): true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Field2 (line 129): true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | Field1 (line 129): true | -| Conditions.cs:133:17:133:22 | [Field1 (line 129): true, Field2 (line 129): true] this access | Field2 (line 129): true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Field1 (line 129): true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): false] {...} | Field2 (line 129): false | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Field1 (line 129): true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Field2 (line 129): true | -| Conditions.cs:134:13:139:13 | [Field1 (line 129): true] {...} | Field1 (line 129): true | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Field1 (line 129): true | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): false] if (...) ... | Field2 (line 129): false | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Field1 (line 129): true | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] if (...) ... | Field2 (line 129): true | -| Conditions.cs:135:17:138:17 | [Field1 (line 129): true] if (...) ... | Field1 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | Field1 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] access to field Field2 | Field2 (line 129): false | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | Field1 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): false] this access | Field2 (line 129): false | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | Field1 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field2 | Field2 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Field1 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Field2 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] access to field Field2 | Field1 (line 129): true | -| Conditions.cs:135:21:135:26 | [Field1 (line 129): true] this access | Field1 (line 129): true | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Field1 (line 129): true | -| Conditions.cs:136:17:138:17 | [Field1 (line 129): true, Field2 (line 129): true] {...} | Field2 (line 129): true | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Field1 (line 129): true | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] access to field Field1 | Field2 (line 129): true | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Field1 (line 129): true | -| Conditions.cs:137:21:137:26 | [Field1 (line 129): true, Field2 (line 129): true] this access | Field2 (line 129): true | -| Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | Field1 (line 129): true | -| Conditions.cs:137:21:137:37 | [Field1 (line 129): true, Field2 (line 129): true] call to method ToString | Field2 (line 129): true | -| Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | Field1 (line 129): true | -| Conditions.cs:137:21:137:38 | [Field1 (line 129): true, Field2 (line 129): true] ...; | Field2 (line 129): true | -| Conditions.cs:145:13:145:29 | [b (line 143): false] String s = ... | b (line 143): false | -| Conditions.cs:145:13:145:29 | [b (line 143): true] String s = ... | b (line 143): true | -| Conditions.cs:145:17:145:29 | [b (line 143): false] ... ? ... : ... | b (line 143): false | -| Conditions.cs:145:17:145:29 | [b (line 143): true] ... ? ... : ... | b (line 143): true | -| Conditions.cs:145:21:145:23 | [b (line 143): true] "a" | b (line 143): true | -| Conditions.cs:145:27:145:29 | [b (line 143): false] "b" | b (line 143): false | -| Conditions.cs:146:9:149:49 | [b (line 143): false] if (...) ... | b (line 143): false | -| Conditions.cs:146:9:149:49 | [b (line 143): true] if (...) ... | b (line 143): true | -| Conditions.cs:146:13:146:13 | [b (line 143): false] access to parameter b | b (line 143): false | -| Conditions.cs:146:13:146:13 | [b (line 143): true] access to parameter b | b (line 143): true | -| 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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 | -| LoopUnrolling.cs:58:22:58:22 | [b (line 55): true] String x | b (line 55): true | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): false] {...} | b (line 55): false | -| LoopUnrolling.cs:59:9:64:9 | [b (line 55): true] {...} | b (line 55): true | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): false] if (...) ... | b (line 55): false | -| LoopUnrolling.cs:60:13:61:37 | [b (line 55): true] if (...) ... | b (line 55): true | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): false] access to parameter b | b (line 55): false | -| LoopUnrolling.cs:60:17:60:17 | [b (line 55): true] access to parameter b | b (line 55): true | -| LoopUnrolling.cs:61:17:61:36 | [b (line 55): true] call to method WriteLine | b (line 55): true | -| LoopUnrolling.cs:61:17:61:37 | [b (line 55): true] ...; | b (line 55): true | -| LoopUnrolling.cs:61:35:61:35 | [b (line 55): true] access to local variable x | b (line 55): true | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): false] if (...) ... | b (line 55): false | -| LoopUnrolling.cs:62:13:63:37 | [b (line 55): true] if (...) ... | b (line 55): true | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): false] access to parameter b | b (line 55): false | -| LoopUnrolling.cs:62:17:62:17 | [b (line 55): true] access to parameter b | b (line 55): true | -| LoopUnrolling.cs:63:17:63:36 | [b (line 55): true] call to method WriteLine | b (line 55): true | -| LoopUnrolling.cs:63:17:63:37 | [b (line 55): true] ...; | b (line 55): true | -| LoopUnrolling.cs:63:35:63:35 | [b (line 55): true] access to local variable x | b (line 55): true | -finallyNode -| BreakInTry.cs:30:13:33:13 | [finally: break] {...} | BreakInTry.cs:24:13:33:13 | try {...} ... | -| BreakInTry.cs:31:17:32:21 | [finally: break] if (...) ... | BreakInTry.cs:24:13:33:13 | try {...} ... | -| BreakInTry.cs:31:21:31:24 | [finally: break] access to parameter args | BreakInTry.cs:24:13:33:13 | try {...} ... | -| BreakInTry.cs:31:21:31:32 | [finally: break] ... == ... | BreakInTry.cs:24:13:33:13 | try {...} ... | -| BreakInTry.cs:31:29:31:32 | [finally: break] null | BreakInTry.cs:24:13:33:13 | try {...} ... | -| BreakInTry.cs:32:21:32:21 | [finally: break] ; | BreakInTry.cs:24:13:33:13 | try {...} ... | -| BreakInTry.cs:46:9:52:9 | [finally: return] {...} | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:47:13:51:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:47:26:47:28 | [finally: return] String arg | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:47:33:47:36 | [finally: return] access to parameter args | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:48:13:51:13 | [finally: return] {...} | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:49:17:50:26 | [finally: return] if (...) ... | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:49:21:49:23 | [finally: return] access to local variable arg | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:49:21:49:31 | [finally: return] ... == ... | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:49:28:49:31 | [finally: return] null | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:50:21:50:26 | [finally: return] break; | BreakInTry.cs:40:9:52:9 | try {...} ... | -| BreakInTry.cs:64:9:70:9 | [finally: return] {...} | BreakInTry.cs:58:9:70:9 | try {...} ... | -| BreakInTry.cs:65:13:69:13 | [finally: return] foreach (... ... in ...) ... | BreakInTry.cs:58:9:70:9 | try {...} ... | -| BreakInTry.cs:65:26:65:28 | [finally: return] String arg | BreakInTry.cs:58:9:70:9 | try {...} ... | -| BreakInTry.cs:65:33:65:36 | [finally: return] access to parameter args | BreakInTry.cs:58:9:70:9 | try {...} ... | -| BreakInTry.cs:66:13:69:13 | [finally: return] {...} | BreakInTry.cs:58:9:70:9 | try {...} ... | -| BreakInTry.cs:67:17:68:26 | [finally: return] if (...) ... | BreakInTry.cs:58:9:70:9 | try {...} ... | -| BreakInTry.cs:67:21:67:23 | [finally: return] access to local variable arg | BreakInTry.cs:58:9:70:9 | try {...} ... | -| 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] {...} | 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] 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] ...; | 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] "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] {...} | 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] 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] ...; | 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] "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 {...} ... | -| Finally.cs:89:13:99:13 | [finally: return] {...} | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:90:17:98:17 | [finally: break] try {...} ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:90:17:98:17 | [finally: continue] try {...} ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:90:17:98:17 | [finally: return] try {...} ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:91:17:94:17 | [finally: break] {...} | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:91:17:94:17 | [finally: continue] {...} | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:91:17:94:17 | [finally: return] {...} | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:21:93:46 | [finally: break] if (...) ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:21:93:46 | [finally: continue] if (...) ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:21:93:46 | [finally: return] if (...) ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:25:92:25 | [finally: break] access to local variable i | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:25:92:25 | [finally: continue] access to local variable i | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:25:92:25 | [finally: return] access to local variable i | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:25:92:30 | [finally: break] ... == ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:25:92:30 | [finally: continue] ... == ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:25:92:30 | [finally: return] ... == ... | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:30:92:30 | [finally: break] 3 | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:30:92:30 | [finally: continue] 3 | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:92:30:92:30 | [finally: return] 3 | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:79:13:99:13 | try {...} ... | -| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:79:13:99:13 | try {...} ... | -| 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] {...} | 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] {...} | 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] {...} | 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] 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] 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] 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] ...-- | 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] ...-- | 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] ...-- | 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] ...; | 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] ...; | 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] ...; | 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] {...} | 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] 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] !... | 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] !... | 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] 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] 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] ... == ... | 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] 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] 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] ...; | 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] 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] 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] 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] 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] ... > ... | 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] 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] 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] ...; | 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] 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] {...} | 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 {...} ... | -| cflow.cs:275:31:275:40 | [finally: return] "not dead" | cflow.cs:268:9:276:9 | try {...} ... | -entryPoint | AccessorCalls.cs:1:7:1:19 | AccessorCalls | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | AccessorCalls.cs:5:23:5:25 | get_Item | AccessorCalls.cs:5:30:5:30 | access to parameter i | | AccessorCalls.cs:5:33:5:35 | set_Item | AccessorCalls.cs:5:37:5:39 | {...} | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql index 3f4ed835fc24..1140f78de660 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql @@ -5,22 +5,6 @@ import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as Impl import semmle.code.csharp.controlflow.internal.Splitting as Splitting import Nodes -query predicate booleanNode(ElementNode e, BooleanSplit split) { split = e.getASplit() } - -class MyFinallySplitControlFlowNode extends ElementNode { - MyFinallySplitControlFlowNode() { - exists(Splitting::FinallySplitting::FinallySplitType type | - type = this.getASplit().(FinallySplit).getType() - | - not type instanceof DirectSuccessor - ) - } - - Impl::Statements::TryStmtTree getTryStmt() { this.getAstNode() = result.getAFinallyDescendant() } -} - -query predicate finallyNode(MyFinallySplitControlFlowNode f, TryStmt try) { try = f.getTryStmt() } - query predicate entryPoint(Callable c, SourceControlFlowElement cfn) { c.getEntryPoint().getASuccessor().getAstNode() = cfn } diff --git a/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected b/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected index fc84d28f4495..b6059d487728 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected @@ -32,7 +32,6 @@ abstractValue | 0 | Guards.cs:322:18:322:18 | 0 | | 0 | Guards.cs:329:17:329:19 | access to constant A | | 0 | Guards.cs:334:20:334:20 | 0 | -| 0 | Splitting.cs:137:20:137:20 | 0 | | 1 | Collections.cs:12:28:12:28 | 1 | | 1 | Collections.cs:14:28:14:28 | 1 | | 1 | Collections.cs:17:28:17:28 | 1 | @@ -371,32 +370,6 @@ abstractValue | non-null | Guards.cs:343:13:343:19 | access to type Console | | non-null | Guards.cs:343:31:343:31 | access to local variable s | | non-null | Guards.cs:349:13:349:13 | access to parameter o | -| non-null | Splitting.cs:13:17:13:17 | access to parameter o | -| non-null | Splitting.cs:23:24:23:24 | access to parameter o | -| non-null | Splitting.cs:33:24:33:25 | "" | -| non-null | Splitting.cs:44:17:44:17 | access to parameter o | -| non-null | Splitting.cs:46:17:46:17 | access to parameter o | -| non-null | Splitting.cs:55:13:55:13 | access to parameter o | -| non-null | Splitting.cs:66:20:66:20 | access to parameter o | -| non-null | Splitting.cs:78:24:78:24 | access to parameter o | -| non-null | Splitting.cs:87:13:87:17 | access to type Debug | -| non-null | Splitting.cs:90:13:90:13 | access to parameter o | -| non-null | Splitting.cs:91:9:91:9 | access to parameter o | -| non-null | Splitting.cs:97:13:97:17 | access to type Debug | -| non-null | Splitting.cs:105:9:105:13 | access to type Debug | -| non-null | Splitting.cs:107:13:107:13 | access to parameter o | -| non-null | Splitting.cs:109:13:109:13 | access to parameter o | -| non-null | Splitting.cs:116:9:116:13 | access to type Debug | -| non-null | Splitting.cs:117:9:117:9 | access to parameter o | -| non-null | Splitting.cs:119:13:119:13 | access to parameter o | -| non-null | Splitting.cs:120:16:120:16 | access to parameter o | -| non-null | Splitting.cs:129:17:129:17 | access to local variable o | -| non-null | Splitting.cs:133:17:133:17 | access to local variable o | -| non-null | Splitting.cs:133:17:133:29 | ... = ... | -| non-null | Splitting.cs:133:21:133:29 | call to method M11 | -| non-null | Splitting.cs:133:21:133:29 | this access | -| non-null | Splitting.cs:133:28:133:28 | access to local variable o | -| non-null | Splitting.cs:134:17:134:17 | access to local variable o | | null | Assert.cs:9:24:9:27 | null | | null | Assert.cs:10:27:10:30 | null | | null | Assert.cs:16:24:16:27 | null | @@ -447,19 +420,6 @@ abstractValue | null | Guards.cs:203:18:203:21 | null | | null | Guards.cs:341:24:341:27 | null | | null | Guards.cs:342:18:342:21 | null | -| null | Splitting.cs:12:22:12:25 | null | -| null | Splitting.cs:22:22:22:25 | null | -| null | Splitting.cs:32:22:32:25 | null | -| null | Splitting.cs:41:18:41:21 | null | -| null | Splitting.cs:54:18:54:21 | null | -| null | Splitting.cs:65:18:65:21 | null | -| null | Splitting.cs:76:18:76:21 | null | -| null | Splitting.cs:87:31:87:34 | null | -| null | Splitting.cs:97:31:97:34 | null | -| null | Splitting.cs:105:27:105:30 | null | -| null | Splitting.cs:116:27:116:30 | null | -| null | Splitting.cs:125:21:125:24 | null | -| null | Splitting.cs:129:22:129:25 | null | | true | Assert.cs:86:61:86:64 | true | | true | Guards.cs:177:20:177:23 | true | | true | Guards.cs:181:46:181:49 | true | diff --git a/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected index 67150b178dca..6e9829600eb3 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/BooleanGuardedExpr.expected @@ -72,22 +72,3 @@ | Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false | | Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true | | Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true | -| Splitting.cs:13:17:13:17 | access to parameter o | Splitting.cs:12:17:12:25 | ... != ... | Splitting.cs:12:17:12:17 | access to parameter o | true | -| Splitting.cs:23:24:23:24 | access to parameter o | Splitting.cs:22:17:22:25 | ... != ... | Splitting.cs:22:17:22:17 | access to parameter o | true | -| Splitting.cs:25:13:25:13 | access to parameter o | Splitting.cs:22:17:22:25 | ... != ... | Splitting.cs:22:17:22:17 | access to parameter o | false | -| Splitting.cs:35:13:35:13 | access to parameter o | Splitting.cs:32:17:32:25 | ... == ... | Splitting.cs:32:17:32:17 | access to parameter o | false | -| Splitting.cs:44:17:44:17 | access to parameter o | Splitting.cs:41:13:41:21 | ... != ... | Splitting.cs:41:13:41:13 | access to parameter o | true | -| Splitting.cs:46:17:46:17 | access to parameter o | Splitting.cs:41:13:41:21 | ... != ... | Splitting.cs:41:13:41:13 | access to parameter o | true | -| Splitting.cs:55:13:55:13 | access to parameter o | Splitting.cs:54:13:54:21 | ... != ... | Splitting.cs:54:13:54:13 | access to parameter o | true | -| Splitting.cs:66:20:66:20 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | true | -| Splitting.cs:68:13:68:13 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | false | -| Splitting.cs:69:16:69:16 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | false | -| Splitting.cs:78:24:78:24 | access to parameter o | Splitting.cs:76:13:76:21 | ... != ... | Splitting.cs:76:13:76:13 | access to parameter o | true | -| Splitting.cs:90:13:90:13 | access to parameter o | Splitting.cs:87:26:87:34 | ... != ... | Splitting.cs:87:26:87:26 | access to parameter o | true | -| Splitting.cs:99:13:99:13 | access to parameter o | Splitting.cs:97:26:97:34 | ... == ... | Splitting.cs:97:26:97:26 | access to parameter o | true | -| Splitting.cs:107:13:107:13 | access to parameter o | Splitting.cs:105:22:105:30 | ... != ... | Splitting.cs:105:22:105:22 | access to parameter o | true | -| Splitting.cs:109:13:109:13 | access to parameter o | Splitting.cs:105:22:105:30 | ... != ... | Splitting.cs:105:22:105:22 | access to parameter o | true | -| Splitting.cs:117:9:117:9 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:119:13:119:13 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:120:16:120:16 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:133:25:133:25 | access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | false | diff --git a/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected b/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected index 506f9e1f04ce..c04f1459790b 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/GuardedControlFlowNode.expected @@ -10,39 +10,27 @@ | Assert.cs:46:27:46:27 | access to local variable s | Assert.cs:45:24:45:32 | ... != ... | Assert.cs:45:24:45:24 | access to local variable s | false | | Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:24:52:24 | access to local variable s | non-null | | Assert.cs:53:27:53:27 | access to local variable s | Assert.cs:52:24:52:32 | ... == ... | Assert.cs:52:24:52:24 | access to local variable s | false | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | false | -| Assert.cs:59:36:59:36 | [b (line 56): false] access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | non-null | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | false | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | true | -| Assert.cs:59:36:59:36 | [b (line 56): true] access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | non-null | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | Assert.cs:58:20:58:20 | access to parameter b | false | +| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:58:20:58:32 | ... ? ... : ... | Assert.cs:58:20:58:20 | access to parameter b | non-null | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | Assert.cs:59:23:59:23 | access to local variable s | non-null | | Assert.cs:60:27:60:27 | access to local variable s | Assert.cs:59:23:59:31 | ... != ... | Assert.cs:59:23:59:23 | access to local variable s | true | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | false | -| Assert.cs:66:37:66:37 | [b (line 63): false] access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | non-null | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | false | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | true | -| Assert.cs:66:37:66:37 | [b (line 63): true] access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | non-null | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | Assert.cs:65:20:65:20 | access to parameter b | false | +| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:65:20:65:32 | ... ? ... : ... | Assert.cs:65:20:65:20 | access to parameter b | non-null | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | Assert.cs:66:24:66:24 | access to local variable s | non-null | | Assert.cs:67:27:67:27 | access to local variable s | Assert.cs:66:24:66:32 | ... == ... | Assert.cs:66:24:66:24 | access to local variable s | false | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | false | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | true | -| Assert.cs:73:36:73:36 | [b (line 70): false] access to parameter b | Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | null | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | true | -| Assert.cs:73:36:73:36 | [b (line 70): true] access to parameter b | Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | null | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | Assert.cs:72:20:72:20 | access to parameter b | true | +| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:72:20:72:32 | ... ? ... : ... | Assert.cs:72:20:72:20 | access to parameter b | null | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:73:23:73:23 | access to local variable s | Assert.cs:73:23:73:23 | access to local variable s | null | | Assert.cs:74:27:74:27 | access to local variable s | Assert.cs:73:23:73:31 | ... == ... | Assert.cs:73:23:73:23 | access to local variable s | true | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | false | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | true | -| Assert.cs:80:37:80:37 | [b (line 77): false] access to parameter b | Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | null | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | true | -| Assert.cs:80:37:80:37 | [b (line 77): true] access to parameter b | Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | null | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | Assert.cs:79:20:79:20 | access to parameter b | true | +| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:79:20:79:32 | ... ? ... : ... | Assert.cs:79:20:79:20 | access to parameter b | null | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | Assert.cs:80:24:80:24 | access to local variable s | null | | Assert.cs:81:27:81:27 | access to local variable s | Assert.cs:80:24:80:32 | ... != ... | Assert.cs:80:24:80:24 | access to local variable s | false | -| Assert.cs:93:33:93:34 | [assertion failure, b1 (line 91): false] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false | -| Assert.cs:93:33:93:34 | [assertion failure, b1 (line 91): false] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | true | -| Assert.cs:93:33:93:34 | [assertion failure, b1 (line 91): true] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | true | -| Assert.cs:93:33:93:34 | [assertion success, b1 (line 91): true] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false | -| Assert.cs:94:16:94:17 | [b1 (line 91): true] access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | true | +| Assert.cs:93:33:93:34 | [assertion failure] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false | +| Assert.cs:93:33:93:34 | [assertion failure] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | true | +| Assert.cs:93:33:93:34 | [assertion failure] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | true | +| Assert.cs:93:33:93:34 | [assertion success] access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false | +| Assert.cs:94:16:94:17 | access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | Assert.cs:93:25:93:26 | access to parameter b1 | true | | Assert.cs:94:23:94:24 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | Assert.cs:93:29:93:30 | access to parameter b2 | false | | Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:16 | access to parameter args | Collections.cs:49:13:49:16 | access to parameter args | non-empty | | Collections.cs:51:17:51:20 | access to parameter args | Collections.cs:49:13:49:27 | ... == ... | Collections.cs:49:13:49:16 | access to parameter args | false | @@ -203,78 +191,9 @@ | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match access to type Action | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-match null | | Guards.cs:287:17:287:17 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | Guards.cs:276:16:276:16 | access to parameter o | non-null | -| Guards.cs:342:27:342:27 | [b (line 339): false] access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false | -| Guards.cs:342:27:342:27 | [b (line 339): false] access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | non-null | -| Guards.cs:342:27:342:27 | [b (line 339): true] access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false | -| Guards.cs:342:27:342:27 | [b (line 339): true] access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | true | -| Guards.cs:342:27:342:27 | [b (line 339): true] access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | non-null | +| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | Guards.cs:341:20:341:20 | access to parameter b | false | +| Guards.cs:342:27:342:27 | access to parameter b | Guards.cs:341:20:341:32 | ... ? ... : ... | Guards.cs:341:20:341:20 | access to parameter b | non-null | | Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | Guards.cs:342:13:342:13 | access to local variable s | non-null | | Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true | | Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | non-null | | Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true | -| Splitting.cs:13:17:13:17 | [b (line 9): true] access to parameter o | Splitting.cs:12:17:12:17 | access to parameter o | Splitting.cs:12:17:12:17 | access to parameter o | non-null | -| Splitting.cs:13:17:13:17 | [b (line 9): true] access to parameter o | Splitting.cs:12:17:12:25 | ... != ... | Splitting.cs:12:17:12:17 | access to parameter o | true | -| Splitting.cs:14:13:14:13 | [b (line 9): false] access to parameter b | Splitting.cs:11:13:11:13 | access to parameter b | Splitting.cs:11:13:11:13 | access to parameter b | false | -| Splitting.cs:14:13:14:13 | [b (line 9): true] access to parameter b | Splitting.cs:11:13:11:13 | access to parameter b | Splitting.cs:11:13:11:13 | access to parameter b | true | -| Splitting.cs:23:24:23:24 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | non-null | -| Splitting.cs:23:24:23:24 | access to parameter o | Splitting.cs:22:17:22:25 | ... != ... | Splitting.cs:22:17:22:17 | access to parameter o | true | -| Splitting.cs:24:13:24:13 | [b (line 19): false] access to parameter b | Splitting.cs:21:13:21:13 | access to parameter b | Splitting.cs:21:13:21:13 | access to parameter b | false | -| Splitting.cs:24:13:24:13 | [b (line 19): true] access to parameter b | Splitting.cs:21:13:21:13 | access to parameter b | Splitting.cs:21:13:21:13 | access to parameter b | true | -| Splitting.cs:25:13:25:13 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | null | -| Splitting.cs:25:13:25:13 | access to parameter o | Splitting.cs:22:17:22:25 | ... != ... | Splitting.cs:22:17:22:17 | access to parameter o | false | -| Splitting.cs:34:13:34:13 | [b (line 29): false] access to parameter b | Splitting.cs:31:13:31:13 | access to parameter b | Splitting.cs:31:13:31:13 | access to parameter b | false | -| Splitting.cs:34:13:34:13 | [b (line 29): true] access to parameter b | Splitting.cs:31:13:31:13 | access to parameter b | Splitting.cs:31:13:31:13 | access to parameter b | true | -| Splitting.cs:35:13:35:13 | access to parameter o | Splitting.cs:32:17:32:17 | access to parameter o | Splitting.cs:32:17:32:17 | access to parameter o | non-null | -| Splitting.cs:35:13:35:13 | access to parameter o | Splitting.cs:32:17:32:25 | ... == ... | Splitting.cs:32:17:32:17 | access to parameter o | false | -| Splitting.cs:44:17:44:17 | [b (line 39): true] access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | non-null | -| Splitting.cs:44:17:44:17 | [b (line 39): true] access to parameter o | Splitting.cs:41:13:41:21 | ... != ... | Splitting.cs:41:13:41:13 | access to parameter o | true | -| Splitting.cs:45:17:45:17 | [b (line 39): false] access to parameter b | Splitting.cs:43:17:43:17 | access to parameter b | Splitting.cs:43:17:43:17 | access to parameter b | false | -| Splitting.cs:45:17:45:17 | [b (line 39): true] access to parameter b | Splitting.cs:43:17:43:17 | access to parameter b | Splitting.cs:43:17:43:17 | access to parameter b | true | -| Splitting.cs:46:17:46:17 | access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | non-null | -| Splitting.cs:46:17:46:17 | access to parameter o | Splitting.cs:41:13:41:21 | ... != ... | Splitting.cs:41:13:41:13 | access to parameter o | true | -| Splitting.cs:55:13:55:13 | [b (line 50): false] access to parameter o | Splitting.cs:54:13:54:13 | access to parameter o | Splitting.cs:54:13:54:13 | access to parameter o | non-null | -| Splitting.cs:55:13:55:13 | [b (line 50): false] access to parameter o | Splitting.cs:54:13:54:21 | ... != ... | Splitting.cs:54:13:54:13 | access to parameter o | true | -| Splitting.cs:55:13:55:13 | [b (line 50): true] access to parameter o | Splitting.cs:54:13:54:13 | access to parameter o | Splitting.cs:54:13:54:13 | access to parameter o | non-null | -| Splitting.cs:55:13:55:13 | [b (line 50): true] access to parameter o | Splitting.cs:54:13:54:21 | ... != ... | Splitting.cs:54:13:54:13 | access to parameter o | true | -| Splitting.cs:56:13:56:13 | [b (line 50): false] access to parameter b | Splitting.cs:52:13:52:13 | access to parameter b | Splitting.cs:52:13:52:13 | access to parameter b | false | -| Splitting.cs:56:13:56:13 | [b (line 50): true] access to parameter b | Splitting.cs:52:13:52:13 | access to parameter b | Splitting.cs:52:13:52:13 | access to parameter b | true | -| Splitting.cs:66:20:66:20 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | non-null | -| Splitting.cs:66:20:66:20 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | true | -| Splitting.cs:67:13:67:13 | [b (line 61): false] access to parameter b | Splitting.cs:63:13:63:13 | access to parameter b | Splitting.cs:63:13:63:13 | access to parameter b | false | -| Splitting.cs:67:13:67:13 | [b (line 61): true] access to parameter b | Splitting.cs:63:13:63:13 | access to parameter b | Splitting.cs:63:13:63:13 | access to parameter b | true | -| Splitting.cs:68:13:68:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | null | -| Splitting.cs:68:13:68:13 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | false | -| Splitting.cs:69:16:69:16 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | null | -| Splitting.cs:69:16:69:16 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | false | -| Splitting.cs:78:24:78:24 | access to parameter o | Splitting.cs:76:13:76:13 | access to parameter o | Splitting.cs:76:13:76:13 | access to parameter o | non-null | -| Splitting.cs:78:24:78:24 | access to parameter o | Splitting.cs:76:13:76:21 | ... != ... | Splitting.cs:76:13:76:13 | access to parameter o | true | -| Splitting.cs:79:13:79:13 | [b (line 72): false] access to parameter b | Splitting.cs:74:13:74:13 | access to parameter b | Splitting.cs:74:13:74:13 | access to parameter b | false | -| Splitting.cs:79:13:79:13 | [b (line 72): true] access to parameter b | Splitting.cs:74:13:74:13 | access to parameter b | Splitting.cs:74:13:74:13 | access to parameter b | true | -| Splitting.cs:88:9:88:9 | [b (line 84): true] access to parameter o | Splitting.cs:87:26:87:26 | access to parameter o | Splitting.cs:87:26:87:26 | access to parameter o | non-null | -| Splitting.cs:88:9:88:9 | [b (line 84): true] access to parameter o | Splitting.cs:87:26:87:34 | ... != ... | Splitting.cs:87:26:87:26 | access to parameter o | true | -| Splitting.cs:89:13:89:13 | [b (line 84): false] access to parameter b | Splitting.cs:86:13:86:13 | access to parameter b | Splitting.cs:86:13:86:13 | access to parameter b | false | -| Splitting.cs:89:13:89:13 | [b (line 84): true] access to parameter b | Splitting.cs:86:13:86:13 | access to parameter b | Splitting.cs:86:13:86:13 | access to parameter b | true | -| Splitting.cs:90:13:90:13 | access to parameter o | Splitting.cs:87:26:87:26 | access to parameter o | Splitting.cs:87:26:87:26 | access to parameter o | non-null | -| Splitting.cs:90:13:90:13 | access to parameter o | Splitting.cs:87:26:87:34 | ... != ... | Splitting.cs:87:26:87:26 | access to parameter o | true | -| Splitting.cs:98:13:98:13 | [b (line 94): false] access to parameter b | Splitting.cs:96:13:96:13 | access to parameter b | Splitting.cs:96:13:96:13 | access to parameter b | false | -| Splitting.cs:98:13:98:13 | [b (line 94): true] access to parameter b | Splitting.cs:96:13:96:13 | access to parameter b | Splitting.cs:96:13:96:13 | access to parameter b | true | -| Splitting.cs:99:13:99:13 | access to parameter o | Splitting.cs:97:26:97:26 | access to parameter o | Splitting.cs:97:26:97:26 | access to parameter o | null | -| Splitting.cs:99:13:99:13 | access to parameter o | Splitting.cs:97:26:97:34 | ... == ... | Splitting.cs:97:26:97:26 | access to parameter o | true | -| Splitting.cs:107:13:107:13 | [b (line 103): true] access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | non-null | -| Splitting.cs:107:13:107:13 | [b (line 103): true] access to parameter o | Splitting.cs:105:22:105:30 | ... != ... | Splitting.cs:105:22:105:22 | access to parameter o | true | -| Splitting.cs:108:13:108:13 | [b (line 103): false] access to parameter b | Splitting.cs:106:13:106:13 | access to parameter b | Splitting.cs:106:13:106:13 | access to parameter b | false | -| Splitting.cs:108:13:108:13 | [b (line 103): true] access to parameter b | Splitting.cs:106:13:106:13 | access to parameter b | Splitting.cs:106:13:106:13 | access to parameter b | true | -| Splitting.cs:109:13:109:13 | access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | non-null | -| Splitting.cs:109:13:109:13 | access to parameter o | Splitting.cs:105:22:105:30 | ... != ... | Splitting.cs:105:22:105:22 | access to parameter o | true | -| Splitting.cs:117:9:117:9 | [b (line 112): false] access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:117:9:117:9 | [b (line 112): false] access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:117:9:117:9 | [b (line 112): true] access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:117:9:117:9 | [b (line 112): true] access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:118:13:118:13 | [b (line 112): false] access to parameter b | Splitting.cs:114:13:114:13 | access to parameter b | Splitting.cs:114:13:114:13 | access to parameter b | false | -| Splitting.cs:118:13:118:13 | [b (line 112): true] access to parameter b | Splitting.cs:114:13:114:13 | access to parameter b | Splitting.cs:114:13:114:13 | access to parameter b | true | -| Splitting.cs:119:13:119:13 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:119:13:119:13 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:120:16:120:16 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:120:16:120:16 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:131:21:131:21 | [b (line 123): false] access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | false | -| Splitting.cs:133:25:133:25 | [b (line 123): false] access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | false | diff --git a/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected index c61f41519ad9..ec693ae3cdd8 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/GuardedExpr.expected @@ -193,40 +193,3 @@ | Guards.cs:343:31:343:31 | access to local variable s | Guards.cs:342:13:342:21 | ... != ... | Guards.cs:342:13:342:13 | access to local variable s | true | | Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | Guards.cs:348:13:348:13 | access to parameter o | non-null | | Guards.cs:349:13:349:13 | access to parameter o | Guards.cs:348:13:348:25 | ... is ... | Guards.cs:348:13:348:13 | access to parameter o | true | -| Splitting.cs:13:17:13:17 | access to parameter o | Splitting.cs:12:17:12:17 | access to parameter o | Splitting.cs:12:17:12:17 | access to parameter o | non-null | -| Splitting.cs:13:17:13:17 | access to parameter o | Splitting.cs:12:17:12:25 | ... != ... | Splitting.cs:12:17:12:17 | access to parameter o | true | -| Splitting.cs:23:24:23:24 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | non-null | -| Splitting.cs:23:24:23:24 | access to parameter o | Splitting.cs:22:17:22:25 | ... != ... | Splitting.cs:22:17:22:17 | access to parameter o | true | -| Splitting.cs:25:13:25:13 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | Splitting.cs:22:17:22:17 | access to parameter o | null | -| Splitting.cs:25:13:25:13 | access to parameter o | Splitting.cs:22:17:22:25 | ... != ... | Splitting.cs:22:17:22:17 | access to parameter o | false | -| Splitting.cs:35:13:35:13 | access to parameter o | Splitting.cs:32:17:32:17 | access to parameter o | Splitting.cs:32:17:32:17 | access to parameter o | non-null | -| Splitting.cs:35:13:35:13 | access to parameter o | Splitting.cs:32:17:32:25 | ... == ... | Splitting.cs:32:17:32:17 | access to parameter o | false | -| Splitting.cs:44:17:44:17 | access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | non-null | -| Splitting.cs:44:17:44:17 | access to parameter o | Splitting.cs:41:13:41:21 | ... != ... | Splitting.cs:41:13:41:13 | access to parameter o | true | -| Splitting.cs:46:17:46:17 | access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | Splitting.cs:41:13:41:13 | access to parameter o | non-null | -| Splitting.cs:46:17:46:17 | access to parameter o | Splitting.cs:41:13:41:21 | ... != ... | Splitting.cs:41:13:41:13 | access to parameter o | true | -| Splitting.cs:55:13:55:13 | access to parameter o | Splitting.cs:54:13:54:13 | access to parameter o | Splitting.cs:54:13:54:13 | access to parameter o | non-null | -| Splitting.cs:55:13:55:13 | access to parameter o | Splitting.cs:54:13:54:21 | ... != ... | Splitting.cs:54:13:54:13 | access to parameter o | true | -| Splitting.cs:66:20:66:20 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | non-null | -| Splitting.cs:66:20:66:20 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | true | -| Splitting.cs:68:13:68:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | null | -| Splitting.cs:68:13:68:13 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | false | -| Splitting.cs:69:16:69:16 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | Splitting.cs:65:13:65:13 | access to parameter o | null | -| Splitting.cs:69:16:69:16 | access to parameter o | Splitting.cs:65:13:65:21 | ... != ... | Splitting.cs:65:13:65:13 | access to parameter o | false | -| Splitting.cs:78:24:78:24 | access to parameter o | Splitting.cs:76:13:76:13 | access to parameter o | Splitting.cs:76:13:76:13 | access to parameter o | non-null | -| Splitting.cs:78:24:78:24 | access to parameter o | Splitting.cs:76:13:76:21 | ... != ... | Splitting.cs:76:13:76:13 | access to parameter o | true | -| Splitting.cs:90:13:90:13 | access to parameter o | Splitting.cs:87:26:87:26 | access to parameter o | Splitting.cs:87:26:87:26 | access to parameter o | non-null | -| Splitting.cs:90:13:90:13 | access to parameter o | Splitting.cs:87:26:87:34 | ... != ... | Splitting.cs:87:26:87:26 | access to parameter o | true | -| Splitting.cs:99:13:99:13 | access to parameter o | Splitting.cs:97:26:97:26 | access to parameter o | Splitting.cs:97:26:97:26 | access to parameter o | null | -| Splitting.cs:99:13:99:13 | access to parameter o | Splitting.cs:97:26:97:34 | ... == ... | Splitting.cs:97:26:97:26 | access to parameter o | true | -| Splitting.cs:107:13:107:13 | access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | non-null | -| Splitting.cs:107:13:107:13 | access to parameter o | Splitting.cs:105:22:105:30 | ... != ... | Splitting.cs:105:22:105:22 | access to parameter o | true | -| Splitting.cs:109:13:109:13 | access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | Splitting.cs:105:22:105:22 | access to parameter o | non-null | -| Splitting.cs:109:13:109:13 | access to parameter o | Splitting.cs:105:22:105:30 | ... != ... | Splitting.cs:105:22:105:22 | access to parameter o | true | -| Splitting.cs:117:9:117:9 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:117:9:117:9 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:119:13:119:13 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:119:13:119:13 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:120:16:120:16 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:120:16:120:16 | access to parameter o | Splitting.cs:116:22:116:30 | ... != ... | Splitting.cs:116:22:116:22 | access to parameter o | true | -| Splitting.cs:133:25:133:25 | access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | Splitting.cs:131:21:131:21 | access to parameter b | false | diff --git a/csharp/ql/test/library-tests/controlflow/guards/Implications.expected b/csharp/ql/test/library-tests/controlflow/guards/Implications.expected index b346e653ec73..9a9bdd82aa93 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/Implications.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/Implications.expected @@ -443,30 +443,3 @@ | Guards.cs:343:31:343:31 | access to local variable s | non-null | Guards.cs:341:20:341:32 | ... ? ... : ... | non-null | | Guards.cs:343:31:343:31 | access to local variable s | null | Guards.cs:341:20:341:32 | ... ? ... : ... | null | | Guards.cs:348:13:348:25 | ... is ... | true | Guards.cs:348:13:348:13 | access to parameter o | non-null | -| Splitting.cs:12:17:12:25 | ... != ... | false | Splitting.cs:12:17:12:17 | access to parameter o | null | -| Splitting.cs:12:17:12:25 | ... != ... | true | Splitting.cs:12:17:12:17 | access to parameter o | non-null | -| Splitting.cs:22:17:22:25 | ... != ... | false | Splitting.cs:22:17:22:17 | access to parameter o | null | -| Splitting.cs:22:17:22:25 | ... != ... | true | Splitting.cs:22:17:22:17 | access to parameter o | non-null | -| Splitting.cs:32:17:32:25 | ... == ... | false | Splitting.cs:32:17:32:17 | access to parameter o | non-null | -| Splitting.cs:32:17:32:25 | ... == ... | true | Splitting.cs:32:17:32:17 | access to parameter o | null | -| Splitting.cs:41:13:41:21 | ... != ... | false | Splitting.cs:41:13:41:13 | access to parameter o | null | -| Splitting.cs:41:13:41:21 | ... != ... | true | Splitting.cs:41:13:41:13 | access to parameter o | non-null | -| Splitting.cs:54:13:54:21 | ... != ... | false | Splitting.cs:54:13:54:13 | access to parameter o | null | -| Splitting.cs:54:13:54:21 | ... != ... | true | Splitting.cs:54:13:54:13 | access to parameter o | non-null | -| Splitting.cs:65:13:65:21 | ... != ... | false | Splitting.cs:65:13:65:13 | access to parameter o | null | -| Splitting.cs:65:13:65:21 | ... != ... | true | Splitting.cs:65:13:65:13 | access to parameter o | non-null | -| Splitting.cs:76:13:76:21 | ... != ... | false | Splitting.cs:76:13:76:13 | access to parameter o | null | -| Splitting.cs:76:13:76:21 | ... != ... | true | Splitting.cs:76:13:76:13 | access to parameter o | non-null | -| Splitting.cs:87:26:87:34 | ... != ... | false | Splitting.cs:87:26:87:26 | access to parameter o | null | -| Splitting.cs:87:26:87:34 | ... != ... | true | Splitting.cs:87:26:87:26 | access to parameter o | non-null | -| Splitting.cs:97:26:97:34 | ... == ... | false | Splitting.cs:97:26:97:26 | access to parameter o | non-null | -| Splitting.cs:97:26:97:34 | ... == ... | true | Splitting.cs:97:26:97:26 | access to parameter o | null | -| Splitting.cs:105:22:105:30 | ... != ... | false | Splitting.cs:105:22:105:22 | access to parameter o | null | -| Splitting.cs:105:22:105:30 | ... != ... | true | Splitting.cs:105:22:105:22 | access to parameter o | non-null | -| Splitting.cs:116:22:116:30 | ... != ... | false | Splitting.cs:116:22:116:22 | access to parameter o | null | -| Splitting.cs:116:22:116:30 | ... != ... | true | Splitting.cs:116:22:116:22 | access to parameter o | non-null | -| Splitting.cs:129:17:129:25 | ... != ... | false | Splitting.cs:129:17:129:17 | access to local variable o | null | -| Splitting.cs:129:17:129:25 | ... != ... | false | Splitting.cs:129:22:129:25 | null | non-null | -| Splitting.cs:129:17:129:25 | ... != ... | true | Splitting.cs:129:17:129:17 | access to local variable o | non-null | -| Splitting.cs:134:17:134:17 | access to local variable o | non-null | Splitting.cs:133:21:133:29 | call to method M11 | non-null | -| Splitting.cs:134:17:134:17 | access to local variable o | null | Splitting.cs:133:21:133:29 | call to method M11 | null | diff --git a/csharp/ql/test/library-tests/controlflow/guards/NullGuardedExpr.expected b/csharp/ql/test/library-tests/controlflow/guards/NullGuardedExpr.expected index fa21b5cb3123..81607656b300 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/NullGuardedExpr.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/NullGuardedExpr.expected @@ -47,17 +47,3 @@ | Guards.cs:287:17:287:17 | access to parameter o | | Guards.cs:343:31:343:31 | access to local variable s | | Guards.cs:349:13:349:13 | access to parameter o | -| Splitting.cs:13:17:13:17 | access to parameter o | -| Splitting.cs:23:24:23:24 | access to parameter o | -| Splitting.cs:35:13:35:13 | access to parameter o | -| Splitting.cs:44:17:44:17 | access to parameter o | -| Splitting.cs:46:17:46:17 | access to parameter o | -| Splitting.cs:55:13:55:13 | access to parameter o | -| Splitting.cs:66:20:66:20 | access to parameter o | -| Splitting.cs:78:24:78:24 | access to parameter o | -| Splitting.cs:90:13:90:13 | access to parameter o | -| Splitting.cs:107:13:107:13 | access to parameter o | -| Splitting.cs:109:13:109:13 | access to parameter o | -| Splitting.cs:117:9:117:9 | access to parameter o | -| Splitting.cs:119:13:119:13 | access to parameter o | -| Splitting.cs:120:16:120:16 | access to parameter o | diff --git a/csharp/ql/test/library-tests/controlflow/guards/Splitting.cs b/csharp/ql/test/library-tests/controlflow/guards/Splitting.cs deleted file mode 100644 index 7f42c5a87df6..000000000000 --- a/csharp/ql/test/library-tests/controlflow/guards/Splitting.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System; -using System.Diagnostics; -#nullable enable -/// -/// Tests related to CFG splitting. -/// -public class Splitting -{ - void M1(bool b, object? o) - { - if (b) - if (o != null) - o.ToString(); // null guarded - if (b) - o.ToString(); // not null guarded - o.ToString(); // not null guarded - } - - string M2(bool b, object? o) - { - if (b) - if (o != null) - return o.ToString(); // null guarded - if (b) - o.ToString(); // anti-null guarded - return o.ToString(); // not null guarded - } - - string M3(bool b, object? o) - { - if (b) - if (o == null) - return ""; - if (b) - o.ToString(); // null guarded - return o.ToString(); // not null guarded - } - - void M4(bool b, object? o) - { - if (o != null) - { - if (b) - o.ToString(); // null guarded - if (b) - o.ToString(); // null guarded - } - } - - string M5(bool b, object? o) - { - if (b) - o.ToString(); // not null guarded - if (o != null) - o.ToString(); // null guarded - if (b) - o.ToString(); // not null guarded - return o.ToString(); // not null guarded - } - - string M6(bool b, object? o) - { - if (b) - o.ToString(); // not null guarded - if (o != null) - return o.ToString(); // null guarded - if (b) - o.ToString(); // anti-null guarded - return o.ToString(); // anti-null guarded - } - - string M7(bool b, object? o, bool b2) - { - if (b) - o.ToString(); // not null guarded - if (o != null) - if (b2) - return o.ToString(); // null guarded - if (b) - o.ToString(); // not null guarded - return o.ToString(); // not null guarded - } - - void M8(bool b, object? o) - { - if (b) - Debug.Assert(o != null); - o.ToString(); // not null guarded - if (b) - o.ToString(); // null guarded - o.ToString(); // not null guarded - } - - string M9(bool b, object? o) - { - if (b) - Debug.Assert(o == null); - if (b) - o.ToString(); // anti-null guarded - return o.ToString(); // not null guarded - } - - void M10(bool b, object? o) - { - Debug.Assert(o != null); - if (b) - o.ToString(); // null guarded - if (b) - o.ToString(); // null guarded - } - - string M11(bool b, object? o) - { - if (b) - o.ToString(); // not null guarded - Debug.Assert(o != null); - o.ToString(); // null guarded - if (b) - o.ToString(); // null guarded - return o.ToString(); // null guarded - } - - public void M12(int i, bool b) - { - object? o = null; - do - { - o.GetHashCode(); // not null guarded - if (o != null) - { - if (b) - return; - o = M11(b, o); - o.GetHashCode(); // not null guarded - } - } - while (i > 0); - } -} diff --git a/csharp/ql/test/library-tests/controlflow/splits/CONSISTENCY/CfgConsistency.expected b/csharp/ql/test/library-tests/controlflow/splits/CONSISTENCY/CfgConsistency.expected deleted file mode 100644 index 04f7ae1f7d69..000000000000 --- a/csharp/ql/test/library-tests/controlflow/splits/CONSISTENCY/CfgConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -deadEnd -| SplittingStressTest.cs:95:13:95:14 | [b5 (line 3): false] access to parameter b5 | -| SplittingStressTest.cs:95:13:95:14 | [b5 (line 3): true] access to parameter b5 | diff --git a/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.cs b/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.cs deleted file mode 100644 index 14644f973d0b..000000000000 --- a/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.cs +++ /dev/null @@ -1,321 +0,0 @@ -class SplittingStressTest -{ - void M1(bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7, bool b8, bool b9, bool b10, bool b11, bool b12, bool b13, bool b14, bool b15, bool b16, bool b17, bool b18, bool b19, bool b20, bool b21, bool b22, bool b23, bool b24, bool b25, bool b26, bool b27, bool b28, bool b29, bool b30, bool b31, bool b32, bool b33, bool b34, bool b35, bool b36, bool b37, bool b38, bool b39, bool b40) - { - if (b1) - ; - if (b2) - ; - if (b3) - ; - if (b4) - ; - if (b5) - ; - if (b6) - ; - if (b7) - ; - if (b8) - ; - if (b9) - ; - if (b10) - ; - if (b11) - ; - if (b12) - ; - if (b13) - ; - if (b14) - ; - if (b15) - ; - if (b16) - ; - if (b17) - ; - if (b18) - ; - if (b19) - ; - if (b20) - ; - if (b21) - ; - if (b22) - ; - if (b23) - ; - if (b24) - ; - if (b25) - ; - if (b26) - ; - if (b27) - ; - if (b28) - ; - if (b29) - ; - if (b30) - ; - if (b31) - ; - if (b32) - ; - if (b33) - ; - if (b34) - ; - if (b35) - ; - if (b36) - ; - if (b37) - ; - if (b38) - ; - if (b39) - ; - if (b40) - ; - ; // 2^40 splits - - if (b1) - ; - if (b2) - ; - if (b3) - ; - if (b4) - ; - if (b5) - ; - if (b6) - ; - if (b7) - ; - if (b8) - ; - if (b9) - ; - if (b10) - ; - if (b11) - ; - if (b12) - ; - if (b13) - ; - if (b14) - ; - if (b15) - ; - if (b16) - ; - if (b17) - ; - if (b18) - ; - if (b19) - ; - if (b20) - ; - if (b21) - ; - if (b22) - ; - if (b23) - ; - if (b24) - ; - if (b25) - ; - if (b26) - ; - if (b27) - ; - if (b28) - ; - if (b29) - ; - if (b30) - ; - if (b31) - ; - if (b32) - ; - if (b33) - ; - if (b34) - ; - if (b35) - ; - if (b36) - ; - if (b37) - ; - if (b38) - ; - if (b39) - ; - if (b40) - ; - ; - } - - void M2(int i, bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7, bool b8, bool b9, bool b10, bool b11, bool b12, bool b13, bool b14, bool b15, bool b16, bool b17, bool b18, bool b19, bool b20, bool b21, bool b22, bool b23, bool b24, bool b25, bool b26, bool b27, bool b28, bool b29) - { - while (i-- > 0) - { - if (i == 1) - { - if (b1) - ; - } - if (i == 2) - { - if (b2) - ; - } - if (i == 3) - { - if (b3) - ; - } - if (i == 4) - { - if (b4) - ; - } - if (i == 5) - { - if (b5) - ; - } - if (i == 6) - { - if (b6) - ; - } - if (i == 7) - { - if (b7) - ; - } - if (i == 8) - { - if (b8) - ; - } - if (i == 9) - { - if (b9) - ; - } - if (i == 10) - { - if (b10) - ; - } - if (i == 11) - { - if (b11) - ; - } - if (i == 12) - { - if (b12) - ; - } - if (i == 13) - { - if (b13) - ; - } - if (i == 14) - { - if (b14) - ; - } - if (i == 15) - { - if (b15) - ; - } - if (i == 16) - { - if (b16) - ; - } - if (i == 17) - { - if (b17) - ; - } - if (i == 18) - { - if (b18) - ; - } - if (i == 19) - { - if (b19) - ; - } - if (i == 20) - { - if (b20) - ; - } - if (i == 21) - { - if (b21) - ; - } - if (i == 22) - { - if (b22) - ; - } - if (i == 23) - { - if (b23) - ; - } - if (i == 24) - { - if (b24) - ; - } - if (i == 25) - { - if (b25) - ; - } - if (i == 26) - { - if (b26) - ; - } - if (i == 27) - { - if (b27) - ; - } - if (i == 28) - { - if (b28) - ; - } - if (i == 29) - { - if (b29) - ; - } - } - } -} diff --git a/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.expected b/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.expected deleted file mode 100644 index 8ba5f8687b47..000000000000 --- a/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.expected +++ /dev/null @@ -1,1908 +0,0 @@ -countSplits -| SplittingStressTest.cs:1:7:1:25 | call to constructor Object | 1 | -| SplittingStressTest.cs:1:7:1:25 | {...} | 1 | -| SplittingStressTest.cs:4:5:168:5 | {...} | 1 | -| SplittingStressTest.cs:5:9:6:13 | if (...) ... | 1 | -| SplittingStressTest.cs:5:13:5:14 | access to parameter b1 | 1 | -| SplittingStressTest.cs:6:13:6:13 | ; | 1 | -| SplittingStressTest.cs:7:9:8:13 | if (...) ... | 2 | -| SplittingStressTest.cs:7:13:7:14 | access to parameter b2 | 2 | -| SplittingStressTest.cs:8:13:8:13 | ; | 2 | -| SplittingStressTest.cs:9:9:10:13 | if (...) ... | 4 | -| SplittingStressTest.cs:9:13:9:14 | access to parameter b3 | 4 | -| SplittingStressTest.cs:10:13:10:13 | ; | 4 | -| SplittingStressTest.cs:11:9:12:13 | if (...) ... | 8 | -| SplittingStressTest.cs:11:13:11:14 | access to parameter b4 | 8 | -| SplittingStressTest.cs:12:13:12:13 | ; | 8 | -| SplittingStressTest.cs:13:9:14:13 | if (...) ... | 16 | -| SplittingStressTest.cs:13:13:13:14 | access to parameter b5 | 16 | -| SplittingStressTest.cs:14:13:14:13 | ; | 16 | -| SplittingStressTest.cs:15:9:16:13 | if (...) ... | 32 | -| SplittingStressTest.cs:15:13:15:14 | access to parameter b6 | 32 | -| SplittingStressTest.cs:16:13:16:13 | ; | 32 | -| SplittingStressTest.cs:17:9:18:13 | if (...) ... | 32 | -| SplittingStressTest.cs:17:13:17:14 | access to parameter b7 | 32 | -| SplittingStressTest.cs:18:13:18:13 | ; | 32 | -| SplittingStressTest.cs:19:9:20:13 | if (...) ... | 32 | -| SplittingStressTest.cs:19:13:19:14 | access to parameter b8 | 32 | -| SplittingStressTest.cs:20:13:20:13 | ; | 32 | -| SplittingStressTest.cs:21:9:22:13 | if (...) ... | 32 | -| SplittingStressTest.cs:21:13:21:14 | access to parameter b9 | 32 | -| SplittingStressTest.cs:22:13:22:13 | ; | 32 | -| SplittingStressTest.cs:23:9:24:13 | if (...) ... | 32 | -| SplittingStressTest.cs:23:13:23:15 | access to parameter b10 | 32 | -| SplittingStressTest.cs:24:13:24:13 | ; | 32 | -| SplittingStressTest.cs:25:9:26:13 | if (...) ... | 32 | -| SplittingStressTest.cs:25:13:25:15 | access to parameter b11 | 32 | -| SplittingStressTest.cs:26:13:26:13 | ; | 32 | -| SplittingStressTest.cs:27:9:28:13 | if (...) ... | 32 | -| SplittingStressTest.cs:27:13:27:15 | access to parameter b12 | 32 | -| SplittingStressTest.cs:28:13:28:13 | ; | 32 | -| SplittingStressTest.cs:29:9:30:13 | if (...) ... | 32 | -| SplittingStressTest.cs:29:13:29:15 | access to parameter b13 | 32 | -| SplittingStressTest.cs:30:13:30:13 | ; | 32 | -| SplittingStressTest.cs:31:9:32:13 | if (...) ... | 32 | -| SplittingStressTest.cs:31:13:31:15 | access to parameter b14 | 32 | -| SplittingStressTest.cs:32:13:32:13 | ; | 32 | -| SplittingStressTest.cs:33:9:34:13 | if (...) ... | 32 | -| SplittingStressTest.cs:33:13:33:15 | access to parameter b15 | 32 | -| SplittingStressTest.cs:34:13:34:13 | ; | 32 | -| SplittingStressTest.cs:35:9:36:13 | if (...) ... | 32 | -| SplittingStressTest.cs:35:13:35:15 | access to parameter b16 | 32 | -| SplittingStressTest.cs:36:13:36:13 | ; | 32 | -| SplittingStressTest.cs:37:9:38:13 | if (...) ... | 32 | -| SplittingStressTest.cs:37:13:37:15 | access to parameter b17 | 32 | -| SplittingStressTest.cs:38:13:38:13 | ; | 32 | -| SplittingStressTest.cs:39:9:40:13 | if (...) ... | 32 | -| SplittingStressTest.cs:39:13:39:15 | access to parameter b18 | 32 | -| SplittingStressTest.cs:40:13:40:13 | ; | 32 | -| SplittingStressTest.cs:41:9:42:13 | if (...) ... | 32 | -| SplittingStressTest.cs:41:13:41:15 | access to parameter b19 | 32 | -| SplittingStressTest.cs:42:13:42:13 | ; | 32 | -| SplittingStressTest.cs:43:9:44:13 | if (...) ... | 32 | -| SplittingStressTest.cs:43:13:43:15 | access to parameter b20 | 32 | -| SplittingStressTest.cs:44:13:44:13 | ; | 32 | -| SplittingStressTest.cs:45:9:46:13 | if (...) ... | 32 | -| SplittingStressTest.cs:45:13:45:15 | access to parameter b21 | 32 | -| SplittingStressTest.cs:46:13:46:13 | ; | 32 | -| SplittingStressTest.cs:47:9:48:13 | if (...) ... | 32 | -| SplittingStressTest.cs:47:13:47:15 | access to parameter b22 | 32 | -| SplittingStressTest.cs:48:13:48:13 | ; | 32 | -| SplittingStressTest.cs:49:9:50:13 | if (...) ... | 32 | -| SplittingStressTest.cs:49:13:49:15 | access to parameter b23 | 32 | -| SplittingStressTest.cs:50:13:50:13 | ; | 32 | -| SplittingStressTest.cs:51:9:52:13 | if (...) ... | 32 | -| SplittingStressTest.cs:51:13:51:15 | access to parameter b24 | 32 | -| SplittingStressTest.cs:52:13:52:13 | ; | 32 | -| SplittingStressTest.cs:53:9:54:13 | if (...) ... | 32 | -| SplittingStressTest.cs:53:13:53:15 | access to parameter b25 | 32 | -| SplittingStressTest.cs:54:13:54:13 | ; | 32 | -| SplittingStressTest.cs:55:9:56:13 | if (...) ... | 32 | -| SplittingStressTest.cs:55:13:55:15 | access to parameter b26 | 32 | -| SplittingStressTest.cs:56:13:56:13 | ; | 32 | -| SplittingStressTest.cs:57:9:58:13 | if (...) ... | 32 | -| SplittingStressTest.cs:57:13:57:15 | access to parameter b27 | 32 | -| SplittingStressTest.cs:58:13:58:13 | ; | 32 | -| SplittingStressTest.cs:59:9:60:13 | if (...) ... | 32 | -| SplittingStressTest.cs:59:13:59:15 | access to parameter b28 | 32 | -| SplittingStressTest.cs:60:13:60:13 | ; | 32 | -| SplittingStressTest.cs:61:9:62:13 | if (...) ... | 32 | -| SplittingStressTest.cs:61:13:61:15 | access to parameter b29 | 32 | -| SplittingStressTest.cs:62:13:62:13 | ; | 32 | -| SplittingStressTest.cs:63:9:64:13 | if (...) ... | 32 | -| SplittingStressTest.cs:63:13:63:15 | access to parameter b30 | 32 | -| SplittingStressTest.cs:64:13:64:13 | ; | 32 | -| SplittingStressTest.cs:65:9:66:13 | if (...) ... | 32 | -| SplittingStressTest.cs:65:13:65:15 | access to parameter b31 | 32 | -| SplittingStressTest.cs:66:13:66:13 | ; | 32 | -| SplittingStressTest.cs:67:9:68:13 | if (...) ... | 32 | -| SplittingStressTest.cs:67:13:67:15 | access to parameter b32 | 32 | -| SplittingStressTest.cs:68:13:68:13 | ; | 32 | -| SplittingStressTest.cs:69:9:70:13 | if (...) ... | 32 | -| SplittingStressTest.cs:69:13:69:15 | access to parameter b33 | 32 | -| SplittingStressTest.cs:70:13:70:13 | ; | 32 | -| SplittingStressTest.cs:71:9:72:13 | if (...) ... | 32 | -| SplittingStressTest.cs:71:13:71:15 | access to parameter b34 | 32 | -| SplittingStressTest.cs:72:13:72:13 | ; | 32 | -| SplittingStressTest.cs:73:9:74:13 | if (...) ... | 32 | -| SplittingStressTest.cs:73:13:73:15 | access to parameter b35 | 32 | -| SplittingStressTest.cs:74:13:74:13 | ; | 32 | -| SplittingStressTest.cs:75:9:76:13 | if (...) ... | 32 | -| SplittingStressTest.cs:75:13:75:15 | access to parameter b36 | 32 | -| SplittingStressTest.cs:76:13:76:13 | ; | 32 | -| SplittingStressTest.cs:77:9:78:13 | if (...) ... | 32 | -| SplittingStressTest.cs:77:13:77:15 | access to parameter b37 | 32 | -| SplittingStressTest.cs:78:13:78:13 | ; | 32 | -| SplittingStressTest.cs:79:9:80:13 | if (...) ... | 32 | -| SplittingStressTest.cs:79:13:79:15 | access to parameter b38 | 32 | -| SplittingStressTest.cs:80:13:80:13 | ; | 32 | -| SplittingStressTest.cs:81:9:82:13 | if (...) ... | 32 | -| SplittingStressTest.cs:81:13:81:15 | access to parameter b39 | 32 | -| SplittingStressTest.cs:82:13:82:13 | ; | 32 | -| SplittingStressTest.cs:83:9:84:13 | if (...) ... | 32 | -| SplittingStressTest.cs:83:13:83:15 | access to parameter b40 | 32 | -| SplittingStressTest.cs:84:13:84:13 | ; | 32 | -| SplittingStressTest.cs:85:9:85:9 | ; | 32 | -| SplittingStressTest.cs:87:9:88:13 | if (...) ... | 32 | -| SplittingStressTest.cs:87:13:87:14 | access to parameter b1 | 32 | -| SplittingStressTest.cs:88:13:88:13 | ; | 16 | -| SplittingStressTest.cs:89:9:90:13 | if (...) ... | 16 | -| SplittingStressTest.cs:89:13:89:14 | access to parameter b2 | 16 | -| SplittingStressTest.cs:90:13:90:13 | ; | 8 | -| SplittingStressTest.cs:91:9:92:13 | if (...) ... | 8 | -| SplittingStressTest.cs:91:13:91:14 | access to parameter b3 | 8 | -| SplittingStressTest.cs:92:13:92:13 | ; | 4 | -| SplittingStressTest.cs:93:9:94:13 | if (...) ... | 4 | -| SplittingStressTest.cs:93:13:93:14 | access to parameter b4 | 4 | -| SplittingStressTest.cs:94:13:94:13 | ; | 2 | -| SplittingStressTest.cs:95:9:96:13 | if (...) ... | 2 | -| SplittingStressTest.cs:95:13:95:14 | access to parameter b5 | 2 | -| SplittingStressTest.cs:171:5:320:5 | {...} | 1 | -| SplittingStressTest.cs:172:9:319:9 | while (...) ... | 1 | -| SplittingStressTest.cs:172:16:172:16 | access to parameter i | 243 | -| SplittingStressTest.cs:172:16:172:18 | ...-- | 243 | -| SplittingStressTest.cs:172:16:172:22 | ... > ... | 243 | -| SplittingStressTest.cs:172:22:172:22 | 0 | 243 | -| SplittingStressTest.cs:173:9:319:9 | {...} | 243 | -| SplittingStressTest.cs:174:13:178:13 | if (...) ... | 243 | -| SplittingStressTest.cs:174:17:174:17 | access to parameter i | 243 | -| SplittingStressTest.cs:174:17:174:22 | ... == ... | 243 | -| SplittingStressTest.cs:174:22:174:22 | 1 | 243 | -| SplittingStressTest.cs:175:13:178:13 | {...} | 243 | -| SplittingStressTest.cs:176:17:177:21 | if (...) ... | 243 | -| SplittingStressTest.cs:176:21:176:22 | access to parameter b1 | 243 | -| SplittingStressTest.cs:177:21:177:21 | ; | 81 | -| SplittingStressTest.cs:179:13:183:13 | if (...) ... | 243 | -| SplittingStressTest.cs:179:17:179:17 | access to parameter i | 243 | -| SplittingStressTest.cs:179:17:179:22 | ... == ... | 243 | -| SplittingStressTest.cs:179:22:179:22 | 2 | 243 | -| SplittingStressTest.cs:180:13:183:13 | {...} | 243 | -| SplittingStressTest.cs:181:17:182:21 | if (...) ... | 243 | -| SplittingStressTest.cs:181:21:181:22 | access to parameter b2 | 243 | -| SplittingStressTest.cs:182:21:182:21 | ; | 81 | -| SplittingStressTest.cs:184:13:188:13 | if (...) ... | 243 | -| SplittingStressTest.cs:184:17:184:17 | access to parameter i | 243 | -| SplittingStressTest.cs:184:17:184:22 | ... == ... | 243 | -| SplittingStressTest.cs:184:22:184:22 | 3 | 243 | -| SplittingStressTest.cs:185:13:188:13 | {...} | 243 | -| SplittingStressTest.cs:186:17:187:21 | if (...) ... | 243 | -| SplittingStressTest.cs:186:21:186:22 | access to parameter b3 | 243 | -| SplittingStressTest.cs:187:21:187:21 | ; | 81 | -| SplittingStressTest.cs:189:13:193:13 | if (...) ... | 243 | -| SplittingStressTest.cs:189:17:189:17 | access to parameter i | 243 | -| SplittingStressTest.cs:189:17:189:22 | ... == ... | 243 | -| SplittingStressTest.cs:189:22:189:22 | 4 | 243 | -| SplittingStressTest.cs:190:13:193:13 | {...} | 243 | -| SplittingStressTest.cs:191:17:192:21 | if (...) ... | 243 | -| SplittingStressTest.cs:191:21:191:22 | access to parameter b4 | 243 | -| SplittingStressTest.cs:192:21:192:21 | ; | 81 | -| SplittingStressTest.cs:194:13:198:13 | if (...) ... | 243 | -| SplittingStressTest.cs:194:17:194:17 | access to parameter i | 243 | -| SplittingStressTest.cs:194:17:194:22 | ... == ... | 243 | -| SplittingStressTest.cs:194:22:194:22 | 5 | 243 | -| SplittingStressTest.cs:195:13:198:13 | {...} | 243 | -| SplittingStressTest.cs:196:17:197:21 | if (...) ... | 243 | -| SplittingStressTest.cs:196:21:196:22 | access to parameter b5 | 243 | -| SplittingStressTest.cs:197:21:197:21 | ; | 81 | -| SplittingStressTest.cs:199:13:203:13 | if (...) ... | 243 | -| SplittingStressTest.cs:199:17:199:17 | access to parameter i | 243 | -| SplittingStressTest.cs:199:17:199:22 | ... == ... | 243 | -| SplittingStressTest.cs:199:22:199:22 | 6 | 243 | -| SplittingStressTest.cs:200:13:203:13 | {...} | 243 | -| SplittingStressTest.cs:201:17:202:21 | if (...) ... | 243 | -| SplittingStressTest.cs:201:21:201:22 | access to parameter b6 | 243 | -| SplittingStressTest.cs:202:21:202:21 | ; | 243 | -| SplittingStressTest.cs:204:13:208:13 | if (...) ... | 243 | -| SplittingStressTest.cs:204:17:204:17 | access to parameter i | 243 | -| SplittingStressTest.cs:204:17:204:22 | ... == ... | 243 | -| SplittingStressTest.cs:204:22:204:22 | 7 | 243 | -| SplittingStressTest.cs:205:13:208:13 | {...} | 243 | -| SplittingStressTest.cs:206:17:207:21 | if (...) ... | 243 | -| SplittingStressTest.cs:206:21:206:22 | access to parameter b7 | 243 | -| SplittingStressTest.cs:207:21:207:21 | ; | 243 | -| SplittingStressTest.cs:209:13:213:13 | if (...) ... | 243 | -| SplittingStressTest.cs:209:17:209:17 | access to parameter i | 243 | -| SplittingStressTest.cs:209:17:209:22 | ... == ... | 243 | -| SplittingStressTest.cs:209:22:209:22 | 8 | 243 | -| SplittingStressTest.cs:210:13:213:13 | {...} | 243 | -| SplittingStressTest.cs:211:17:212:21 | if (...) ... | 243 | -| SplittingStressTest.cs:211:21:211:22 | access to parameter b8 | 243 | -| SplittingStressTest.cs:212:21:212:21 | ; | 243 | -| SplittingStressTest.cs:214:13:218:13 | if (...) ... | 243 | -| SplittingStressTest.cs:214:17:214:17 | access to parameter i | 243 | -| SplittingStressTest.cs:214:17:214:22 | ... == ... | 243 | -| SplittingStressTest.cs:214:22:214:22 | 9 | 243 | -| SplittingStressTest.cs:215:13:218:13 | {...} | 243 | -| SplittingStressTest.cs:216:17:217:21 | if (...) ... | 243 | -| SplittingStressTest.cs:216:21:216:22 | access to parameter b9 | 243 | -| SplittingStressTest.cs:217:21:217:21 | ; | 243 | -| SplittingStressTest.cs:219:13:223:13 | if (...) ... | 243 | -| SplittingStressTest.cs:219:17:219:17 | access to parameter i | 243 | -| SplittingStressTest.cs:219:17:219:23 | ... == ... | 243 | -| SplittingStressTest.cs:219:22:219:23 | 10 | 243 | -| SplittingStressTest.cs:220:13:223:13 | {...} | 243 | -| SplittingStressTest.cs:221:17:222:21 | if (...) ... | 243 | -| SplittingStressTest.cs:221:21:221:23 | access to parameter b10 | 243 | -| SplittingStressTest.cs:222:21:222:21 | ; | 243 | -| SplittingStressTest.cs:224:13:228:13 | if (...) ... | 243 | -| SplittingStressTest.cs:224:17:224:17 | access to parameter i | 243 | -| SplittingStressTest.cs:224:17:224:23 | ... == ... | 243 | -| SplittingStressTest.cs:224:22:224:23 | 11 | 243 | -| SplittingStressTest.cs:225:13:228:13 | {...} | 243 | -| SplittingStressTest.cs:226:17:227:21 | if (...) ... | 243 | -| SplittingStressTest.cs:226:21:226:23 | access to parameter b11 | 243 | -| SplittingStressTest.cs:227:21:227:21 | ; | 243 | -| SplittingStressTest.cs:229:13:233:13 | if (...) ... | 243 | -| SplittingStressTest.cs:229:17:229:17 | access to parameter i | 243 | -| SplittingStressTest.cs:229:17:229:23 | ... == ... | 243 | -| SplittingStressTest.cs:229:22:229:23 | 12 | 243 | -| SplittingStressTest.cs:230:13:233:13 | {...} | 243 | -| SplittingStressTest.cs:231:17:232:21 | if (...) ... | 243 | -| SplittingStressTest.cs:231:21:231:23 | access to parameter b12 | 243 | -| SplittingStressTest.cs:232:21:232:21 | ; | 243 | -| SplittingStressTest.cs:234:13:238:13 | if (...) ... | 243 | -| SplittingStressTest.cs:234:17:234:17 | access to parameter i | 243 | -| SplittingStressTest.cs:234:17:234:23 | ... == ... | 243 | -| SplittingStressTest.cs:234:22:234:23 | 13 | 243 | -| SplittingStressTest.cs:235:13:238:13 | {...} | 243 | -| SplittingStressTest.cs:236:17:237:21 | if (...) ... | 243 | -| SplittingStressTest.cs:236:21:236:23 | access to parameter b13 | 243 | -| SplittingStressTest.cs:237:21:237:21 | ; | 243 | -| SplittingStressTest.cs:239:13:243:13 | if (...) ... | 243 | -| SplittingStressTest.cs:239:17:239:17 | access to parameter i | 243 | -| SplittingStressTest.cs:239:17:239:23 | ... == ... | 243 | -| SplittingStressTest.cs:239:22:239:23 | 14 | 243 | -| SplittingStressTest.cs:240:13:243:13 | {...} | 243 | -| SplittingStressTest.cs:241:17:242:21 | if (...) ... | 243 | -| SplittingStressTest.cs:241:21:241:23 | access to parameter b14 | 243 | -| SplittingStressTest.cs:242:21:242:21 | ; | 243 | -| SplittingStressTest.cs:244:13:248:13 | if (...) ... | 243 | -| SplittingStressTest.cs:244:17:244:17 | access to parameter i | 243 | -| SplittingStressTest.cs:244:17:244:23 | ... == ... | 243 | -| SplittingStressTest.cs:244:22:244:23 | 15 | 243 | -| SplittingStressTest.cs:245:13:248:13 | {...} | 243 | -| SplittingStressTest.cs:246:17:247:21 | if (...) ... | 243 | -| SplittingStressTest.cs:246:21:246:23 | access to parameter b15 | 243 | -| SplittingStressTest.cs:247:21:247:21 | ; | 243 | -| SplittingStressTest.cs:249:13:253:13 | if (...) ... | 243 | -| SplittingStressTest.cs:249:17:249:17 | access to parameter i | 243 | -| SplittingStressTest.cs:249:17:249:23 | ... == ... | 243 | -| SplittingStressTest.cs:249:22:249:23 | 16 | 243 | -| SplittingStressTest.cs:250:13:253:13 | {...} | 243 | -| SplittingStressTest.cs:251:17:252:21 | if (...) ... | 243 | -| SplittingStressTest.cs:251:21:251:23 | access to parameter b16 | 243 | -| SplittingStressTest.cs:252:21:252:21 | ; | 243 | -| SplittingStressTest.cs:254:13:258:13 | if (...) ... | 243 | -| SplittingStressTest.cs:254:17:254:17 | access to parameter i | 243 | -| SplittingStressTest.cs:254:17:254:23 | ... == ... | 243 | -| SplittingStressTest.cs:254:22:254:23 | 17 | 243 | -| SplittingStressTest.cs:255:13:258:13 | {...} | 243 | -| SplittingStressTest.cs:256:17:257:21 | if (...) ... | 243 | -| SplittingStressTest.cs:256:21:256:23 | access to parameter b17 | 243 | -| SplittingStressTest.cs:257:21:257:21 | ; | 243 | -| SplittingStressTest.cs:259:13:263:13 | if (...) ... | 243 | -| SplittingStressTest.cs:259:17:259:17 | access to parameter i | 243 | -| SplittingStressTest.cs:259:17:259:23 | ... == ... | 243 | -| SplittingStressTest.cs:259:22:259:23 | 18 | 243 | -| SplittingStressTest.cs:260:13:263:13 | {...} | 243 | -| SplittingStressTest.cs:261:17:262:21 | if (...) ... | 243 | -| SplittingStressTest.cs:261:21:261:23 | access to parameter b18 | 243 | -| SplittingStressTest.cs:262:21:262:21 | ; | 243 | -| SplittingStressTest.cs:264:13:268:13 | if (...) ... | 243 | -| SplittingStressTest.cs:264:17:264:17 | access to parameter i | 243 | -| SplittingStressTest.cs:264:17:264:23 | ... == ... | 243 | -| SplittingStressTest.cs:264:22:264:23 | 19 | 243 | -| SplittingStressTest.cs:265:13:268:13 | {...} | 243 | -| SplittingStressTest.cs:266:17:267:21 | if (...) ... | 243 | -| SplittingStressTest.cs:266:21:266:23 | access to parameter b19 | 243 | -| SplittingStressTest.cs:267:21:267:21 | ; | 243 | -| SplittingStressTest.cs:269:13:273:13 | if (...) ... | 243 | -| SplittingStressTest.cs:269:17:269:17 | access to parameter i | 243 | -| SplittingStressTest.cs:269:17:269:23 | ... == ... | 243 | -| SplittingStressTest.cs:269:22:269:23 | 20 | 243 | -| SplittingStressTest.cs:270:13:273:13 | {...} | 243 | -| SplittingStressTest.cs:271:17:272:21 | if (...) ... | 243 | -| SplittingStressTest.cs:271:21:271:23 | access to parameter b20 | 243 | -| SplittingStressTest.cs:272:21:272:21 | ; | 243 | -| SplittingStressTest.cs:274:13:278:13 | if (...) ... | 243 | -| SplittingStressTest.cs:274:17:274:17 | access to parameter i | 243 | -| SplittingStressTest.cs:274:17:274:23 | ... == ... | 243 | -| SplittingStressTest.cs:274:22:274:23 | 21 | 243 | -| SplittingStressTest.cs:275:13:278:13 | {...} | 243 | -| SplittingStressTest.cs:276:17:277:21 | if (...) ... | 243 | -| SplittingStressTest.cs:276:21:276:23 | access to parameter b21 | 243 | -| SplittingStressTest.cs:277:21:277:21 | ; | 243 | -| SplittingStressTest.cs:279:13:283:13 | if (...) ... | 243 | -| SplittingStressTest.cs:279:17:279:17 | access to parameter i | 243 | -| SplittingStressTest.cs:279:17:279:23 | ... == ... | 243 | -| SplittingStressTest.cs:279:22:279:23 | 22 | 243 | -| SplittingStressTest.cs:280:13:283:13 | {...} | 243 | -| SplittingStressTest.cs:281:17:282:21 | if (...) ... | 243 | -| SplittingStressTest.cs:281:21:281:23 | access to parameter b22 | 243 | -| SplittingStressTest.cs:282:21:282:21 | ; | 243 | -| SplittingStressTest.cs:284:13:288:13 | if (...) ... | 243 | -| SplittingStressTest.cs:284:17:284:17 | access to parameter i | 243 | -| SplittingStressTest.cs:284:17:284:23 | ... == ... | 243 | -| SplittingStressTest.cs:284:22:284:23 | 23 | 243 | -| SplittingStressTest.cs:285:13:288:13 | {...} | 243 | -| SplittingStressTest.cs:286:17:287:21 | if (...) ... | 243 | -| SplittingStressTest.cs:286:21:286:23 | access to parameter b23 | 243 | -| SplittingStressTest.cs:287:21:287:21 | ; | 243 | -| SplittingStressTest.cs:289:13:293:13 | if (...) ... | 243 | -| SplittingStressTest.cs:289:17:289:17 | access to parameter i | 243 | -| SplittingStressTest.cs:289:17:289:23 | ... == ... | 243 | -| SplittingStressTest.cs:289:22:289:23 | 24 | 243 | -| SplittingStressTest.cs:290:13:293:13 | {...} | 243 | -| SplittingStressTest.cs:291:17:292:21 | if (...) ... | 243 | -| SplittingStressTest.cs:291:21:291:23 | access to parameter b24 | 243 | -| SplittingStressTest.cs:292:21:292:21 | ; | 243 | -| SplittingStressTest.cs:294:13:298:13 | if (...) ... | 243 | -| SplittingStressTest.cs:294:17:294:17 | access to parameter i | 243 | -| SplittingStressTest.cs:294:17:294:23 | ... == ... | 243 | -| SplittingStressTest.cs:294:22:294:23 | 25 | 243 | -| SplittingStressTest.cs:295:13:298:13 | {...} | 243 | -| SplittingStressTest.cs:296:17:297:21 | if (...) ... | 243 | -| SplittingStressTest.cs:296:21:296:23 | access to parameter b25 | 243 | -| SplittingStressTest.cs:297:21:297:21 | ; | 243 | -| SplittingStressTest.cs:299:13:303:13 | if (...) ... | 243 | -| SplittingStressTest.cs:299:17:299:17 | access to parameter i | 243 | -| SplittingStressTest.cs:299:17:299:23 | ... == ... | 243 | -| SplittingStressTest.cs:299:22:299:23 | 26 | 243 | -| SplittingStressTest.cs:300:13:303:13 | {...} | 243 | -| SplittingStressTest.cs:301:17:302:21 | if (...) ... | 243 | -| SplittingStressTest.cs:301:21:301:23 | access to parameter b26 | 243 | -| SplittingStressTest.cs:302:21:302:21 | ; | 243 | -| SplittingStressTest.cs:304:13:308:13 | if (...) ... | 243 | -| SplittingStressTest.cs:304:17:304:17 | access to parameter i | 243 | -| SplittingStressTest.cs:304:17:304:23 | ... == ... | 243 | -| SplittingStressTest.cs:304:22:304:23 | 27 | 243 | -| SplittingStressTest.cs:305:13:308:13 | {...} | 243 | -| SplittingStressTest.cs:306:17:307:21 | if (...) ... | 243 | -| SplittingStressTest.cs:306:21:306:23 | access to parameter b27 | 243 | -| SplittingStressTest.cs:307:21:307:21 | ; | 243 | -| SplittingStressTest.cs:309:13:313:13 | if (...) ... | 243 | -| SplittingStressTest.cs:309:17:309:17 | access to parameter i | 243 | -| SplittingStressTest.cs:309:17:309:23 | ... == ... | 243 | -| SplittingStressTest.cs:309:22:309:23 | 28 | 243 | -| SplittingStressTest.cs:310:13:313:13 | {...} | 243 | -| SplittingStressTest.cs:311:17:312:21 | if (...) ... | 243 | -| SplittingStressTest.cs:311:21:311:23 | access to parameter b28 | 243 | -| SplittingStressTest.cs:312:21:312:21 | ; | 243 | -| SplittingStressTest.cs:314:13:318:13 | if (...) ... | 243 | -| SplittingStressTest.cs:314:17:314:17 | access to parameter i | 243 | -| SplittingStressTest.cs:314:17:314:23 | ... == ... | 243 | -| SplittingStressTest.cs:314:22:314:23 | 29 | 243 | -| SplittingStressTest.cs:315:13:318:13 | {...} | 243 | -| SplittingStressTest.cs:316:17:317:21 | if (...) ... | 243 | -| SplittingStressTest.cs:316:21:316:23 | access to parameter b29 | 243 | -| SplittingStressTest.cs:317:21:317:21 | ; | 243 | -ssaDef -| SplittingStressTest.cs:3:18:3:19 | SSA param(b1) | -| SplittingStressTest.cs:3:27:3:28 | SSA param(b2) | -| SplittingStressTest.cs:3:36:3:37 | SSA param(b3) | -| SplittingStressTest.cs:3:45:3:46 | SSA param(b4) | -| SplittingStressTest.cs:3:54:3:55 | SSA param(b5) | -| SplittingStressTest.cs:3:63:3:64 | SSA param(b6) | -| SplittingStressTest.cs:3:72:3:73 | SSA param(b7) | -| SplittingStressTest.cs:3:81:3:82 | SSA param(b8) | -| SplittingStressTest.cs:3:90:3:91 | SSA param(b9) | -| SplittingStressTest.cs:3:99:3:101 | SSA param(b10) | -| SplittingStressTest.cs:3:109:3:111 | SSA param(b11) | -| SplittingStressTest.cs:3:119:3:121 | SSA param(b12) | -| SplittingStressTest.cs:3:129:3:131 | SSA param(b13) | -| SplittingStressTest.cs:3:139:3:141 | SSA param(b14) | -| SplittingStressTest.cs:3:149:3:151 | SSA param(b15) | -| SplittingStressTest.cs:3:159:3:161 | SSA param(b16) | -| SplittingStressTest.cs:3:169:3:171 | SSA param(b17) | -| SplittingStressTest.cs:3:179:3:181 | SSA param(b18) | -| SplittingStressTest.cs:3:189:3:191 | SSA param(b19) | -| SplittingStressTest.cs:3:199:3:201 | SSA param(b20) | -| SplittingStressTest.cs:3:209:3:211 | SSA param(b21) | -| SplittingStressTest.cs:3:219:3:221 | SSA param(b22) | -| SplittingStressTest.cs:3:229:3:231 | SSA param(b23) | -| SplittingStressTest.cs:3:239:3:241 | SSA param(b24) | -| SplittingStressTest.cs:3:249:3:251 | SSA param(b25) | -| SplittingStressTest.cs:3:259:3:261 | SSA param(b26) | -| SplittingStressTest.cs:3:269:3:271 | SSA param(b27) | -| SplittingStressTest.cs:3:279:3:281 | SSA param(b28) | -| SplittingStressTest.cs:3:289:3:291 | SSA param(b29) | -| SplittingStressTest.cs:3:299:3:301 | SSA param(b30) | -| SplittingStressTest.cs:3:309:3:311 | SSA param(b31) | -| SplittingStressTest.cs:3:319:3:321 | SSA param(b32) | -| SplittingStressTest.cs:3:329:3:331 | SSA param(b33) | -| SplittingStressTest.cs:3:339:3:341 | SSA param(b34) | -| SplittingStressTest.cs:3:349:3:351 | SSA param(b35) | -| SplittingStressTest.cs:3:359:3:361 | SSA param(b36) | -| SplittingStressTest.cs:3:369:3:371 | SSA param(b37) | -| SplittingStressTest.cs:3:379:3:381 | SSA param(b38) | -| SplittingStressTest.cs:3:389:3:391 | SSA param(b39) | -| SplittingStressTest.cs:3:399:3:401 | SSA param(b40) | -| SplittingStressTest.cs:170:17:170:17 | SSA param(i) | -| SplittingStressTest.cs:170:25:170:26 | SSA param(b1) | -| SplittingStressTest.cs:170:34:170:35 | SSA param(b2) | -| SplittingStressTest.cs:170:43:170:44 | SSA param(b3) | -| SplittingStressTest.cs:170:52:170:53 | SSA param(b4) | -| SplittingStressTest.cs:170:61:170:62 | SSA param(b5) | -| SplittingStressTest.cs:170:70:170:71 | SSA param(b6) | -| SplittingStressTest.cs:170:79:170:80 | SSA param(b7) | -| SplittingStressTest.cs:170:88:170:89 | SSA param(b8) | -| SplittingStressTest.cs:170:97:170:98 | SSA param(b9) | -| SplittingStressTest.cs:170:106:170:108 | SSA param(b10) | -| SplittingStressTest.cs:170:116:170:118 | SSA param(b11) | -| SplittingStressTest.cs:170:126:170:128 | SSA param(b12) | -| SplittingStressTest.cs:170:136:170:138 | SSA param(b13) | -| SplittingStressTest.cs:170:146:170:148 | SSA param(b14) | -| SplittingStressTest.cs:170:156:170:158 | SSA param(b15) | -| SplittingStressTest.cs:170:166:170:168 | SSA param(b16) | -| SplittingStressTest.cs:170:176:170:178 | SSA param(b17) | -| SplittingStressTest.cs:170:186:170:188 | SSA param(b18) | -| SplittingStressTest.cs:170:196:170:198 | SSA param(b19) | -| SplittingStressTest.cs:170:206:170:208 | SSA param(b20) | -| SplittingStressTest.cs:170:216:170:218 | SSA param(b21) | -| SplittingStressTest.cs:170:226:170:228 | SSA param(b22) | -| SplittingStressTest.cs:170:236:170:238 | SSA param(b23) | -| SplittingStressTest.cs:170:246:170:248 | SSA param(b24) | -| SplittingStressTest.cs:170:256:170:258 | SSA param(b25) | -| SplittingStressTest.cs:170:266:170:268 | SSA param(b26) | -| SplittingStressTest.cs:170:276:170:278 | SSA param(b27) | -| SplittingStressTest.cs:170:286:170:288 | SSA param(b28) | -| SplittingStressTest.cs:170:296:170:298 | SSA param(b29) | -| SplittingStressTest.cs:172:16:172:16 | SSA phi(i) | -| SplittingStressTest.cs:172:16:172:18 | SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b2 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b2 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b1 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b2 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b3 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b4 (line 170): false, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b4 (line 170): false, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b4 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b4 (line 170): true, b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b4 (line 170): true, b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b4 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b5 (line 170): false] SSA def(i) | -| SplittingStressTest.cs:172:16:172:18 | [b5 (line 170): true] SSA def(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:177:21:177:21 | [b1 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:179:13:183:13 | [b1 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): false, b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b1 (line 170): true, b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:182:21:182:21 | [b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): false, b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b1 (line 170): true, b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:184:13:188:13 | [b2 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b1 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:187:21:187:21 | [b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b1 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): false, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b2 (line 170): true, b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:189:13:193:13 | [b3 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b1 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:192:21:192:21 | [b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b1 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b2 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): false, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): false, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): true, b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b3 (line 170): true, b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b4 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:194:13:198:13 | [b4 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b1 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:197:21:197:21 | [b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b1 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b2 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): false, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): false, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): true, b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): true, b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b3 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b4 (line 170): false, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b4 (line 170): false, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b4 (line 170): true, b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b4 (line 170): true, b5 (line 170): true] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b5 (line 170): false] SSA phi(i) | -| SplittingStressTest.cs:199:13:203:13 | [b5 (line 170): true] SSA phi(i) | diff --git a/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.ql b/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.ql deleted file mode 100644 index c1b5633912d9..000000000000 --- a/csharp/ql/test/library-tests/controlflow/splits/SplittingStressTest.ql +++ /dev/null @@ -1,8 +0,0 @@ -import csharp - -query predicate countSplits(ControlFlowElement cfe, int i) { - not cfe.fromLibrary() and - i = strictcount(ControlFlow::Nodes::ElementNode n | n.getAstNode() = cfe) -} - -query predicate ssaDef(Ssa::Definition def) { any() } diff --git a/csharp/ql/test/library-tests/csharp7/TupleTypes.expected b/csharp/ql/test/library-tests/csharp7/TupleTypes.expected index 9d7f3330151b..86bd4d542b99 100644 --- a/csharp/ql/test/library-tests/csharp7/TupleTypes.expected +++ b/csharp/ql/test/library-tests/csharp7/TupleTypes.expected @@ -1,12 +1,8 @@ -| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 0 | CSharp7.cs:96:19:96:19 | Item1 | -| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 1 | CSharp7.cs:102:22:102:46 | Item2 | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | CSharp7.cs:213:6:213:8 | Item1 | -| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | CSharp7.cs:213:11:213:16 | Item2 | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 0 | CSharp7.cs:62:10:62:10 | Item1 | -| (Int32,Int32) | (int, int) | ValueTuple | 2 | 1 | CSharp7.cs:62:17:62:17 | Item2 | -| (Int32,String) | (int, string) | ValueTuple | 2 | 0 | CSharp7.cs:95:19:95:19 | Item1 | -| (Int32,String) | (int, string) | ValueTuple | 2 | 1 | CSharp7.cs:95:22:95:37 | Item2 | -| (String,Int32) | (string, int) | ValueTuple | 2 | 0 | CSharp7.cs:82:17:82:17 | Item1 | -| (String,Int32) | (string, int) | ValueTuple | 2 | 1 | CSharp7.cs:82:23:82:23 | Item2 | -| (String,String) | (string, string) | ValueTuple | 2 | 0 | CSharp7.cs:87:19:87:27 | Item1 | -| (String,String) | (string, string) | ValueTuple | 2 | 1 | CSharp7.cs:87:30:87:33 | Item2 | +| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 0 | Item1 | +| (Int32,(String,Int32)) | (int, (string, int)) | ValueTuple | 2 | 1 | Item2 | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 0 | Item1 | +| (Int32,Double) | (int, double) | ValueTuple | 2 | 1 | Item2 | +| (Int32,String) | (int, string) | ValueTuple | 2 | 0 | Item1 | +| (Int32,String) | (int, string) | ValueTuple | 2 | 1 | Item2 | +| (String,String) | (string, string) | ValueTuple | 2 | 0 | Item1 | +| (String,String) | (string, string) | ValueTuple | 2 | 1 | Item2 | diff --git a/csharp/ql/test/library-tests/csharp7/TupleTypes.ql b/csharp/ql/test/library-tests/csharp7/TupleTypes.ql index 288fe1bfe982..c8fd4ac9ab03 100644 --- a/csharp/ql/test/library-tests/csharp7/TupleTypes.ql +++ b/csharp/ql/test/library-tests/csharp7/TupleTypes.ql @@ -1,6 +1,6 @@ import csharp from TupleType tt, int i -where tt.getAnElement().fromSource() +where tt.fromSource() select tt.getName(), tt.toStringWithTypes(), tt.getUnderlyingType().toStringWithTypes(), - tt.getArity(), i, tt.getElement(i) + tt.getArity(), i, tt.getElement(i).getName() diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected index 2c4b9de438ea..83438c26f6ee 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected @@ -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 | +| patterns.cs:138:22:138:50 | throw ... | patterns.cs:145:9:148:9 | 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 | +| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:145:9:148:9 | 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,20 +187,17 @@ | 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 | -| 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:36 | [match] { ... } | patterns.cs:145:9:148:9 | catch (...) {...} | semmle.label | exception | +| patterns.cs:142:17:142:36 | [no-match] { ... } | patterns.cs:145:9:148:9 | 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 | -| 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 | -| patterns.cs:145:41:145:42 | [exception: InvalidOperationException] InvalidOperationException ex | patterns.cs:146:9:148:9 | {...} | semmle.label | successor | +| patterns.cs:145:9:148:9 | catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception | +| patterns.cs:145:9:148:9 | catch (...) {...} | patterns.cs:145:41:145:42 | InvalidOperationException ex | semmle.label | match | +| patterns.cs:145:41:145:42 | InvalidOperationException ex | patterns.cs:146:9:148:9 | {...} | semmle.label | successor | | patterns.cs:146:9:148:9 | {...} | patterns.cs:147:13:147:51 | ...; | semmle.label | successor | | patterns.cs:147:13:147:50 | call to method WriteLine | patterns.cs:123:10:123:21 | exit Expressions2 (normal) | semmle.label | successor | | patterns.cs:147:13:147:51 | ...; | patterns.cs:147:31:147:49 | "Invalid operation" | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected index 955202f6afd3..bcd15ee78311 100644 --- a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected @@ -2,7 +2,7 @@ edges | CallSensitivityFlow.cs:7:38:7:38 | o : Object | CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | provenance | | | CallSensitivityFlow.cs:19:39:19:39 | o : Object | CallSensitivityFlow.cs:23:18:23:18 | access to parameter o | provenance | | | CallSensitivityFlow.cs:27:40:27:40 | o : Object | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | provenance | | -| CallSensitivityFlow.cs:35:41:35:41 | o : Object | CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | provenance | | +| CallSensitivityFlow.cs:35:41:35:41 | o : Object | CallSensitivityFlow.cs:39:18:39:18 | access to parameter o | provenance | | | CallSensitivityFlow.cs:43:45:43:45 | o : Object | CallSensitivityFlow.cs:45:16:45:17 | access to local variable o1 : Object | provenance | | | CallSensitivityFlow.cs:45:16:45:17 | access to local variable o1 : Object | CallSensitivityFlow.cs:49:20:49:22 | access to local variable tmp : Object | provenance | | | CallSensitivityFlow.cs:49:20:49:22 | access to local variable tmp : Object | CallSensitivityFlow.cs:50:13:50:14 | access to local variable o2 : Object | provenance | | @@ -71,7 +71,7 @@ nodes | CallSensitivityFlow.cs:27:40:27:40 | o : Object | semmle.label | o : Object | | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | semmle.label | access to parameter o | | CallSensitivityFlow.cs:35:41:35:41 | o : Object | semmle.label | o : Object | -| CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | semmle.label | [cond (line 35): true] access to parameter o | +| CallSensitivityFlow.cs:39:18:39:18 | access to parameter o | semmle.label | access to parameter o | | CallSensitivityFlow.cs:43:45:43:45 | o : Object | semmle.label | o : Object | | CallSensitivityFlow.cs:45:16:45:17 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | | CallSensitivityFlow.cs:49:20:49:22 | access to local variable tmp : Object | semmle.label | access to local variable tmp : Object | @@ -147,7 +147,7 @@ subpaths #select | CallSensitivityFlow.cs:78:24:78:35 | object creation of type Object : Object | CallSensitivityFlow.cs:78:24:78:35 | object creation of type Object : Object | CallSensitivityFlow.cs:23:18:23:18 | access to parameter o | $@ | CallSensitivityFlow.cs:23:18:23:18 | access to parameter o | access to parameter o | | CallSensitivityFlow.cs:79:25:79:36 | object creation of type Object : Object | CallSensitivityFlow.cs:79:25:79:36 | object creation of type Object : Object | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | $@ | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | access to parameter o | -| CallSensitivityFlow.cs:80:26:80:37 | object creation of type Object : Object | CallSensitivityFlow.cs:80:26:80:37 | object creation of type Object : Object | CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | $@ | CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | [cond (line 35): true] access to parameter o | +| CallSensitivityFlow.cs:80:26:80:37 | object creation of type Object : Object | CallSensitivityFlow.cs:80:26:80:37 | object creation of type Object : Object | CallSensitivityFlow.cs:39:18:39:18 | access to parameter o | $@ | CallSensitivityFlow.cs:39:18:39:18 | access to parameter o | access to parameter o | | CallSensitivityFlow.cs:81:30:81:41 | object creation of type Object : Object | CallSensitivityFlow.cs:81:30:81:41 | object creation of type Object : Object | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | $@ | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | access to local variable o3 | | CallSensitivityFlow.cs:82:31:82:42 | object creation of type Object : Object | CallSensitivityFlow.cs:82:31:82:42 | object creation of type Object : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | $@ | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | access to local variable o3 | | CallSensitivityFlow.cs:83:31:83:42 | object creation of type Object : Object | CallSensitivityFlow.cs:83:31:83:42 | object creation of type Object : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | $@ | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | access to local variable o3 | @@ -156,7 +156,7 @@ subpaths | CallSensitivityFlow.cs:87:31:87:42 | object creation of type Object : Object | CallSensitivityFlow.cs:87:31:87:42 | object creation of type Object : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | $@ | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | access to local variable o3 | | CallSensitivityFlow.cs:101:24:101:35 | object creation of type Object : Object | CallSensitivityFlow.cs:101:24:101:35 | object creation of type Object : Object | CallSensitivityFlow.cs:23:18:23:18 | access to parameter o | $@ | CallSensitivityFlow.cs:23:18:23:18 | access to parameter o | access to parameter o | | CallSensitivityFlow.cs:102:25:102:36 | object creation of type Object : Object | CallSensitivityFlow.cs:102:25:102:36 | object creation of type Object : Object | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | $@ | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | access to parameter o | -| CallSensitivityFlow.cs:103:26:103:37 | object creation of type Object : Object | CallSensitivityFlow.cs:103:26:103:37 | object creation of type Object : Object | CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | $@ | CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | [cond (line 35): true] access to parameter o | +| CallSensitivityFlow.cs:103:26:103:37 | object creation of type Object : Object | CallSensitivityFlow.cs:103:26:103:37 | object creation of type Object : Object | CallSensitivityFlow.cs:39:18:39:18 | access to parameter o | $@ | CallSensitivityFlow.cs:39:18:39:18 | access to parameter o | access to parameter o | | CallSensitivityFlow.cs:104:30:104:41 | object creation of type Object : Object | CallSensitivityFlow.cs:104:30:104:41 | object creation of type Object : Object | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | $@ | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | access to local variable o3 | | CallSensitivityFlow.cs:105:26:105:37 | object creation of type Object : Object | CallSensitivityFlow.cs:105:26:105:37 | object creation of type Object : Object | CallSensitivityFlow.cs:105:14:105:41 | call to method FlowThrough | $@ | CallSensitivityFlow.cs:105:14:105:41 | call to method FlowThrough | call to method FlowThrough | | CallSensitivityFlow.cs:117:26:117:37 | object creation of type Object : Object | CallSensitivityFlow.cs:117:26:117:37 | object creation of type Object : Object | CallSensitivityFlow.cs:128:22:128:22 | access to parameter o | $@ | CallSensitivityFlow.cs:128:22:128:22 | access to parameter o | access to parameter o | diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlow.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlow.expected index 3180b00f2059..743b754a97b5 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlow.expected @@ -84,13 +84,12 @@ | GlobalDataFlow.cs:547:15:547:21 | access to field field | | MultiImplementationA.cs:7:39:7:39 | access to parameter x | | MultiImplementationB.cs:5:39:5:39 | access to parameter x | -| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | -| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | +| Splitting.cs:9:15:9:15 | access to local variable x | | Splitting.cs:11:19:11:19 | access to local variable x | | Splitting.cs:21:21:21:33 | call to method Return | -| Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | -| Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | +| Splitting.cs:32:15:32:15 | access to local variable x | | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:41:19:41:19 | access to local variable s | +| Splitting.cs:43:19:43:19 | access to local variable s | | Splitting.cs:50:19:50:19 | access to local variable s | | Splitting.cs:52:19:52:19 | access to local variable s | diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected index 7333890f68fc..81f76ca4dc06 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected @@ -464,17 +464,12 @@ edges | MultiImplementationA.cs:7:27:7:27 | x : String | MultiImplementationA.cs:7:39:7:39 | access to parameter x | provenance | | | MultiImplementationB.cs:3:28:3:41 | "taint source" : String | MultiImplementationB.cs:5:27:5:27 | x : String | provenance | | | MultiImplementationB.cs:5:27:5:27 | x : String | MultiImplementationB.cs:5:39:5:39 | access to parameter x | provenance | | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | provenance | | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | provenance | | -| Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | provenance | | -| Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | provenance | | +| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | access to parameter tainted : String | provenance | | +| Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:9:15:9:15 | access to local variable x | provenance | | | Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:11:19:11:19 | access to local variable x | provenance | | -| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | Splitting.cs:8:13:8:13 | access to local variable x : String | provenance | | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:8:13:8:13 | access to local variable x : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:8:17:8:31 | call to method Return : String | Splitting.cs:8:13:8:13 | access to local variable x : String | provenance | | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | Splitting.cs:8:17:8:31 | call to method Return : String | provenance | | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | provenance | | | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:29:20:29 | access to parameter s : String | provenance | | | Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | provenance | | @@ -482,23 +477,17 @@ edges | Splitting.cs:21:9:21:11 | value : String | Splitting.cs:21:28:21:32 | access to parameter value : String | provenance | | | Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | provenance | | | Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:21:21:21:33 | call to method Return | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | provenance | | -| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | -| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | -| Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | provenance | | -| Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | access to parameter tainted : String | provenance | | +| Splitting.cs:30:17:30:23 | access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | +| Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:32:15:32:15 | access to local variable x | provenance | | | Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:34:19:34:19 | access to local variable x | provenance | | -| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | Splitting.cs:31:13:31:13 | access to local variable x : String | provenance | | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:31:13:31:13 | access to local variable x : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | provenance | | +| Splitting.cs:31:17:31:26 | dynamic access to element : String | Splitting.cs:31:13:31:13 | access to local variable x : String | provenance | | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | Splitting.cs:31:17:31:26 | dynamic access to element : String | provenance | | | Splitting.cs:39:13:39:13 | access to local variable s : String | Splitting.cs:41:19:41:19 | access to local variable s | provenance | | -| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:39:13:39:13 | access to local variable s : String | provenance | | +| Splitting.cs:39:13:39:13 | access to local variable s : String | Splitting.cs:43:19:43:19 | access to local variable s | provenance | | +| Splitting.cs:39:21:39:34 | "taint source" : String | Splitting.cs:39:13:39:13 | access to local variable s : String | provenance | | | Splitting.cs:48:13:48:13 | access to local variable s : String | Splitting.cs:50:19:50:19 | access to local variable s | provenance | | | Splitting.cs:48:13:48:13 | access to local variable s : String | Splitting.cs:52:19:52:19 | access to local variable s | provenance | | | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:48:13:48:13 | access to local variable s : String | provenance | | @@ -919,13 +908,9 @@ nodes | MultiImplementationB.cs:5:39:5:39 | access to parameter x | semmle.label | access to parameter x | | Splitting.cs:3:28:3:34 | tainted : String | semmle.label | tainted : String | | Splitting.cs:8:13:8:13 | access to local variable x : String | semmle.label | access to local variable x : String | -| Splitting.cs:8:13:8:13 | access to local variable x : String | semmle.label | access to local variable x : String | -| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | semmle.label | [b (line 3): false] call to method Return : String | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | semmle.label | [b (line 3): true] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | semmle.label | [b (line 3): false] access to parameter tainted : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | semmle.label | [b (line 3): true] access to parameter tainted : String | -| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | semmle.label | [b (line 3): false] access to local variable x | -| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | semmle.label | [b (line 3): true] access to local variable x | +| Splitting.cs:8:17:8:31 | call to method Return : String | semmle.label | call to method Return : String | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | +| Splitting.cs:9:15:9:15 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:11:19:11:19 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:16:26:16:26 | x : String | semmle.label | x : String | | Splitting.cs:16:32:16:32 | access to parameter x : String | semmle.label | access to parameter x : String | @@ -936,20 +921,16 @@ nodes | Splitting.cs:21:21:21:33 | call to method Return | semmle.label | call to method Return | | Splitting.cs:21:28:21:32 | access to parameter value : String | semmle.label | access to parameter value : String | | Splitting.cs:24:28:24:34 | tainted : String | semmle.label | tainted : String | -| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | semmle.label | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | semmle.label | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:31:13:31:13 | access to local variable x : String | semmle.label | access to local variable x : String | +| Splitting.cs:30:17:30:23 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Splitting.cs:31:13:31:13 | access to local variable x : String | semmle.label | access to local variable x : String | -| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | semmle.label | [b (line 24): false] dynamic access to element : String | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | semmle.label | [b (line 24): true] dynamic access to element : String | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | semmle.label | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | semmle.label | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | semmle.label | [b (line 24): false] access to local variable x | -| Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | semmle.label | [b (line 24): true] access to local variable x | +| Splitting.cs:31:17:31:26 | dynamic access to element : String | semmle.label | dynamic access to element : String | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | +| Splitting.cs:32:15:32:15 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:34:19:34:19 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:39:13:39:13 | access to local variable s : String | semmle.label | access to local variable s : String | -| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | semmle.label | [b (line 37): true] "taint source" : String | +| Splitting.cs:39:21:39:34 | "taint source" : String | semmle.label | "taint source" : String | | Splitting.cs:41:19:41:19 | access to local variable s | semmle.label | access to local variable s | +| Splitting.cs:43:19:43:19 | access to local variable s | semmle.label | access to local variable s | | Splitting.cs:48:13:48:13 | access to local variable s : String | semmle.label | access to local variable s : String | | Splitting.cs:48:36:48:49 | "taint source" : String | semmle.label | "taint source" : String | | Splitting.cs:50:19:50:19 | access to local variable s | semmle.label | access to local variable s | @@ -984,17 +965,11 @@ subpaths | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:300:27:300:28 | x0 : String | GlobalDataFlow.cs:300:33:300:34 | access to parameter x0 : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | GlobalDataFlow.cs:81:84:81:84 | access to parameter x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | call to method Return : String | | Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:20:22:20:30 | call to method Return : String | | Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:21:21:21:33 | call to method Return | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:22:20:30 | call to method Return : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:22:20:30 | call to method Return : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:22:20:30 | call to method Return : String | Splitting.cs:31:17:31:26 | dynamic access to element : String | #select -| Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | [b (line 24): false] access to local variable x | -| Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | [b (line 24): true] access to local variable x | -| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | [b (line 3): false] access to local variable x | -| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | [b (line 3): true] access to local variable x | | Capture.cs:246:19:246:25 | access to field Field | Capture.cs:242:19:242:32 | "taint source" : String | Capture.cs:246:19:246:25 | access to field Field | access to field Field | | Capture.cs:251:15:251:21 | access to field Field | Capture.cs:242:19:242:32 | "taint source" : String | Capture.cs:251:15:251:21 | access to field Field | access to field Field | | Capture.cs:251:15:251:21 | access to field Field | Capture.cs:247:23:247:36 | "taint source" : String | Capture.cs:251:15:251:21 | access to field Field | access to field Field | @@ -1016,7 +991,8 @@ subpaths | GlobalDataFlow.cs:533:15:533:21 | access to field field | GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:533:15:533:21 | access to field field | access to field field | | GlobalDataFlow.cs:539:15:539:22 | access to field field | GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:539:15:539:22 | access to field field | access to field field | | GlobalDataFlow.cs:547:15:547:21 | access to field field | GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:547:15:547:21 | access to field field | access to field field | -| Splitting.cs:41:19:41:19 | access to local variable s | Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | access to local variable s | +| Splitting.cs:41:19:41:19 | access to local variable s | Splitting.cs:39:21:39:34 | "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | access to local variable s | +| Splitting.cs:43:19:43:19 | access to local variable s | Splitting.cs:39:21:39:34 | "taint source" : String | Splitting.cs:43:19:43:19 | access to local variable s | access to local variable s | | Splitting.cs:50:19:50:19 | access to local variable s | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:50:19:50:19 | access to local variable s | access to local variable s | | Splitting.cs:52:19:52:19 | access to local variable s | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:52:19:52:19 | access to local variable s | access to local variable s | | GlobalDataFlow.cs:72:15:72:19 | access to local variable sink0 | GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:72:15:72:19 | access to local variable sink0 | access to local variable sink0 | @@ -1068,7 +1044,9 @@ subpaths | Capture.cs:319:19:319:19 | access to local variable x | Capture.cs:318:17:318:30 | "taint source" : String | Capture.cs:319:19:319:19 | access to local variable x | access to local variable x | | Capture.cs:330:47:330:47 | access to local variable x | Capture.cs:328:17:328:30 | "taint source" : String | Capture.cs:330:47:330:47 | access to local variable x | access to local variable x | | Capture.cs:341:45:341:45 | access to local variable x | Capture.cs:339:17:339:30 | "taint source" : String | Capture.cs:341:45:341:45 | access to local variable x | access to local variable x | +| Splitting.cs:9:15:9:15 | access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:9:15:9:15 | access to local variable x | access to local variable x | | Splitting.cs:11:19:11:19 | access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:11:19:11:19 | access to local variable x | access to local variable x | +| Splitting.cs:32:15:32:15 | access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:32:15:32:15 | access to local variable x | access to local variable x | | Splitting.cs:34:19:34:19 | access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:34:19:34:19 | access to local variable x | access to local variable x | | Capture.cs:206:19:206:19 | access to parameter s | Capture.cs:211:21:211:34 | "taint source" : String | Capture.cs:206:19:206:19 | access to parameter s | access to parameter s | | Capture.cs:217:19:217:19 | access to parameter s | Capture.cs:221:21:221:34 | "taint source" : String | Capture.cs:217:19:217:19 | access to parameter s | access to parameter s | diff --git a/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected b/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected index 643b3e813503..db91ca3e73f1 100644 --- a/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected +++ b/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected @@ -184,16 +184,12 @@ | MultiImplementationA.cs:3:7:3:15 | call to constructor Object | normal | MultiImplementationA.cs:3:7:3:15 | call to constructor Object | | MultiImplementationB.cs:1:7:1:15 | call to constructor Object | normal | MultiImplementationB.cs:1:7:1:15 | call to constructor Object | | Splitting.cs:1:7:1:15 | call to constructor Object | normal | Splitting.cs:1:7:1:15 | call to constructor Object | -| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return | normal | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return | normal | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return | +| Splitting.cs:8:17:8:31 | call to method Return | normal | Splitting.cs:8:17:8:31 | call to method Return | | Splitting.cs:20:22:20:30 | call to method Return | normal | Splitting.cs:20:22:20:30 | call to method Return | | Splitting.cs:21:21:21:33 | call to method Return | normal | Splitting.cs:21:21:21:33 | call to method Return | -| Splitting.cs:30:9:30:13 | [b (line 24): false] dynamic access to element | normal | Splitting.cs:30:9:30:13 | [b (line 24): false] dynamic access to element | -| Splitting.cs:30:9:30:13 | [b (line 24): true] dynamic access to element | normal | Splitting.cs:30:9:30:13 | [b (line 24): true] dynamic access to element | -| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | normal | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element | normal | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element | -| Splitting.cs:32:9:32:16 | [b (line 24): false] dynamic call to method Check | normal | Splitting.cs:32:9:32:16 | [b (line 24): false] dynamic call to method Check | -| Splitting.cs:32:9:32:16 | [b (line 24): true] dynamic call to method Check | normal | Splitting.cs:32:9:32:16 | [b (line 24): true] dynamic call to method Check | +| Splitting.cs:30:9:30:13 | dynamic access to element | normal | Splitting.cs:30:9:30:13 | dynamic access to element | +| Splitting.cs:31:17:31:26 | dynamic access to element | normal | Splitting.cs:31:17:31:26 | dynamic access to element | +| Splitting.cs:32:9:32:16 | dynamic call to method Check | normal | Splitting.cs:32:9:32:16 | dynamic call to method Check | | Splitting.cs:34:13:34:20 | dynamic call to method Check | normal | Splitting.cs:34:13:34:20 | dynamic call to method Check | | This.cs:7:5:7:8 | call to constructor Object | normal | This.cs:7:5:7:8 | call to constructor Object | | This.cs:17:9:17:18 | object creation of type This | normal | This.cs:17:9:17:18 | object creation of type This | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTracking.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTracking.expected index 8a68b204e023..aa37485069a7 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTracking.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTracking.expected @@ -94,13 +94,12 @@ | GlobalDataFlowStringBuilder.cs:50:15:50:19 | access to local variable sink3 | | MultiImplementationA.cs:7:39:7:39 | access to parameter x | | MultiImplementationB.cs:5:39:5:39 | access to parameter x | -| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | -| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | +| Splitting.cs:9:15:9:15 | access to local variable x | | Splitting.cs:11:19:11:19 | access to local variable x | | Splitting.cs:21:21:21:33 | call to method Return | -| Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | -| Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | +| Splitting.cs:32:15:32:15 | access to local variable x | | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:41:19:41:19 | access to local variable s | +| Splitting.cs:43:19:43:19 | access to local variable s | | Splitting.cs:50:19:50:19 | access to local variable s | | Splitting.cs:52:19:52:19 | access to local variable s | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected index 8fcf385a4f52..7a6f90e961da 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected @@ -536,17 +536,12 @@ edges | MultiImplementationA.cs:7:27:7:27 | x : String | MultiImplementationA.cs:7:39:7:39 | access to parameter x | provenance | | | MultiImplementationB.cs:3:28:3:41 | "taint source" : String | MultiImplementationB.cs:5:27:5:27 | x : String | provenance | | | MultiImplementationB.cs:5:27:5:27 | x : String | MultiImplementationB.cs:5:39:5:39 | access to parameter x | provenance | | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | provenance | | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | provenance | | -| Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | provenance | | -| Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | provenance | | +| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | access to parameter tainted : String | provenance | | +| Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:9:15:9:15 | access to local variable x | provenance | | | Splitting.cs:8:13:8:13 | access to local variable x : String | Splitting.cs:11:19:11:19 | access to local variable x | provenance | | -| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | Splitting.cs:8:13:8:13 | access to local variable x : String | provenance | | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:8:13:8:13 | access to local variable x : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | provenance | | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:8:17:8:31 | call to method Return : String | Splitting.cs:8:13:8:13 | access to local variable x : String | provenance | | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | Splitting.cs:8:17:8:31 | call to method Return : String | provenance | | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | provenance | | | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:29:20:29 | access to parameter s : String | provenance | | | Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | provenance | | @@ -554,23 +549,17 @@ edges | Splitting.cs:21:9:21:11 | value : String | Splitting.cs:21:28:21:32 | access to parameter value : String | provenance | | | Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | provenance | | | Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:21:21:21:33 | call to method Return | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | provenance | | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | provenance | | -| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | -| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | -| Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | provenance | | -| Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | access to parameter tainted : String | provenance | | +| Splitting.cs:30:17:30:23 | access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | +| Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:32:15:32:15 | access to local variable x | provenance | | | Splitting.cs:31:13:31:13 | access to local variable x : String | Splitting.cs:34:19:34:19 | access to local variable x | provenance | | -| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | Splitting.cs:31:13:31:13 | access to local variable x : String | provenance | | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:31:13:31:13 | access to local variable x : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | provenance | | +| Splitting.cs:31:17:31:26 | dynamic access to element : String | Splitting.cs:31:13:31:13 | access to local variable x : String | provenance | | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | Splitting.cs:31:17:31:26 | dynamic access to element : String | provenance | | | Splitting.cs:39:13:39:13 | access to local variable s : String | Splitting.cs:41:19:41:19 | access to local variable s | provenance | | -| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:39:13:39:13 | access to local variable s : String | provenance | | +| Splitting.cs:39:13:39:13 | access to local variable s : String | Splitting.cs:43:19:43:19 | access to local variable s | provenance | | +| Splitting.cs:39:21:39:34 | "taint source" : String | Splitting.cs:39:13:39:13 | access to local variable s : String | provenance | | | Splitting.cs:48:13:48:13 | access to local variable s : String | Splitting.cs:50:19:50:19 | access to local variable s | provenance | | | Splitting.cs:48:13:48:13 | access to local variable s : String | Splitting.cs:52:19:52:19 | access to local variable s | provenance | | | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:48:13:48:13 | access to local variable s : String | provenance | | @@ -1056,13 +1045,9 @@ nodes | MultiImplementationB.cs:5:39:5:39 | access to parameter x | semmle.label | access to parameter x | | Splitting.cs:3:28:3:34 | tainted : String | semmle.label | tainted : String | | Splitting.cs:8:13:8:13 | access to local variable x : String | semmle.label | access to local variable x : String | -| Splitting.cs:8:13:8:13 | access to local variable x : String | semmle.label | access to local variable x : String | -| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | semmle.label | [b (line 3): false] call to method Return : String | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | semmle.label | [b (line 3): true] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | semmle.label | [b (line 3): false] access to parameter tainted : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | semmle.label | [b (line 3): true] access to parameter tainted : String | -| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | semmle.label | [b (line 3): false] access to local variable x | -| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | semmle.label | [b (line 3): true] access to local variable x | +| Splitting.cs:8:17:8:31 | call to method Return : String | semmle.label | call to method Return : String | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | +| Splitting.cs:9:15:9:15 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:11:19:11:19 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:16:26:16:26 | x : String | semmle.label | x : String | | Splitting.cs:16:32:16:32 | access to parameter x : String | semmle.label | access to parameter x : String | @@ -1073,20 +1058,16 @@ nodes | Splitting.cs:21:21:21:33 | call to method Return | semmle.label | call to method Return | | Splitting.cs:21:28:21:32 | access to parameter value : String | semmle.label | access to parameter value : String | | Splitting.cs:24:28:24:34 | tainted : String | semmle.label | tainted : String | -| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | semmle.label | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | semmle.label | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:31:13:31:13 | access to local variable x : String | semmle.label | access to local variable x : String | +| Splitting.cs:30:17:30:23 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | | Splitting.cs:31:13:31:13 | access to local variable x : String | semmle.label | access to local variable x : String | -| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | semmle.label | [b (line 24): false] dynamic access to element : String | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | semmle.label | [b (line 24): true] dynamic access to element : String | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | semmle.label | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | semmle.label | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | semmle.label | [b (line 24): false] access to local variable x | -| Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | semmle.label | [b (line 24): true] access to local variable x | +| Splitting.cs:31:17:31:26 | dynamic access to element : String | semmle.label | dynamic access to element : String | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | semmle.label | access to parameter tainted : String | +| Splitting.cs:32:15:32:15 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:34:19:34:19 | access to local variable x | semmle.label | access to local variable x | | Splitting.cs:39:13:39:13 | access to local variable s : String | semmle.label | access to local variable s : String | -| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | semmle.label | [b (line 37): true] "taint source" : String | +| Splitting.cs:39:21:39:34 | "taint source" : String | semmle.label | "taint source" : String | | Splitting.cs:41:19:41:19 | access to local variable s | semmle.label | access to local variable s | +| Splitting.cs:43:19:43:19 | access to local variable s | semmle.label | access to local variable s | | Splitting.cs:48:13:48:13 | access to local variable s : String | semmle.label | access to local variable s : String | | Splitting.cs:48:36:48:49 | "taint source" : String | semmle.label | "taint source" : String | | Splitting.cs:50:19:50:19 | access to local variable s | semmle.label | access to local variable s | @@ -1127,12 +1108,10 @@ subpaths | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | GlobalDataFlow.cs:81:84:81:84 | access to parameter x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | | GlobalDataFlowStringBuilder.cs:30:35:30:48 | "taint source" : String | GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | GlobalDataFlowStringBuilder.cs:17:53:17:54 | sb [Return] : StringBuilder | GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | | GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | GlobalDataFlowStringBuilder.cs:22:65:22:66 | sb [Return] : StringBuilder | GlobalDataFlowStringBuilder.cs:48:43:48:44 | [post] access to local variable sb : StringBuilder | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | +| Splitting.cs:8:24:8:30 | access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | call to method Return : String | | Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:20:22:20:30 | call to method Return : String | | Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:21:21:21:33 | call to method Return | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:22:20:30 | call to method Return : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:22:20:30 | call to method Return : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | +| Splitting.cs:31:19:31:25 | access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:22:20:30 | call to method Return : String | Splitting.cs:31:17:31:26 | dynamic access to element : String | #select | Capture.cs:12:19:12:24 | access to local variable sink27 | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:12:19:12:24 | access to local variable sink27 | access to local variable sink27 | | Capture.cs:21:23:21:28 | access to local variable sink28 | Capture.cs:7:20:7:26 | tainted : String | Capture.cs:21:23:21:28 | access to local variable sink28 | access to local variable sink28 | @@ -1235,13 +1214,12 @@ subpaths | GlobalDataFlowStringBuilder.cs:50:15:50:19 | access to local variable sink3 | GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:50:15:50:19 | access to local variable sink3 | access to local variable sink3 | | MultiImplementationA.cs:7:39:7:39 | access to parameter x | MultiImplementationA.cs:5:28:5:41 | "taint source" : String | MultiImplementationA.cs:7:39:7:39 | access to parameter x | access to parameter x | | MultiImplementationB.cs:5:39:5:39 | access to parameter x | MultiImplementationB.cs:3:28:3:41 | "taint source" : String | MultiImplementationB.cs:5:39:5:39 | access to parameter x | access to parameter x | -| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | [b (line 3): false] access to local variable x | -| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | [b (line 3): true] access to local variable x | +| Splitting.cs:9:15:9:15 | access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:9:15:9:15 | access to local variable x | access to local variable x | | Splitting.cs:11:19:11:19 | access to local variable x | Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:11:19:11:19 | access to local variable x | access to local variable x | | Splitting.cs:21:21:21:33 | call to method Return | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:21:21:21:33 | call to method Return | call to method Return | -| Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | [b (line 24): false] access to local variable x | -| Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | [b (line 24): true] access to local variable x | +| Splitting.cs:32:15:32:15 | access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:32:15:32:15 | access to local variable x | access to local variable x | | Splitting.cs:34:19:34:19 | access to local variable x | Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:34:19:34:19 | access to local variable x | access to local variable x | -| Splitting.cs:41:19:41:19 | access to local variable s | Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | access to local variable s | +| Splitting.cs:41:19:41:19 | access to local variable s | Splitting.cs:39:21:39:34 | "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | access to local variable s | +| Splitting.cs:43:19:43:19 | access to local variable s | Splitting.cs:39:21:39:34 | "taint source" : String | Splitting.cs:43:19:43:19 | access to local variable s | access to local variable s | | Splitting.cs:50:19:50:19 | access to local variable s | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:50:19:50:19 | access to local variable s | access to local variable s | | Splitting.cs:52:19:52:19 | access to local variable s | Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:52:19:52:19 | access to local variable s | access to local variable s | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 36e23003fcc2..8ffcd84e54ba 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -3715,7 +3715,6 @@ summary | Newtonsoft.Json.Linq;JObject;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | Newtonsoft.Json.Linq;JObject;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | Newtonsoft.Json.Linq;JObject;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);Argument[1];Argument[this].Element;value;manual | -| Newtonsoft.Json.Linq;JPropertyDescriptor;GetValue;(System.Object);Argument[0];ReturnValue;taint;dfc-generated | | Newtonsoft.Json.Linq;JPropertyDescriptor;ResetValue;(System.Object);Argument[this];Argument[0];taint;df-generated | | Newtonsoft.Json.Linq;JPropertyDescriptor;SetValue;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | | Newtonsoft.Json.Linq;JPropertyDescriptor;SetValue;(System.Object,System.Object);Argument[1];Argument[0];taint;df-generated | @@ -9085,7 +9084,6 @@ summary | System.ComponentModel;PropertyDescriptor;FillAttributes;(System.Collections.IList);Argument[this];Argument[0].Element;taint;df-generated | | System.ComponentModel;PropertyDescriptor;GetEditor;(System.Type);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;PropertyDescriptor;GetInvocationTarget;(System.Type,System.Object);Argument[1];ReturnValue;value;dfc-generated | -| System.ComponentModel;PropertyDescriptor;GetValue;(System.Object);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel;PropertyDescriptor;RemoveValueChanged;(System.Object,System.EventHandler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;ResetValue;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.ComponentModel;PropertyDescriptor;SetValue;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | @@ -25715,6 +25713,7 @@ neutral | Newtonsoft.Json.Linq;JObject;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);summary;df-generated | | Newtonsoft.Json.Linq;JObject;remove_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);summary;df-generated | | Newtonsoft.Json.Linq;JPropertyDescriptor;CanResetValue;(System.Object);summary;df-generated | +| Newtonsoft.Json.Linq;JPropertyDescriptor;GetValue;(System.Object);summary;manual | | Newtonsoft.Json.Linq;JPropertyDescriptor;ShouldSerializeValue;(System.Object);summary;df-generated | | Newtonsoft.Json.Linq;JPropertyDescriptor;get_ComponentType;();summary;df-generated | | Newtonsoft.Json.Linq;JPropertyDescriptor;get_IsReadOnly;();summary;df-generated | @@ -28812,6 +28811,7 @@ neutral | System.ComponentModel;PropertyDescriptor;GetChildProperties;(System.Object,System.Attribute[]);summary;df-generated | | System.ComponentModel;PropertyDescriptor;GetHashCode;();summary;df-generated | | System.ComponentModel;PropertyDescriptor;GetTypeFromName;(System.String);summary;df-generated | +| System.ComponentModel;PropertyDescriptor;GetValue;(System.Object);summary;manual | | System.ComponentModel;PropertyDescriptor;GetValueChangedHandler;(System.Object);summary;df-generated | | System.ComponentModel;PropertyDescriptor;OnValueChanged;(System.Object,System.EventArgs);summary;df-generated | | System.ComponentModel;PropertyDescriptor;PropertyDescriptor;(System.ComponentModel.MemberDescriptor);summary;df-generated | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index 25ac85e95485..c885864a31ee 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -6727,7 +6727,6 @@ | System.ComponentModel;PropertyChangingEventHandler;BeginInvoke;(System.Object,System.ComponentModel.PropertyChangingEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;AddValueChanged;(System.Object,System.EventHandler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;GetEditor;(System.Type);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;PropertyDescriptor;GetValue;(System.Object);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel;PropertyDescriptor;RemoveValueChanged;(System.Object,System.EventHandler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;PropertyDescriptor;ResetValue;(System.Object);Argument[this];Argument[0];taint;df-generated | | System.ComponentModel;PropertyDescriptor;SetValue;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | diff --git a/csharp/ql/test/library-tests/dataflow/local/DataFlow.expected b/csharp/ql/test/library-tests/dataflow/local/DataFlow.expected index 005d84b1c97f..ed80fa1e8b3b 100644 --- a/csharp/ql/test/library-tests/dataflow/local/DataFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/local/DataFlow.expected @@ -13,7 +13,9 @@ | SSA.cs:98:15:98:22 | access to local variable ssaSink4 | | SSA.cs:124:15:124:34 | access to field SsaFieldSink1 | | SSA.cs:180:15:180:22 | access to local variable ssaSink5 | -| Splitting.cs:8:19:8:19 | [b (line 3): true] access to local variable x | -| Splitting.cs:12:15:12:15 | [b (line 3): false] access to local variable x | -| Splitting.cs:25:15:25:15 | [b (line 17): true] access to local variable x | +| Splitting.cs:8:19:8:19 | access to local variable x | +| Splitting.cs:12:15:12:15 | access to local variable x | +| Splitting.cs:14:19:14:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | access to local variable x | | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:29:19:29:19 | access to local variable x | diff --git a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 7dc5e3e46360..6bf236135a20 100644 --- a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -50,32 +50,24 @@ | LocalDataFlow.cs:76:13:76:17 | access to local variable sink6 | LocalDataFlow.cs:76:13:76:27 | SSA def(sink6) | | LocalDataFlow.cs:76:13:76:27 | SSA def(sink6) | LocalDataFlow.cs:77:15:77:19 | access to local variable sink6 | | LocalDataFlow.cs:76:22:76:26 | access to local variable sink5 | LocalDataFlow.cs:76:13:76:17 | access to local variable sink6 | -| LocalDataFlow.cs:77:15:77:19 | [post] access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | [b (line 48): false] access to local variable sink6 | -| LocalDataFlow.cs:77:15:77:19 | access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | [b (line 48): false] access to local variable sink6 | +| LocalDataFlow.cs:77:15:77:19 | [post] access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | access to local variable sink6 | +| LocalDataFlow.cs:77:15:77:19 | access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | access to local variable sink6 | | LocalDataFlow.cs:80:9:80:16 | access to local variable nonSink0 | LocalDataFlow.cs:80:9:80:29 | SSA def(nonSink0) | | LocalDataFlow.cs:80:9:80:29 | SSA def(nonSink0) | LocalDataFlow.cs:81:15:81:22 | access to local variable nonSink0 | | LocalDataFlow.cs:80:21:80:28 | access to local variable nonSink0 | LocalDataFlow.cs:80:9:80:16 | access to local variable nonSink0 | -| LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | LocalDataFlow.cs:84:13:84:35 | [b (line 48): false] SSA def(sink7) | -| LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | LocalDataFlow.cs:84:13:84:35 | [b (line 48): true] SSA def(sink7) | -| LocalDataFlow.cs:84:13:84:35 | [b (line 48): false] SSA def(sink7) | LocalDataFlow.cs:85:15:85:19 | [b (line 48): false] access to local variable sink7 | -| LocalDataFlow.cs:84:13:84:35 | [b (line 48): true] SSA def(sink7) | LocalDataFlow.cs:85:15:85:19 | [b (line 48): true] access to local variable sink7 | -| LocalDataFlow.cs:84:21:84:21 | access to parameter b | LocalDataFlow.cs:88:20:88:20 | [b (line 48): false] access to parameter b | -| LocalDataFlow.cs:84:21:84:21 | access to parameter b | LocalDataFlow.cs:88:20:88:20 | [b (line 48): true] access to parameter b | -| LocalDataFlow.cs:84:21:84:35 | [b (line 48): false] ... ? ... : ... | LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | -| LocalDataFlow.cs:84:21:84:35 | [b (line 48): true] ... ? ... : ... | LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | -| LocalDataFlow.cs:84:25:84:27 | [b (line 48): true] "a" | LocalDataFlow.cs:84:21:84:35 | [b (line 48): true] ... ? ... : ... | -| LocalDataFlow.cs:84:31:84:35 | [b (line 48): false] access to local variable sink6 | LocalDataFlow.cs:84:21:84:35 | [b (line 48): false] ... ? ... : ... | -| LocalDataFlow.cs:85:15:85:19 | [b (line 48): false] access to local variable sink7 | LocalDataFlow.cs:88:32:88:36 | [input] SSA phi(sink7) | -| LocalDataFlow.cs:85:15:85:19 | [b (line 48): true] access to local variable sink7 | LocalDataFlow.cs:88:24:88:28 | [input] SSA phi(sink7) | -| LocalDataFlow.cs:85:15:85:19 | [post] [b (line 48): false] access to local variable sink7 | LocalDataFlow.cs:88:32:88:36 | [input] SSA phi(sink7) | -| LocalDataFlow.cs:85:15:85:19 | [post] [b (line 48): true] access to local variable sink7 | LocalDataFlow.cs:88:24:88:28 | [input] SSA phi(sink7) | +| LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | LocalDataFlow.cs:84:13:84:35 | SSA def(sink7) | +| LocalDataFlow.cs:84:13:84:35 | SSA def(sink7) | LocalDataFlow.cs:85:15:85:19 | access to local variable sink7 | +| LocalDataFlow.cs:84:21:84:21 | access to parameter b | LocalDataFlow.cs:88:20:88:20 | access to parameter b | +| LocalDataFlow.cs:84:21:84:35 | ... ? ... : ... | LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | +| LocalDataFlow.cs:84:25:84:27 | "a" | LocalDataFlow.cs:84:21:84:35 | ... ? ... : ... | +| LocalDataFlow.cs:84:31:84:35 | access to local variable sink6 | LocalDataFlow.cs:84:21:84:35 | ... ? ... : ... | +| LocalDataFlow.cs:85:15:85:19 | [post] access to local variable sink7 | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | +| LocalDataFlow.cs:85:15:85:19 | access to local variable sink7 | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | | LocalDataFlow.cs:88:9:88:16 | access to local variable nonSink0 | LocalDataFlow.cs:88:9:88:36 | SSA def(nonSink0) | | LocalDataFlow.cs:88:9:88:36 | SSA def(nonSink0) | LocalDataFlow.cs:89:15:89:22 | access to local variable nonSink0 | | LocalDataFlow.cs:88:20:88:36 | ... ? ... : ... | LocalDataFlow.cs:88:9:88:16 | access to local variable nonSink0 | | LocalDataFlow.cs:88:24:88:28 | "abc" | LocalDataFlow.cs:88:20:88:36 | ... ? ... : ... | -| LocalDataFlow.cs:88:24:88:28 | [input] SSA phi(sink7) | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | | LocalDataFlow.cs:88:32:88:36 | "def" | LocalDataFlow.cs:88:20:88:36 | ... ? ... : ... | -| LocalDataFlow.cs:88:32:88:36 | [input] SSA phi(sink7) | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | | LocalDataFlow.cs:89:15:89:22 | [post] access to local variable nonSink0 | LocalDataFlow.cs:96:32:96:39 | access to local variable nonSink0 | | LocalDataFlow.cs:89:15:89:22 | access to local variable nonSink0 | LocalDataFlow.cs:96:32:96:39 | access to local variable nonSink0 | | LocalDataFlow.cs:92:13:92:17 | access to local variable sink8 | LocalDataFlow.cs:92:13:92:33 | SSA def(sink8) | @@ -930,115 +922,85 @@ | Splitting.cs:3:28:3:34 | SSA param(tainted) | Splitting.cs:5:17:5:23 | access to parameter tainted | | Splitting.cs:3:28:3:34 | tainted | Splitting.cs:3:28:3:34 | SSA param(tainted) | | Splitting.cs:5:13:5:13 | access to local variable x | Splitting.cs:5:13:5:23 | SSA def(x) | -| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:8:19:8:19 | [b (line 3): true] access to local variable x | -| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:12:15:12:15 | [b (line 3): false] access to local variable x | +| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:6:13:6:13 | [input] SSA phi read(x) | +| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:8:19:8:19 | access to local variable x | | Splitting.cs:5:17:5:23 | access to parameter tainted | Splitting.cs:5:13:5:13 | access to local variable x | -| Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | [b (line 3): false] access to parameter b | -| Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | [b (line 3): true] access to parameter b | -| Splitting.cs:8:19:8:19 | [b (line 3): true] access to local variable x | Splitting.cs:9:17:9:17 | [b (line 3): true] access to local variable x | -| Splitting.cs:8:19:8:19 | [post] [b (line 3): true] access to local variable x | Splitting.cs:9:17:9:17 | [b (line 3): true] access to local variable x | -| Splitting.cs:9:17:9:17 | [b (line 3): true] access to local variable x | Splitting.cs:12:15:12:15 | [b (line 3): true] access to local variable x | -| Splitting.cs:12:15:12:15 | [b (line 3): true] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | -| Splitting.cs:12:15:12:15 | [post] [b (line 3): true] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | +| Splitting.cs:6:13:6:13 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | +| Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | access to parameter b | +| Splitting.cs:8:19:8:19 | [post] access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | +| Splitting.cs:8:19:8:19 | access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | +| Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | +| Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | +| Splitting.cs:12:15:12:15 | [post] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | +| Splitting.cs:12:15:12:15 | access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | | Splitting.cs:17:18:17:18 | SSA param(b) | Splitting.cs:20:13:20:13 | access to parameter b | | Splitting.cs:17:18:17:18 | b | Splitting.cs:17:18:17:18 | SSA param(b) | | Splitting.cs:19:13:19:13 | access to local variable x | Splitting.cs:19:13:19:18 | SSA def(x) | -| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:22:19:22:19 | [b (line 17): true] access to local variable x | -| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:25:15:25:15 | [b (line 17): false] access to local variable x | +| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:20:13:20:13 | [input] SSA phi(x) | +| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:22:19:22:19 | access to local variable x | | Splitting.cs:19:17:19:18 | "" | Splitting.cs:19:13:19:13 | access to local variable x | -| Splitting.cs:20:13:20:13 | access to parameter b | Splitting.cs:26:13:26:13 | [b (line 17): false] access to parameter b | -| Splitting.cs:20:13:20:13 | access to parameter b | Splitting.cs:26:13:26:13 | [b (line 17): true] access to parameter b | -| Splitting.cs:23:13:23:13 | access to local variable x | Splitting.cs:23:13:23:30 | [b (line 17): true] SSA def(x) | -| Splitting.cs:23:13:23:30 | [b (line 17): true] SSA def(x) | Splitting.cs:25:15:25:15 | [b (line 17): true] access to local variable x | -| Splitting.cs:23:17:23:30 | [b (line 17): true] "taint source" | Splitting.cs:23:13:23:13 | access to local variable x | -| Splitting.cs:25:15:25:15 | [b (line 17): false] access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | -| Splitting.cs:25:15:25:15 | [b (line 17): true] access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | -| Splitting.cs:25:15:25:15 | [post] [b (line 17): false] access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | -| Splitting.cs:25:15:25:15 | [post] [b (line 17): true] access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:20:13:20:13 | [input] SSA phi(x) | Splitting.cs:25:15:25:15 | access to local variable x | +| Splitting.cs:20:13:20:13 | access to parameter b | Splitting.cs:26:13:26:13 | access to parameter b | +| Splitting.cs:23:13:23:13 | access to local variable x | Splitting.cs:23:13:23:30 | SSA def(x) | +| Splitting.cs:23:13:23:30 | SSA def(x) | Splitting.cs:25:15:25:15 | access to local variable x | +| Splitting.cs:23:17:23:30 | "taint source" | Splitting.cs:23:13:23:13 | access to local variable x | +| Splitting.cs:25:15:25:15 | [post] access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | [post] access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | | Splitting.cs:32:18:32:18 | SSA param(b) | Splitting.cs:35:13:35:13 | access to parameter b | | Splitting.cs:32:18:32:18 | b | Splitting.cs:32:18:32:18 | SSA param(b) | | Splitting.cs:34:17:34:18 | "" | Splitting.cs:34:13:34:13 | access to local variable x | -| Splitting.cs:35:13:35:13 | access to parameter b | Splitting.cs:39:15:39:15 | [b (line 32): false] access to parameter b | -| Splitting.cs:35:13:35:13 | access to parameter b | Splitting.cs:39:15:39:15 | [b (line 32): true] access to parameter b | -| Splitting.cs:36:17:36:19 | [b (line 32): true] "a" | Splitting.cs:36:13:36:13 | access to local variable x | -| Splitting.cs:37:9:37:9 | access to local variable x | Splitting.cs:37:9:37:15 | [b (line 32): false] SSA def(x) | -| Splitting.cs:37:9:37:9 | access to local variable x | Splitting.cs:37:9:37:15 | [b (line 32): true] SSA def(x) | -| Splitting.cs:37:9:37:15 | [b (line 32): false] SSA def(x) | Splitting.cs:38:15:38:15 | [b (line 32): false] access to local variable x | -| Splitting.cs:37:9:37:15 | [b (line 32): true] SSA def(x) | Splitting.cs:38:15:38:15 | [b (line 32): true] access to local variable x | -| Splitting.cs:37:13:37:15 | [b (line 32): false] "b" | Splitting.cs:37:9:37:9 | access to local variable x | -| Splitting.cs:37:13:37:15 | [b (line 32): true] "b" | Splitting.cs:37:9:37:9 | access to local variable x | -| Splitting.cs:38:15:38:15 | [b (line 32): false] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): false] access to local variable x | -| Splitting.cs:38:15:38:15 | [b (line 32): true] access to local variable x | Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | -| Splitting.cs:38:15:38:15 | [post] [b (line 32): false] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): false] access to local variable x | -| Splitting.cs:38:15:38:15 | [post] [b (line 32): true] access to local variable x | Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | -| Splitting.cs:39:15:39:15 | [b (line 32): false] access to parameter b | Splitting.cs:42:13:42:13 | [b (line 32): false] access to parameter b | -| Splitting.cs:39:15:39:15 | [b (line 32): true] access to parameter b | Splitting.cs:42:13:42:13 | [b (line 32): true] access to parameter b | -| Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | Splitting.cs:39:15:39:25 | [b (line 32): true] ... ? ... : ... | -| Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): true] access to local variable x | -| Splitting.cs:39:19:39:19 | [post] [b (line 32): true] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): true] access to local variable x | -| Splitting.cs:39:23:39:25 | [b (line 32): false] "c" | Splitting.cs:39:15:39:25 | [b (line 32): false] ... ? ... : ... | -| Splitting.cs:40:23:40:23 | [b (line 32): false] access to local variable x | Splitting.cs:40:15:40:23 | [b (line 32): false] (...) ... | -| Splitting.cs:40:23:40:23 | [b (line 32): true] access to local variable x | Splitting.cs:40:15:40:23 | [b (line 32): true] (...) ... | -| Splitting.cs:41:19:41:21 | [b (line 32): false] "d" | Splitting.cs:41:15:41:15 | access to local variable x | -| Splitting.cs:41:19:41:21 | [b (line 32): false] "d" | Splitting.cs:41:15:41:21 | [b (line 32): false] ... = ... | -| Splitting.cs:41:19:41:21 | [b (line 32): true] "d" | Splitting.cs:41:15:41:15 | access to local variable x | -| Splitting.cs:41:19:41:21 | [b (line 32): true] "d" | Splitting.cs:41:15:41:21 | [b (line 32): true] ... = ... | +| Splitting.cs:35:13:35:13 | access to parameter b | Splitting.cs:39:15:39:15 | access to parameter b | +| Splitting.cs:36:17:36:19 | "a" | Splitting.cs:36:13:36:13 | access to local variable x | +| Splitting.cs:37:9:37:9 | access to local variable x | Splitting.cs:37:9:37:15 | SSA def(x) | +| Splitting.cs:37:9:37:15 | SSA def(x) | Splitting.cs:38:15:38:15 | access to local variable x | +| Splitting.cs:37:13:37:15 | "b" | Splitting.cs:37:9:37:9 | access to local variable x | +| Splitting.cs:38:15:38:15 | [post] access to local variable x | Splitting.cs:39:19:39:19 | access to local variable x | +| Splitting.cs:38:15:38:15 | [post] access to local variable x | Splitting.cs:39:23:39:25 | [input] SSA phi read(x) | +| Splitting.cs:38:15:38:15 | access to local variable x | Splitting.cs:39:19:39:19 | access to local variable x | +| Splitting.cs:38:15:38:15 | access to local variable x | Splitting.cs:39:23:39:25 | [input] SSA phi read(x) | +| Splitting.cs:39:15:39:15 | access to parameter b | Splitting.cs:42:13:42:13 | access to parameter b | +| Splitting.cs:39:19:39:19 | [post] access to local variable x | Splitting.cs:40:23:40:23 | access to local variable x | +| Splitting.cs:39:19:39:19 | access to local variable x | Splitting.cs:39:15:39:25 | ... ? ... : ... | +| Splitting.cs:39:19:39:19 | access to local variable x | Splitting.cs:40:23:40:23 | access to local variable x | +| Splitting.cs:39:23:39:25 | "c" | Splitting.cs:39:15:39:25 | ... ? ... : ... | +| Splitting.cs:39:23:39:25 | [input] SSA phi read(x) | Splitting.cs:40:23:40:23 | access to local variable x | +| Splitting.cs:40:23:40:23 | access to local variable x | Splitting.cs:40:15:40:23 | (...) ... | +| Splitting.cs:41:19:41:21 | "d" | Splitting.cs:41:15:41:15 | access to local variable x | +| Splitting.cs:41:19:41:21 | "d" | Splitting.cs:41:15:41:21 | ... = ... | | Splitting.cs:46:18:46:18 | SSA param(b) | Splitting.cs:49:13:49:13 | access to parameter b | | Splitting.cs:46:18:46:18 | b | Splitting.cs:46:18:46:18 | SSA param(b) | | Splitting.cs:48:13:48:13 | access to local variable x | Splitting.cs:48:13:48:18 | SSA def(x) | -| Splitting.cs:48:13:48:18 | SSA def(x) | Splitting.cs:53:13:53:13 | [b (line 46): false] access to local variable x | +| Splitting.cs:48:13:48:18 | SSA def(x) | Splitting.cs:53:13:53:13 | access to local variable x | | Splitting.cs:48:17:48:18 | "" | Splitting.cs:48:13:48:13 | access to local variable x | -| Splitting.cs:49:13:49:13 | access to parameter b | Splitting.cs:60:13:60:13 | [b (line 46): false] access to parameter b | -| Splitting.cs:49:13:49:13 | access to parameter b | Splitting.cs:60:13:60:13 | [b (line 46): true] access to parameter b | -| Splitting.cs:50:13:50:13 | access to local variable x | Splitting.cs:50:13:50:21 | [b (line 46): true] SSA def(x) | -| Splitting.cs:50:13:50:21 | [b (line 46): true] SSA def(x) | Splitting.cs:53:13:53:13 | [b (line 46): true] access to local variable x | -| Splitting.cs:50:17:50:21 | [b (line 46): true] "abc" | Splitting.cs:50:13:50:13 | access to local variable x | -| Splitting.cs:51:13:51:13 | access to local variable y | Splitting.cs:51:13:51:36 | [b (line 46): false] SSA def(y) | -| Splitting.cs:51:13:51:13 | access to local variable y | Splitting.cs:51:13:51:36 | [b (line 46): true] SSA def(y) | -| Splitting.cs:51:13:51:36 | [b (line 46): false] SSA def(y) | Splitting.cs:52:9:52:9 | [b (line 46): false] access to local variable y | -| Splitting.cs:51:13:51:36 | [b (line 46): true] SSA def(y) | Splitting.cs:52:9:52:9 | [b (line 46): true] access to local variable y | -| Splitting.cs:51:17:51:36 | [b (line 46): false] array creation of type String[] | Splitting.cs:51:13:51:13 | access to local variable y | -| Splitting.cs:51:17:51:36 | [b (line 46): true] array creation of type String[] | Splitting.cs:51:13:51:13 | access to local variable y | -| Splitting.cs:51:30:51:36 | [b (line 46): false] { ..., ... } | Splitting.cs:51:17:51:36 | [b (line 46): false] array creation of type String[] | -| Splitting.cs:51:30:51:36 | [b (line 46): true] { ..., ... } | Splitting.cs:51:17:51:36 | [b (line 46): true] array creation of type String[] | -| Splitting.cs:52:9:52:9 | [b (line 46): false] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): false] access to local variable y | -| Splitting.cs:52:9:52:9 | [b (line 46): true] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): true] access to local variable y | -| Splitting.cs:52:9:52:9 | [post] [b (line 46): false] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): false] access to local variable y | -| Splitting.cs:52:9:52:9 | [post] [b (line 46): true] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): true] access to local variable y | -| Splitting.cs:52:16:52:18 | [b (line 46): false] "b" | Splitting.cs:52:9:52:12 | access to array element | -| Splitting.cs:52:16:52:18 | [b (line 46): true] "b" | Splitting.cs:52:9:52:12 | access to array element | -| Splitting.cs:53:9:53:9 | access to local variable x | Splitting.cs:53:9:53:20 | [b (line 46): false] SSA def(x) | -| Splitting.cs:53:9:53:9 | access to local variable x | Splitting.cs:53:9:53:20 | [b (line 46): true] SSA def(x) | -| Splitting.cs:53:9:53:20 | [b (line 46): false] SSA def(x) | Splitting.cs:54:17:54:17 | [b (line 46): false] access to local variable x | -| Splitting.cs:53:9:53:20 | [b (line 46): true] SSA def(x) | Splitting.cs:54:17:54:17 | [b (line 46): true] access to local variable x | -| Splitting.cs:53:13:53:20 | [b (line 46): false] ... + ... | Splitting.cs:53:9:53:9 | access to local variable x | -| Splitting.cs:53:13:53:20 | [b (line 46): true] ... + ... | Splitting.cs:53:9:53:9 | access to local variable x | -| Splitting.cs:53:17:53:17 | [b (line 46): false] access to local variable y | Splitting.cs:57:17:57:17 | [b (line 46): false] access to local variable y | -| Splitting.cs:53:17:53:17 | [b (line 46): true] access to local variable y | Splitting.cs:57:17:57:17 | [b (line 46): true] access to local variable y | -| Splitting.cs:54:13:54:13 | access to local variable z | Splitting.cs:54:13:54:23 | [b (line 46): false] SSA def(z) | -| Splitting.cs:54:13:54:13 | access to local variable z | Splitting.cs:54:13:54:23 | [b (line 46): true] SSA def(z) | -| Splitting.cs:54:13:54:23 | [b (line 46): false] SSA def(z) | Splitting.cs:55:14:55:14 | [b (line 46): false] access to local variable z | -| Splitting.cs:54:13:54:23 | [b (line 46): true] SSA def(z) | Splitting.cs:55:14:55:14 | [b (line 46): true] access to local variable z | -| Splitting.cs:54:17:54:17 | [b (line 46): false] access to local variable x | Splitting.cs:56:17:56:17 | [b (line 46): false] access to local variable x | -| Splitting.cs:54:17:54:17 | [b (line 46): true] access to local variable x | Splitting.cs:56:17:56:17 | [b (line 46): true] access to local variable x | -| Splitting.cs:54:17:54:23 | [b (line 46): false] ... == ... | Splitting.cs:54:13:54:13 | access to local variable z | -| Splitting.cs:54:17:54:23 | [b (line 46): true] ... == ... | Splitting.cs:54:13:54:13 | access to local variable z | -| Splitting.cs:55:13:55:14 | [b (line 46): false] !... | Splitting.cs:55:9:55:9 | access to local variable z | -| Splitting.cs:55:13:55:14 | [b (line 46): true] !... | Splitting.cs:55:9:55:9 | access to local variable z | -| Splitting.cs:56:9:56:9 | access to local variable x | Splitting.cs:56:9:56:19 | [b (line 46): false] SSA def(x) | -| Splitting.cs:56:9:56:9 | access to local variable x | Splitting.cs:56:9:56:19 | [b (line 46): true] SSA def(x) | -| Splitting.cs:56:9:56:19 | [b (line 46): false] SSA def(x) | Splitting.cs:57:14:57:14 | [b (line 46): false] access to local variable x | -| Splitting.cs:56:9:56:19 | [b (line 46): true] SSA def(x) | Splitting.cs:57:14:57:14 | [b (line 46): true] access to local variable x | -| Splitting.cs:56:13:56:19 | [b (line 46): false] $"..." | Splitting.cs:56:9:56:9 | access to local variable x | -| Splitting.cs:56:13:56:19 | [b (line 46): true] $"..." | Splitting.cs:56:9:56:9 | access to local variable x | -| Splitting.cs:57:13:57:24 | [b (line 46): false] access to field Item1 | Splitting.cs:57:9:57:9 | access to local variable x | -| Splitting.cs:57:13:57:24 | [b (line 46): true] access to field Item1 | Splitting.cs:57:9:57:9 | access to local variable x | -| Splitting.cs:57:17:57:17 | [b (line 46): false] access to local variable y | Splitting.cs:58:27:58:27 | [b (line 46): false] access to local variable y | -| Splitting.cs:57:17:57:17 | [b (line 46): true] access to local variable y | Splitting.cs:58:27:58:27 | [b (line 46): true] access to local variable y | -| Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | [b (line 46): false] SSA def(s) | -| Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | [b (line 46): true] SSA def(s) | -| Splitting.cs:58:22:58:22 | [b (line 46): false] SSA def(s) | Splitting.cs:59:19:59:19 | [b (line 46): false] access to local variable s | -| Splitting.cs:58:22:58:22 | [b (line 46): true] SSA def(s) | Splitting.cs:59:19:59:19 | [b (line 46): true] access to local variable s | +| Splitting.cs:49:13:49:13 | access to parameter b | Splitting.cs:60:13:60:13 | access to parameter b | +| Splitting.cs:50:13:50:13 | access to local variable x | Splitting.cs:50:13:50:21 | SSA def(x) | +| Splitting.cs:50:13:50:21 | SSA def(x) | Splitting.cs:53:13:53:13 | access to local variable x | +| Splitting.cs:50:17:50:21 | "abc" | Splitting.cs:50:13:50:13 | access to local variable x | +| Splitting.cs:51:13:51:13 | access to local variable y | Splitting.cs:51:13:51:36 | SSA def(y) | +| Splitting.cs:51:13:51:36 | SSA def(y) | Splitting.cs:52:9:52:9 | access to local variable y | +| Splitting.cs:51:17:51:36 | array creation of type String[] | Splitting.cs:51:13:51:13 | access to local variable y | +| Splitting.cs:51:30:51:36 | { ..., ... } | Splitting.cs:51:17:51:36 | array creation of type String[] | +| Splitting.cs:52:9:52:9 | [post] access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | +| Splitting.cs:52:9:52:9 | access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | +| Splitting.cs:52:16:52:18 | "b" | Splitting.cs:52:9:52:12 | access to array element | +| Splitting.cs:53:9:53:9 | access to local variable x | Splitting.cs:53:9:53:20 | SSA def(x) | +| Splitting.cs:53:9:53:20 | SSA def(x) | Splitting.cs:54:17:54:17 | access to local variable x | +| Splitting.cs:53:13:53:20 | ... + ... | Splitting.cs:53:9:53:9 | access to local variable x | +| Splitting.cs:53:17:53:17 | access to local variable y | Splitting.cs:57:17:57:17 | access to local variable y | +| Splitting.cs:54:13:54:13 | access to local variable z | Splitting.cs:54:13:54:23 | SSA def(z) | +| Splitting.cs:54:13:54:23 | SSA def(z) | Splitting.cs:55:14:55:14 | access to local variable z | +| Splitting.cs:54:17:54:17 | access to local variable x | Splitting.cs:56:17:56:17 | access to local variable x | +| Splitting.cs:54:17:54:23 | ... == ... | Splitting.cs:54:13:54:13 | access to local variable z | +| Splitting.cs:55:13:55:14 | !... | Splitting.cs:55:9:55:9 | access to local variable z | +| Splitting.cs:56:9:56:9 | access to local variable x | Splitting.cs:56:9:56:19 | SSA def(x) | +| Splitting.cs:56:9:56:19 | SSA def(x) | Splitting.cs:57:14:57:14 | access to local variable x | +| Splitting.cs:56:13:56:19 | $"..." | Splitting.cs:56:9:56:9 | access to local variable x | +| Splitting.cs:57:13:57:24 | access to field Item1 | Splitting.cs:57:9:57:9 | access to local variable x | +| Splitting.cs:57:17:57:17 | access to local variable y | Splitting.cs:58:27:58:27 | access to local variable y | +| Splitting.cs:58:22:58:22 | SSA def(s) | Splitting.cs:59:19:59:19 | access to local variable s | +| Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | SSA def(s) | | UseUseExplosion.cs:21:10:21:10 | SSA entry def(this.Prop) | UseUseExplosion.cs:24:13:24:16 | access to property Prop | | UseUseExplosion.cs:21:10:21:10 | this | UseUseExplosion.cs:24:13:24:16 | this access | | UseUseExplosion.cs:23:13:23:13 | access to local variable x | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTracking.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTracking.expected index 37988a130665..372d0bfb3e13 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTracking.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTracking.expected @@ -2,7 +2,7 @@ | LocalDataFlow.cs:61:15:61:19 | access to local variable sink1 | | LocalDataFlow.cs:69:15:69:19 | access to local variable sink5 | | LocalDataFlow.cs:77:15:77:19 | access to local variable sink6 | -| LocalDataFlow.cs:85:15:85:19 | [b (line 48): false] access to local variable sink7 | +| LocalDataFlow.cs:85:15:85:19 | access to local variable sink7 | | LocalDataFlow.cs:93:15:93:19 | access to local variable sink8 | | LocalDataFlow.cs:101:15:101:19 | access to local variable sink9 | | LocalDataFlow.cs:109:15:109:20 | access to local variable sink15 | @@ -51,7 +51,9 @@ | SSA.cs:98:15:98:22 | access to local variable ssaSink4 | | SSA.cs:124:15:124:34 | access to field SsaFieldSink1 | | SSA.cs:180:15:180:22 | access to local variable ssaSink5 | -| Splitting.cs:8:19:8:19 | [b (line 3): true] access to local variable x | -| Splitting.cs:12:15:12:15 | [b (line 3): false] access to local variable x | -| Splitting.cs:25:15:25:15 | [b (line 17): true] access to local variable x | +| Splitting.cs:8:19:8:19 | access to local variable x | +| Splitting.cs:12:15:12:15 | access to local variable x | +| Splitting.cs:14:19:14:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | access to local variable x | | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:29:19:29:19 | access to local variable x | diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index 360c0abd82d6..1e9e48f5456d 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -58,32 +58,24 @@ | LocalDataFlow.cs:76:13:76:17 | access to local variable sink6 | LocalDataFlow.cs:76:13:76:27 | SSA def(sink6) | | LocalDataFlow.cs:76:13:76:27 | SSA def(sink6) | LocalDataFlow.cs:77:15:77:19 | access to local variable sink6 | | LocalDataFlow.cs:76:22:76:26 | access to local variable sink5 | LocalDataFlow.cs:76:13:76:17 | access to local variable sink6 | -| LocalDataFlow.cs:77:15:77:19 | [post] access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | [b (line 48): false] access to local variable sink6 | -| LocalDataFlow.cs:77:15:77:19 | access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | [b (line 48): false] access to local variable sink6 | +| LocalDataFlow.cs:77:15:77:19 | [post] access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | access to local variable sink6 | +| LocalDataFlow.cs:77:15:77:19 | access to local variable sink6 | LocalDataFlow.cs:84:31:84:35 | access to local variable sink6 | | LocalDataFlow.cs:80:9:80:16 | access to local variable nonSink0 | LocalDataFlow.cs:80:9:80:29 | SSA def(nonSink0) | | LocalDataFlow.cs:80:9:80:29 | SSA def(nonSink0) | LocalDataFlow.cs:81:15:81:22 | access to local variable nonSink0 | | LocalDataFlow.cs:80:21:80:28 | access to local variable nonSink0 | LocalDataFlow.cs:80:9:80:16 | access to local variable nonSink0 | -| LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | LocalDataFlow.cs:84:13:84:35 | [b (line 48): false] SSA def(sink7) | -| LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | LocalDataFlow.cs:84:13:84:35 | [b (line 48): true] SSA def(sink7) | -| LocalDataFlow.cs:84:13:84:35 | [b (line 48): false] SSA def(sink7) | LocalDataFlow.cs:85:15:85:19 | [b (line 48): false] access to local variable sink7 | -| LocalDataFlow.cs:84:13:84:35 | [b (line 48): true] SSA def(sink7) | LocalDataFlow.cs:85:15:85:19 | [b (line 48): true] access to local variable sink7 | -| LocalDataFlow.cs:84:21:84:21 | access to parameter b | LocalDataFlow.cs:88:20:88:20 | [b (line 48): false] access to parameter b | -| LocalDataFlow.cs:84:21:84:21 | access to parameter b | LocalDataFlow.cs:88:20:88:20 | [b (line 48): true] access to parameter b | -| LocalDataFlow.cs:84:21:84:35 | [b (line 48): false] ... ? ... : ... | LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | -| LocalDataFlow.cs:84:21:84:35 | [b (line 48): true] ... ? ... : ... | LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | -| LocalDataFlow.cs:84:25:84:27 | [b (line 48): true] "a" | LocalDataFlow.cs:84:21:84:35 | [b (line 48): true] ... ? ... : ... | -| LocalDataFlow.cs:84:31:84:35 | [b (line 48): false] access to local variable sink6 | LocalDataFlow.cs:84:21:84:35 | [b (line 48): false] ... ? ... : ... | -| LocalDataFlow.cs:85:15:85:19 | [b (line 48): false] access to local variable sink7 | LocalDataFlow.cs:88:32:88:36 | [input] SSA phi(sink7) | -| LocalDataFlow.cs:85:15:85:19 | [b (line 48): true] access to local variable sink7 | LocalDataFlow.cs:88:24:88:28 | [input] SSA phi(sink7) | -| LocalDataFlow.cs:85:15:85:19 | [post] [b (line 48): false] access to local variable sink7 | LocalDataFlow.cs:88:32:88:36 | [input] SSA phi(sink7) | -| LocalDataFlow.cs:85:15:85:19 | [post] [b (line 48): true] access to local variable sink7 | LocalDataFlow.cs:88:24:88:28 | [input] SSA phi(sink7) | +| LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | LocalDataFlow.cs:84:13:84:35 | SSA def(sink7) | +| LocalDataFlow.cs:84:13:84:35 | SSA def(sink7) | LocalDataFlow.cs:85:15:85:19 | access to local variable sink7 | +| LocalDataFlow.cs:84:21:84:21 | access to parameter b | LocalDataFlow.cs:88:20:88:20 | access to parameter b | +| LocalDataFlow.cs:84:21:84:35 | ... ? ... : ... | LocalDataFlow.cs:84:13:84:17 | access to local variable sink7 | +| LocalDataFlow.cs:84:25:84:27 | "a" | LocalDataFlow.cs:84:21:84:35 | ... ? ... : ... | +| LocalDataFlow.cs:84:31:84:35 | access to local variable sink6 | LocalDataFlow.cs:84:21:84:35 | ... ? ... : ... | +| LocalDataFlow.cs:85:15:85:19 | [post] access to local variable sink7 | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | +| LocalDataFlow.cs:85:15:85:19 | access to local variable sink7 | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | | LocalDataFlow.cs:88:9:88:16 | access to local variable nonSink0 | LocalDataFlow.cs:88:9:88:36 | SSA def(nonSink0) | | LocalDataFlow.cs:88:9:88:36 | SSA def(nonSink0) | LocalDataFlow.cs:89:15:89:22 | access to local variable nonSink0 | | LocalDataFlow.cs:88:20:88:36 | ... ? ... : ... | LocalDataFlow.cs:88:9:88:16 | access to local variable nonSink0 | | LocalDataFlow.cs:88:24:88:28 | "abc" | LocalDataFlow.cs:88:20:88:36 | ... ? ... : ... | -| LocalDataFlow.cs:88:24:88:28 | [input] SSA phi(sink7) | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | | LocalDataFlow.cs:88:32:88:36 | "def" | LocalDataFlow.cs:88:20:88:36 | ... ? ... : ... | -| LocalDataFlow.cs:88:32:88:36 | [input] SSA phi(sink7) | LocalDataFlow.cs:92:29:92:33 | access to local variable sink7 | | LocalDataFlow.cs:89:15:89:22 | [post] access to local variable nonSink0 | LocalDataFlow.cs:96:32:96:39 | access to local variable nonSink0 | | LocalDataFlow.cs:89:15:89:22 | access to local variable nonSink0 | LocalDataFlow.cs:96:32:96:39 | access to local variable nonSink0 | | LocalDataFlow.cs:92:13:92:17 | access to local variable sink8 | LocalDataFlow.cs:92:13:92:33 | SSA def(sink8) | @@ -1060,138 +1052,97 @@ | Splitting.cs:3:28:3:34 | SSA param(tainted) | Splitting.cs:5:17:5:23 | access to parameter tainted | | Splitting.cs:3:28:3:34 | tainted | Splitting.cs:3:28:3:34 | SSA param(tainted) | | Splitting.cs:5:13:5:13 | access to local variable x | Splitting.cs:5:13:5:23 | SSA def(x) | -| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:8:19:8:19 | [b (line 3): true] access to local variable x | -| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:12:15:12:15 | [b (line 3): false] access to local variable x | +| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:6:13:6:13 | [input] SSA phi read(x) | +| Splitting.cs:5:13:5:23 | SSA def(x) | Splitting.cs:8:19:8:19 | access to local variable x | | Splitting.cs:5:17:5:23 | access to parameter tainted | Splitting.cs:5:13:5:13 | access to local variable x | -| Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | [b (line 3): false] access to parameter b | -| Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | [b (line 3): true] access to parameter b | -| Splitting.cs:8:19:8:19 | [b (line 3): true] access to local variable x | Splitting.cs:9:17:9:17 | [b (line 3): true] access to local variable x | -| Splitting.cs:8:19:8:19 | [post] [b (line 3): true] access to local variable x | Splitting.cs:9:17:9:17 | [b (line 3): true] access to local variable x | -| Splitting.cs:9:17:9:17 | [b (line 3): true] access to local variable x | Splitting.cs:9:17:9:25 | [b (line 3): true] ... == ... | -| Splitting.cs:9:17:9:17 | [b (line 3): true] access to local variable x | Splitting.cs:12:15:12:15 | [b (line 3): true] access to local variable x | -| Splitting.cs:12:15:12:15 | [b (line 3): true] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | -| Splitting.cs:12:15:12:15 | [post] [b (line 3): true] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | +| Splitting.cs:6:13:6:13 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | +| Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:13:13:13:13 | access to parameter b | +| Splitting.cs:8:19:8:19 | [post] access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | +| Splitting.cs:8:19:8:19 | access to local variable x | Splitting.cs:9:17:9:17 | access to local variable x | +| Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:9:17:9:25 | ... == ... | +| Splitting.cs:9:17:9:17 | access to local variable x | Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | +| Splitting.cs:9:17:9:25 | [input] SSA phi read(x) | Splitting.cs:12:15:12:15 | access to local variable x | +| Splitting.cs:12:15:12:15 | [post] access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | +| Splitting.cs:12:15:12:15 | access to local variable x | Splitting.cs:14:19:14:19 | access to local variable x | | Splitting.cs:17:18:17:18 | SSA param(b) | Splitting.cs:20:13:20:13 | access to parameter b | | Splitting.cs:17:18:17:18 | b | Splitting.cs:17:18:17:18 | SSA param(b) | | Splitting.cs:19:13:19:13 | access to local variable x | Splitting.cs:19:13:19:18 | SSA def(x) | -| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:22:19:22:19 | [b (line 17): true] access to local variable x | -| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:25:15:25:15 | [b (line 17): false] access to local variable x | +| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:20:13:20:13 | [input] SSA phi(x) | +| Splitting.cs:19:13:19:18 | SSA def(x) | Splitting.cs:22:19:22:19 | access to local variable x | | Splitting.cs:19:17:19:18 | "" | Splitting.cs:19:13:19:13 | access to local variable x | -| Splitting.cs:20:13:20:13 | access to parameter b | Splitting.cs:26:13:26:13 | [b (line 17): false] access to parameter b | -| Splitting.cs:20:13:20:13 | access to parameter b | Splitting.cs:26:13:26:13 | [b (line 17): true] access to parameter b | -| Splitting.cs:23:13:23:13 | access to local variable x | Splitting.cs:23:13:23:30 | [b (line 17): true] SSA def(x) | -| Splitting.cs:23:13:23:30 | [b (line 17): true] SSA def(x) | Splitting.cs:25:15:25:15 | [b (line 17): true] access to local variable x | -| Splitting.cs:23:17:23:30 | [b (line 17): true] "taint source" | Splitting.cs:23:13:23:13 | access to local variable x | -| Splitting.cs:25:15:25:15 | [b (line 17): false] access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | -| Splitting.cs:25:15:25:15 | [b (line 17): true] access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | -| Splitting.cs:25:15:25:15 | [post] [b (line 17): false] access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | -| Splitting.cs:25:15:25:15 | [post] [b (line 17): true] access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:20:13:20:13 | [input] SSA phi(x) | Splitting.cs:25:15:25:15 | access to local variable x | +| Splitting.cs:20:13:20:13 | access to parameter b | Splitting.cs:26:13:26:13 | access to parameter b | +| Splitting.cs:23:13:23:13 | access to local variable x | Splitting.cs:23:13:23:30 | SSA def(x) | +| Splitting.cs:23:13:23:30 | SSA def(x) | Splitting.cs:25:15:25:15 | access to local variable x | +| Splitting.cs:23:17:23:30 | "taint source" | Splitting.cs:23:13:23:13 | access to local variable x | +| Splitting.cs:25:15:25:15 | [post] access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | [post] access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | access to local variable x | Splitting.cs:27:19:27:19 | access to local variable x | +| Splitting.cs:25:15:25:15 | access to local variable x | Splitting.cs:29:19:29:19 | access to local variable x | | Splitting.cs:32:18:32:18 | SSA param(b) | Splitting.cs:35:13:35:13 | access to parameter b | | Splitting.cs:32:18:32:18 | b | Splitting.cs:32:18:32:18 | SSA param(b) | | Splitting.cs:34:17:34:18 | "" | Splitting.cs:34:13:34:13 | access to local variable x | -| Splitting.cs:35:13:35:13 | access to parameter b | Splitting.cs:39:15:39:15 | [b (line 32): false] access to parameter b | -| Splitting.cs:35:13:35:13 | access to parameter b | Splitting.cs:39:15:39:15 | [b (line 32): true] access to parameter b | -| Splitting.cs:36:17:36:19 | [b (line 32): true] "a" | Splitting.cs:36:13:36:13 | access to local variable x | -| Splitting.cs:37:9:37:9 | access to local variable x | Splitting.cs:37:9:37:15 | [b (line 32): false] SSA def(x) | -| Splitting.cs:37:9:37:9 | access to local variable x | Splitting.cs:37:9:37:15 | [b (line 32): true] SSA def(x) | -| Splitting.cs:37:9:37:15 | [b (line 32): false] SSA def(x) | Splitting.cs:38:15:38:15 | [b (line 32): false] access to local variable x | -| Splitting.cs:37:9:37:15 | [b (line 32): true] SSA def(x) | Splitting.cs:38:15:38:15 | [b (line 32): true] access to local variable x | -| Splitting.cs:37:13:37:15 | [b (line 32): false] "b" | Splitting.cs:37:9:37:9 | access to local variable x | -| Splitting.cs:37:13:37:15 | [b (line 32): true] "b" | Splitting.cs:37:9:37:9 | access to local variable x | -| Splitting.cs:38:15:38:15 | [b (line 32): false] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): false] access to local variable x | -| Splitting.cs:38:15:38:15 | [b (line 32): true] access to local variable x | Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | -| Splitting.cs:38:15:38:15 | [post] [b (line 32): false] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): false] access to local variable x | -| Splitting.cs:38:15:38:15 | [post] [b (line 32): true] access to local variable x | Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | -| Splitting.cs:39:15:39:15 | [b (line 32): false] access to parameter b | Splitting.cs:42:13:42:13 | [b (line 32): false] access to parameter b | -| Splitting.cs:39:15:39:15 | [b (line 32): true] access to parameter b | Splitting.cs:42:13:42:13 | [b (line 32): true] access to parameter b | -| Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | Splitting.cs:39:15:39:25 | [b (line 32): true] ... ? ... : ... | -| Splitting.cs:39:19:39:19 | [b (line 32): true] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): true] access to local variable x | -| Splitting.cs:39:19:39:19 | [post] [b (line 32): true] access to local variable x | Splitting.cs:40:23:40:23 | [b (line 32): true] access to local variable x | -| Splitting.cs:39:23:39:25 | [b (line 32): false] "c" | Splitting.cs:39:15:39:25 | [b (line 32): false] ... ? ... : ... | -| Splitting.cs:40:23:40:23 | [b (line 32): false] access to local variable x | Splitting.cs:40:15:40:23 | [b (line 32): false] (...) ... | -| Splitting.cs:40:23:40:23 | [b (line 32): true] access to local variable x | Splitting.cs:40:15:40:23 | [b (line 32): true] (...) ... | -| Splitting.cs:41:19:41:21 | [b (line 32): false] "d" | Splitting.cs:41:15:41:15 | access to local variable x | -| Splitting.cs:41:19:41:21 | [b (line 32): false] "d" | Splitting.cs:41:15:41:21 | [b (line 32): false] ... = ... | -| Splitting.cs:41:19:41:21 | [b (line 32): true] "d" | Splitting.cs:41:15:41:15 | access to local variable x | -| Splitting.cs:41:19:41:21 | [b (line 32): true] "d" | Splitting.cs:41:15:41:21 | [b (line 32): true] ... = ... | +| Splitting.cs:35:13:35:13 | access to parameter b | Splitting.cs:39:15:39:15 | access to parameter b | +| Splitting.cs:36:17:36:19 | "a" | Splitting.cs:36:13:36:13 | access to local variable x | +| Splitting.cs:37:9:37:9 | access to local variable x | Splitting.cs:37:9:37:15 | SSA def(x) | +| Splitting.cs:37:9:37:15 | SSA def(x) | Splitting.cs:38:15:38:15 | access to local variable x | +| Splitting.cs:37:13:37:15 | "b" | Splitting.cs:37:9:37:9 | access to local variable x | +| Splitting.cs:38:15:38:15 | [post] access to local variable x | Splitting.cs:39:19:39:19 | access to local variable x | +| Splitting.cs:38:15:38:15 | [post] access to local variable x | Splitting.cs:39:23:39:25 | [input] SSA phi read(x) | +| Splitting.cs:38:15:38:15 | access to local variable x | Splitting.cs:39:19:39:19 | access to local variable x | +| Splitting.cs:38:15:38:15 | access to local variable x | Splitting.cs:39:23:39:25 | [input] SSA phi read(x) | +| Splitting.cs:39:15:39:15 | access to parameter b | Splitting.cs:42:13:42:13 | access to parameter b | +| Splitting.cs:39:19:39:19 | [post] access to local variable x | Splitting.cs:40:23:40:23 | access to local variable x | +| Splitting.cs:39:19:39:19 | access to local variable x | Splitting.cs:39:15:39:25 | ... ? ... : ... | +| Splitting.cs:39:19:39:19 | access to local variable x | Splitting.cs:40:23:40:23 | access to local variable x | +| Splitting.cs:39:23:39:25 | "c" | Splitting.cs:39:15:39:25 | ... ? ... : ... | +| Splitting.cs:39:23:39:25 | [input] SSA phi read(x) | Splitting.cs:40:23:40:23 | access to local variable x | +| Splitting.cs:40:23:40:23 | access to local variable x | Splitting.cs:40:15:40:23 | (...) ... | +| Splitting.cs:41:19:41:21 | "d" | Splitting.cs:41:15:41:15 | access to local variable x | +| Splitting.cs:41:19:41:21 | "d" | Splitting.cs:41:15:41:21 | ... = ... | | Splitting.cs:46:18:46:18 | SSA param(b) | Splitting.cs:49:13:49:13 | access to parameter b | | Splitting.cs:46:18:46:18 | b | Splitting.cs:46:18:46:18 | SSA param(b) | | Splitting.cs:48:13:48:13 | access to local variable x | Splitting.cs:48:13:48:18 | SSA def(x) | -| Splitting.cs:48:13:48:18 | SSA def(x) | Splitting.cs:53:13:53:13 | [b (line 46): false] access to local variable x | +| Splitting.cs:48:13:48:18 | SSA def(x) | Splitting.cs:53:13:53:13 | access to local variable x | | Splitting.cs:48:17:48:18 | "" | Splitting.cs:48:13:48:13 | access to local variable x | -| Splitting.cs:49:13:49:13 | access to parameter b | Splitting.cs:60:13:60:13 | [b (line 46): false] access to parameter b | -| Splitting.cs:49:13:49:13 | access to parameter b | Splitting.cs:60:13:60:13 | [b (line 46): true] access to parameter b | -| Splitting.cs:50:13:50:13 | access to local variable x | Splitting.cs:50:13:50:21 | [b (line 46): true] SSA def(x) | -| Splitting.cs:50:13:50:21 | [b (line 46): true] SSA def(x) | Splitting.cs:53:13:53:13 | [b (line 46): true] access to local variable x | -| Splitting.cs:50:17:50:21 | [b (line 46): true] "abc" | Splitting.cs:50:13:50:13 | access to local variable x | -| Splitting.cs:51:13:51:13 | access to local variable y | Splitting.cs:51:13:51:36 | [b (line 46): false] SSA def(y) | -| Splitting.cs:51:13:51:13 | access to local variable y | Splitting.cs:51:13:51:36 | [b (line 46): true] SSA def(y) | -| Splitting.cs:51:13:51:36 | [b (line 46): false] SSA def(y) | Splitting.cs:52:9:52:9 | [b (line 46): false] access to local variable y | -| Splitting.cs:51:13:51:36 | [b (line 46): true] SSA def(y) | Splitting.cs:52:9:52:9 | [b (line 46): true] access to local variable y | -| Splitting.cs:51:17:51:36 | [b (line 46): false] array creation of type String[] | Splitting.cs:51:13:51:13 | access to local variable y | -| Splitting.cs:51:17:51:36 | [b (line 46): true] array creation of type String[] | Splitting.cs:51:13:51:13 | access to local variable y | -| Splitting.cs:51:30:51:36 | [b (line 46): false] { ..., ... } | Splitting.cs:51:17:51:36 | [b (line 46): false] array creation of type String[] | -| Splitting.cs:51:30:51:36 | [b (line 46): true] { ..., ... } | Splitting.cs:51:17:51:36 | [b (line 46): true] array creation of type String[] | -| Splitting.cs:51:32:51:34 | [b (line 46): false] "a" | Splitting.cs:51:30:51:36 | [b (line 46): false] { ..., ... } | -| Splitting.cs:51:32:51:34 | [b (line 46): true] "a" | Splitting.cs:51:30:51:36 | [b (line 46): true] { ..., ... } | -| Splitting.cs:52:9:52:9 | [b (line 46): false] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): false] access to local variable y | -| Splitting.cs:52:9:52:9 | [b (line 46): true] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): true] access to local variable y | -| Splitting.cs:52:9:52:9 | [post] [b (line 46): false] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): false] access to local variable y | -| Splitting.cs:52:9:52:9 | [post] [b (line 46): true] access to local variable y | Splitting.cs:53:17:53:17 | [b (line 46): true] access to local variable y | -| Splitting.cs:52:16:52:18 | [b (line 46): false] "b" | Splitting.cs:52:9:52:9 | [post] [b (line 46): false] access to local variable y | -| Splitting.cs:52:16:52:18 | [b (line 46): false] "b" | Splitting.cs:52:9:52:12 | access to array element | -| Splitting.cs:52:16:52:18 | [b (line 46): true] "b" | Splitting.cs:52:9:52:9 | [post] [b (line 46): true] access to local variable y | -| Splitting.cs:52:16:52:18 | [b (line 46): true] "b" | Splitting.cs:52:9:52:12 | access to array element | -| Splitting.cs:53:9:53:9 | access to local variable x | Splitting.cs:53:9:53:20 | [b (line 46): false] SSA def(x) | -| Splitting.cs:53:9:53:9 | access to local variable x | Splitting.cs:53:9:53:20 | [b (line 46): true] SSA def(x) | -| Splitting.cs:53:9:53:20 | [b (line 46): false] SSA def(x) | Splitting.cs:54:17:54:17 | [b (line 46): false] access to local variable x | -| Splitting.cs:53:9:53:20 | [b (line 46): true] SSA def(x) | Splitting.cs:54:17:54:17 | [b (line 46): true] access to local variable x | -| Splitting.cs:53:13:53:13 | [b (line 46): false] access to local variable x | Splitting.cs:53:13:53:20 | [b (line 46): false] ... + ... | -| Splitting.cs:53:13:53:13 | [b (line 46): true] access to local variable x | Splitting.cs:53:13:53:20 | [b (line 46): true] ... + ... | -| Splitting.cs:53:13:53:20 | [b (line 46): false] ... + ... | Splitting.cs:53:9:53:9 | access to local variable x | -| Splitting.cs:53:13:53:20 | [b (line 46): true] ... + ... | Splitting.cs:53:9:53:9 | access to local variable x | -| Splitting.cs:53:17:53:17 | [b (line 46): false] access to local variable y | Splitting.cs:53:17:53:20 | [b (line 46): false] access to array element | -| Splitting.cs:53:17:53:17 | [b (line 46): false] access to local variable y | Splitting.cs:57:17:57:17 | [b (line 46): false] access to local variable y | -| Splitting.cs:53:17:53:17 | [b (line 46): true] access to local variable y | Splitting.cs:53:17:53:20 | [b (line 46): true] access to array element | -| Splitting.cs:53:17:53:17 | [b (line 46): true] access to local variable y | Splitting.cs:57:17:57:17 | [b (line 46): true] access to local variable y | -| Splitting.cs:53:17:53:20 | [b (line 46): false] access to array element | Splitting.cs:53:13:53:20 | [b (line 46): false] ... + ... | -| Splitting.cs:53:17:53:20 | [b (line 46): true] access to array element | Splitting.cs:53:13:53:20 | [b (line 46): true] ... + ... | -| Splitting.cs:54:13:54:13 | access to local variable z | Splitting.cs:54:13:54:23 | [b (line 46): false] SSA def(z) | -| Splitting.cs:54:13:54:13 | access to local variable z | Splitting.cs:54:13:54:23 | [b (line 46): true] SSA def(z) | -| Splitting.cs:54:13:54:23 | [b (line 46): false] SSA def(z) | Splitting.cs:55:14:55:14 | [b (line 46): false] access to local variable z | -| Splitting.cs:54:13:54:23 | [b (line 46): true] SSA def(z) | Splitting.cs:55:14:55:14 | [b (line 46): true] access to local variable z | -| Splitting.cs:54:17:54:17 | [b (line 46): false] access to local variable x | Splitting.cs:54:17:54:23 | [b (line 46): false] ... == ... | -| Splitting.cs:54:17:54:17 | [b (line 46): false] access to local variable x | Splitting.cs:56:17:56:17 | [b (line 46): false] access to local variable x | -| Splitting.cs:54:17:54:17 | [b (line 46): true] access to local variable x | Splitting.cs:54:17:54:23 | [b (line 46): true] ... == ... | -| Splitting.cs:54:17:54:17 | [b (line 46): true] access to local variable x | Splitting.cs:56:17:56:17 | [b (line 46): true] access to local variable x | -| Splitting.cs:54:17:54:23 | [b (line 46): false] ... == ... | Splitting.cs:54:13:54:13 | access to local variable z | -| Splitting.cs:54:17:54:23 | [b (line 46): true] ... == ... | Splitting.cs:54:13:54:13 | access to local variable z | -| Splitting.cs:55:13:55:14 | [b (line 46): false] !... | Splitting.cs:55:9:55:9 | access to local variable z | -| Splitting.cs:55:13:55:14 | [b (line 46): true] !... | Splitting.cs:55:9:55:9 | access to local variable z | -| Splitting.cs:55:14:55:14 | [b (line 46): false] access to local variable z | Splitting.cs:55:13:55:14 | [b (line 46): false] !... | -| Splitting.cs:55:14:55:14 | [b (line 46): true] access to local variable z | Splitting.cs:55:13:55:14 | [b (line 46): true] !... | -| Splitting.cs:56:9:56:9 | access to local variable x | Splitting.cs:56:9:56:19 | [b (line 46): false] SSA def(x) | -| Splitting.cs:56:9:56:9 | access to local variable x | Splitting.cs:56:9:56:19 | [b (line 46): true] SSA def(x) | -| Splitting.cs:56:9:56:19 | [b (line 46): false] SSA def(x) | Splitting.cs:57:14:57:14 | [b (line 46): false] access to local variable x | -| Splitting.cs:56:9:56:19 | [b (line 46): true] SSA def(x) | Splitting.cs:57:14:57:14 | [b (line 46): true] access to local variable x | -| Splitting.cs:56:13:56:19 | [b (line 46): false] $"..." | Splitting.cs:56:9:56:9 | access to local variable x | -| Splitting.cs:56:13:56:19 | [b (line 46): true] $"..." | Splitting.cs:56:9:56:9 | access to local variable x | -| Splitting.cs:56:15:56:15 | [b (line 46): false] "c" | Splitting.cs:56:13:56:19 | [b (line 46): false] $"..." | -| Splitting.cs:56:15:56:15 | [b (line 46): true] "c" | Splitting.cs:56:13:56:19 | [b (line 46): true] $"..." | -| Splitting.cs:56:16:56:18 | [b (line 46): false] {...} | Splitting.cs:56:13:56:19 | [b (line 46): false] $"..." | -| Splitting.cs:56:16:56:18 | [b (line 46): true] {...} | Splitting.cs:56:13:56:19 | [b (line 46): true] $"..." | -| Splitting.cs:56:17:56:17 | [b (line 46): false] access to local variable x | Splitting.cs:56:16:56:18 | [b (line 46): false] {...} | -| Splitting.cs:56:17:56:17 | [b (line 46): true] access to local variable x | Splitting.cs:56:16:56:18 | [b (line 46): true] {...} | -| Splitting.cs:57:13:57:24 | [b (line 46): false] access to field Item1 | Splitting.cs:57:9:57:9 | access to local variable x | -| Splitting.cs:57:13:57:24 | [b (line 46): true] access to field Item1 | Splitting.cs:57:9:57:9 | access to local variable x | -| Splitting.cs:57:17:57:17 | [b (line 46): false] access to local variable y | Splitting.cs:58:27:58:27 | [b (line 46): false] access to local variable y | -| Splitting.cs:57:17:57:17 | [b (line 46): true] access to local variable y | Splitting.cs:58:27:58:27 | [b (line 46): true] access to local variable y | -| Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | [b (line 46): false] SSA def(s) | -| Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | [b (line 46): true] SSA def(s) | -| Splitting.cs:58:22:58:22 | [b (line 46): false] SSA def(s) | Splitting.cs:59:19:59:19 | [b (line 46): false] access to local variable s | -| Splitting.cs:58:22:58:22 | [b (line 46): true] SSA def(s) | Splitting.cs:59:19:59:19 | [b (line 46): true] access to local variable s | -| Splitting.cs:58:27:58:27 | [b (line 46): false] access to local variable y | Splitting.cs:58:22:58:22 | [b (line 46): false] SSA def(s) | -| Splitting.cs:58:27:58:27 | [b (line 46): true] access to local variable y | Splitting.cs:58:22:58:22 | [b (line 46): true] SSA def(s) | +| Splitting.cs:49:13:49:13 | access to parameter b | Splitting.cs:60:13:60:13 | access to parameter b | +| Splitting.cs:50:13:50:13 | access to local variable x | Splitting.cs:50:13:50:21 | SSA def(x) | +| Splitting.cs:50:13:50:21 | SSA def(x) | Splitting.cs:53:13:53:13 | access to local variable x | +| Splitting.cs:50:17:50:21 | "abc" | Splitting.cs:50:13:50:13 | access to local variable x | +| Splitting.cs:51:13:51:13 | access to local variable y | Splitting.cs:51:13:51:36 | SSA def(y) | +| Splitting.cs:51:13:51:36 | SSA def(y) | Splitting.cs:52:9:52:9 | access to local variable y | +| Splitting.cs:51:17:51:36 | array creation of type String[] | Splitting.cs:51:13:51:13 | access to local variable y | +| Splitting.cs:51:30:51:36 | { ..., ... } | Splitting.cs:51:17:51:36 | array creation of type String[] | +| Splitting.cs:51:32:51:34 | "a" | Splitting.cs:51:30:51:36 | { ..., ... } | +| Splitting.cs:52:9:52:9 | [post] access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | +| Splitting.cs:52:9:52:9 | access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | +| Splitting.cs:52:16:52:18 | "b" | Splitting.cs:52:9:52:9 | [post] access to local variable y | +| Splitting.cs:52:16:52:18 | "b" | Splitting.cs:52:9:52:12 | access to array element | +| Splitting.cs:53:9:53:9 | access to local variable x | Splitting.cs:53:9:53:20 | SSA def(x) | +| Splitting.cs:53:9:53:20 | SSA def(x) | Splitting.cs:54:17:54:17 | access to local variable x | +| Splitting.cs:53:13:53:13 | access to local variable x | Splitting.cs:53:13:53:20 | ... + ... | +| Splitting.cs:53:13:53:20 | ... + ... | Splitting.cs:53:9:53:9 | access to local variable x | +| Splitting.cs:53:17:53:17 | access to local variable y | Splitting.cs:53:17:53:20 | access to array element | +| Splitting.cs:53:17:53:17 | access to local variable y | Splitting.cs:57:17:57:17 | access to local variable y | +| Splitting.cs:53:17:53:20 | access to array element | Splitting.cs:53:13:53:20 | ... + ... | +| Splitting.cs:54:13:54:13 | access to local variable z | Splitting.cs:54:13:54:23 | SSA def(z) | +| Splitting.cs:54:13:54:23 | SSA def(z) | Splitting.cs:55:14:55:14 | access to local variable z | +| Splitting.cs:54:17:54:17 | access to local variable x | Splitting.cs:54:17:54:23 | ... == ... | +| Splitting.cs:54:17:54:17 | access to local variable x | Splitting.cs:56:17:56:17 | access to local variable x | +| Splitting.cs:54:17:54:23 | ... == ... | Splitting.cs:54:13:54:13 | access to local variable z | +| Splitting.cs:55:13:55:14 | !... | Splitting.cs:55:9:55:9 | access to local variable z | +| Splitting.cs:55:14:55:14 | access to local variable z | Splitting.cs:55:13:55:14 | !... | +| Splitting.cs:56:9:56:9 | access to local variable x | Splitting.cs:56:9:56:19 | SSA def(x) | +| Splitting.cs:56:9:56:19 | SSA def(x) | Splitting.cs:57:14:57:14 | access to local variable x | +| Splitting.cs:56:13:56:19 | $"..." | Splitting.cs:56:9:56:9 | access to local variable x | +| Splitting.cs:56:15:56:15 | "c" | Splitting.cs:56:13:56:19 | $"..." | +| Splitting.cs:56:16:56:18 | {...} | Splitting.cs:56:13:56:19 | $"..." | +| Splitting.cs:56:17:56:17 | access to local variable x | Splitting.cs:56:16:56:18 | {...} | +| Splitting.cs:57:13:57:24 | access to field Item1 | Splitting.cs:57:9:57:9 | access to local variable x | +| Splitting.cs:57:17:57:17 | access to local variable y | Splitting.cs:58:27:58:27 | access to local variable y | +| Splitting.cs:58:22:58:22 | SSA def(s) | Splitting.cs:59:19:59:19 | access to local variable s | +| Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | SSA def(s) | +| Splitting.cs:58:27:58:27 | access to local variable y | Splitting.cs:58:22:58:22 | SSA def(s) | | UseUseExplosion.cs:21:10:21:10 | SSA entry def(this.Prop) | UseUseExplosion.cs:24:13:24:16 | access to property Prop | | UseUseExplosion.cs:21:10:21:10 | this | UseUseExplosion.cs:24:13:24:16 | this access | | UseUseExplosion.cs:23:13:23:13 | access to local variable x | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected b/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected index eb08a8085222..ac03ba8b8f35 100644 --- a/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected +++ b/csharp/ql/test/library-tests/dataflow/modulusanalysis/ModulusAnalysis.expected @@ -89,26 +89,24 @@ | ModulusAnalysis.cs:47:37:47:38 | 11 | 0 | 11 | 0 | | ModulusAnalysis.cs:48:34:48:34 | access to local variable l | 0 | 1 | 4 | | ModulusAnalysis.cs:48:34:48:34 | access to local variable l | SSA def(l) | 0 | 0 | -| ModulusAnalysis.cs:52:13:52:25 | [cond2 (line 9): true] ... = ... | 0 | 3 | 4 | -| ModulusAnalysis.cs:52:17:52:17 | [cond2 (line 9): true] access to parameter i | SSA param(i) | 0 | 0 | -| ModulusAnalysis.cs:52:17:52:21 | [cond2 (line 9): true] ... * ... | 0 | 0 | 4 | -| ModulusAnalysis.cs:52:17:52:25 | [cond2 (line 9): true] ... + ... | 0 | 3 | 4 | -| ModulusAnalysis.cs:52:21:52:21 | [cond2 (line 9): true] 4 | 0 | 4 | 0 | -| ModulusAnalysis.cs:52:25:52:25 | [cond2 (line 9): true] 3 | 0 | 3 | 0 | -| ModulusAnalysis.cs:56:13:56:25 | [cond2 (line 9): false] ... = ... | 0 | 7 | 8 | -| ModulusAnalysis.cs:56:17:56:17 | [cond2 (line 9): false] access to parameter i | SSA param(i) | 0 | 0 | -| ModulusAnalysis.cs:56:17:56:21 | [cond2 (line 9): false] ... * ... | 0 | 0 | 8 | -| ModulusAnalysis.cs:56:17:56:25 | [cond2 (line 9): false] ... + ... | 0 | 7 | 8 | -| ModulusAnalysis.cs:56:21:56:21 | [cond2 (line 9): false] 8 | 0 | 8 | 0 | -| ModulusAnalysis.cs:56:25:56:25 | [cond2 (line 9): false] 7 | 0 | 7 | 0 | -| ModulusAnalysis.cs:58:34:58:34 | [cond2 (line 9): false] access to local variable j | 0 | 7 | 8 | -| ModulusAnalysis.cs:58:34:58:34 | [cond2 (line 9): false] access to local variable j | [cond2 (line 9): false] SSA def(j) | 0 | 0 | -| ModulusAnalysis.cs:58:34:58:34 | [cond2 (line 9): true] access to local variable j | 0 | 3 | 4 | -| ModulusAnalysis.cs:58:34:58:34 | [cond2 (line 9): true] access to local variable j | [cond2 (line 9): true] SSA def(j) | 0 | 0 | +| ModulusAnalysis.cs:52:13:52:25 | ... = ... | 0 | 3 | 4 | +| ModulusAnalysis.cs:52:17:52:17 | access to parameter i | SSA param(i) | 0 | 0 | +| ModulusAnalysis.cs:52:17:52:21 | ... * ... | 0 | 0 | 4 | +| ModulusAnalysis.cs:52:17:52:25 | ... + ... | 0 | 3 | 4 | +| ModulusAnalysis.cs:52:21:52:21 | 4 | 0 | 4 | 0 | +| ModulusAnalysis.cs:52:25:52:25 | 3 | 0 | 3 | 0 | +| ModulusAnalysis.cs:56:13:56:25 | ... = ... | 0 | 7 | 8 | +| ModulusAnalysis.cs:56:17:56:17 | access to parameter i | SSA param(i) | 0 | 0 | +| ModulusAnalysis.cs:56:17:56:21 | ... * ... | 0 | 0 | 8 | +| ModulusAnalysis.cs:56:17:56:25 | ... + ... | 0 | 7 | 8 | +| ModulusAnalysis.cs:56:21:56:21 | 8 | 0 | 8 | 0 | +| ModulusAnalysis.cs:56:25:56:25 | 7 | 0 | 7 | 0 | +| ModulusAnalysis.cs:58:34:58:34 | access to local variable j | 0 | 3 | 4 | +| ModulusAnalysis.cs:58:34:58:34 | access to local variable j | SSA phi(j) | 0 | 0 | | ModulusAnalysis.cs:62:38:62:38 | access to local variable j | 0 | 3 | 4 | -| ModulusAnalysis.cs:62:38:62:38 | access to local variable j | [cond2 (line 9): true] SSA def(j) | 0 | 0 | -| ModulusAnalysis.cs:66:38:66:38 | access to local variable j | 0 | 7 | 8 | -| ModulusAnalysis.cs:66:38:66:38 | access to local variable j | [cond2 (line 9): false] SSA def(j) | 0 | 0 | +| ModulusAnalysis.cs:62:38:62:38 | access to local variable j | SSA phi(j) | 0 | 0 | +| ModulusAnalysis.cs:66:38:66:38 | access to local variable j | 0 | 3 | 4 | +| ModulusAnalysis.cs:66:38:66:38 | access to local variable j | SSA phi(j) | 0 | 0 | | ModulusAnalysis.cs:69:17:69:18 | 64 | 0 | 64 | 0 | | ModulusAnalysis.cs:70:34:70:34 | access to local variable t | 0 | 64 | 0 | | ModulusAnalysis.cs:70:34:70:34 | access to local variable t | SSA def(t) | 0 | 0 | @@ -131,22 +129,20 @@ | ModulusAnalysis.cs:75:25:75:25 | 3 | 0 | 3 | 0 | | ModulusAnalysis.cs:77:38:77:38 | access to parameter x | 0 | 3 | 16 | | ModulusAnalysis.cs:77:38:77:38 | access to parameter x | SSA param(x) | 0 | 0 | -| ModulusAnalysis.cs:80:9:82:23 | [cond3 (line 9): false] ... = ... | 0 | 7 | 8 | -| ModulusAnalysis.cs:80:9:82:23 | [cond3 (line 9): true] ... = ... | 0 | 3 | 4 | -| ModulusAnalysis.cs:80:13:82:23 | [cond3 (line 9): false] ... ? ... : ... | 0 | 7 | 8 | -| ModulusAnalysis.cs:80:13:82:23 | [cond3 (line 9): true] ... ? ... : ... | 0 | 3 | 4 | -| ModulusAnalysis.cs:81:15:81:15 | [cond3 (line 9): true] access to parameter i | SSA param(i) | 0 | 0 | -| ModulusAnalysis.cs:81:15:81:19 | [cond3 (line 9): true] ... * ... | 0 | 0 | 4 | -| ModulusAnalysis.cs:81:15:81:23 | [cond3 (line 9): true] ... + ... | 0 | 3 | 4 | -| ModulusAnalysis.cs:81:19:81:19 | [cond3 (line 9): true] 4 | 0 | 4 | 0 | -| ModulusAnalysis.cs:81:23:81:23 | [cond3 (line 9): true] 3 | 0 | 3 | 0 | -| ModulusAnalysis.cs:82:15:82:15 | [cond3 (line 9): false] access to parameter i | SSA param(i) | 0 | 0 | -| ModulusAnalysis.cs:82:15:82:19 | [cond3 (line 9): false] ... * ... | 0 | 0 | 8 | -| ModulusAnalysis.cs:82:15:82:23 | [cond3 (line 9): false] ... + ... | 0 | 7 | 8 | -| ModulusAnalysis.cs:82:19:82:19 | [cond3 (line 9): false] 8 | 0 | 8 | 0 | -| ModulusAnalysis.cs:82:23:82:23 | [cond3 (line 9): false] 7 | 0 | 7 | 0 | -| ModulusAnalysis.cs:84:38:84:38 | access to local variable j | 0 | 7 | 8 | -| ModulusAnalysis.cs:84:38:84:38 | access to local variable j | [cond3 (line 9): false] SSA def(j) | 0 | 0 | +| ModulusAnalysis.cs:80:9:82:23 | ... = ... | 0 | 3 | 4 | +| ModulusAnalysis.cs:80:13:82:23 | ... ? ... : ... | 0 | 3 | 4 | +| ModulusAnalysis.cs:81:15:81:15 | access to parameter i | SSA param(i) | 0 | 0 | +| ModulusAnalysis.cs:81:15:81:19 | ... * ... | 0 | 0 | 4 | +| ModulusAnalysis.cs:81:15:81:23 | ... + ... | 0 | 3 | 4 | +| ModulusAnalysis.cs:81:19:81:19 | 4 | 0 | 4 | 0 | +| ModulusAnalysis.cs:81:23:81:23 | 3 | 0 | 3 | 0 | +| ModulusAnalysis.cs:82:15:82:15 | access to parameter i | SSA param(i) | 0 | 0 | +| ModulusAnalysis.cs:82:15:82:19 | ... * ... | 0 | 0 | 8 | +| ModulusAnalysis.cs:82:15:82:23 | ... + ... | 0 | 7 | 8 | +| ModulusAnalysis.cs:82:19:82:19 | 8 | 0 | 8 | 0 | +| ModulusAnalysis.cs:82:23:82:23 | 7 | 0 | 7 | 0 | +| ModulusAnalysis.cs:84:38:84:38 | access to local variable j | 0 | 3 | 4 | +| ModulusAnalysis.cs:84:38:84:38 | access to local variable j | SSA def(j) | 0 | 0 | | ModulusAnalysis.cs:89:22:89:22 | 0 | 0 | 0 | 0 | | ModulusAnalysis.cs:89:25:89:25 | access to local variable i | SSA phi(i) | 0 | 0 | | ModulusAnalysis.cs:89:29:89:31 | access to parameter cap | SSA param(cap) | 0 | 0 | diff --git a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected index 69a73d525088..b0d97c4d6e44 100644 --- a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected +++ b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected @@ -236,15 +236,11 @@ | SignAnalysis.cs:464:9:464:9 | access to local variable x | positive | | SignAnalysis.cs:464:9:464:11 | ...++ | positive | | SignAnalysis.cs:465:34:465:34 | access to local variable x | strictlyPositive | -| SignAnalysis.cs:470:21:470:21 | [b (line 468): true] 1 | strictlyPositive | -| SignAnalysis.cs:470:25:470:26 | [b (line 468): false] -... | strictlyNegative | -| SignAnalysis.cs:470:26:470:26 | [b (line 468): false] 1 | strictlyPositive | -| SignAnalysis.cs:480:16:480:20 | [b (line 477): true] ... = ... | strictlyPositive | -| SignAnalysis.cs:480:20:480:20 | [b (line 477): true] 1 | strictlyPositive | -| SignAnalysis.cs:480:28:480:33 | [b (line 477): false] ... = ... | strictlyNegative | -| SignAnalysis.cs:480:32:480:33 | [b (line 477): false] -... | strictlyNegative | -| SignAnalysis.cs:480:33:480:33 | [b (line 477): false] 1 | strictlyPositive | -| SignAnalysis.cs:482:34:482:34 | [b (line 477): false] access to local variable x | strictlyNegative | -| SignAnalysis.cs:482:34:482:34 | [b (line 477): true] access to local variable x | strictlyPositive | -| SignAnalysis.cs:485:38:485:38 | access to local variable x | strictlyPositive | -| SignAnalysis.cs:487:38:487:38 | access to local variable x | strictlyNegative | +| SignAnalysis.cs:470:21:470:21 | 1 | strictlyPositive | +| SignAnalysis.cs:470:25:470:26 | -... | strictlyNegative | +| SignAnalysis.cs:470:26:470:26 | 1 | strictlyPositive | +| SignAnalysis.cs:480:16:480:20 | ... = ... | strictlyPositive | +| SignAnalysis.cs:480:20:480:20 | 1 | strictlyPositive | +| SignAnalysis.cs:480:28:480:33 | ... = ... | strictlyNegative | +| SignAnalysis.cs:480:32:480:33 | -... | strictlyNegative | +| SignAnalysis.cs:480:33:480:33 | 1 | strictlyPositive | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/DefAdjacentRead.expected b/csharp/ql/test/library-tests/dataflow/ssa/DefAdjacentRead.expected index 221b551b1f0e..13036f0f0ae5 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/DefAdjacentRead.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/DefAdjacentRead.expected @@ -119,13 +119,6 @@ | Properties.cs:74:23:74:23 | a | Properties.cs:74:23:74:54 | Action a = ... | Properties.cs:77:9:77:9 | access to local variable a | | Properties.cs:75:23:75:23 | b | Properties.cs:75:23:75:35 | Action b = ... | Properties.cs:80:9:80:9 | access to local variable b | | Properties.cs:106:37:106:37 | p | Properties.cs:106:37:106:37 | p | Properties.cs:106:42:106:42 | access to parameter p | -| Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | b | Splitting.cs:6:13:6:13 | access to parameter b | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:10:13:10:19 | ... = ... | Splitting.cs:11:13:11:13 | access to local variable x | -| Splitting.cs:22:18:22:18 | b | Splitting.cs:22:18:22:18 | b | Splitting.cs:25:13:25:13 | access to parameter b | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:29:13:29:19 | ... = ... | Splitting.cs:30:13:30:13 | access to local variable x | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | ... = ... | Splitting.cs:33:9:33:9 | access to local variable x | -| Splitting.cs:42:18:42:18 | b | Splitting.cs:42:18:42:18 | b | Splitting.cs:45:13:45:13 | access to parameter b | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:49:13:49:19 | ... = ... | Splitting.cs:50:13:50:13 | access to local variable x | | Test.cs:3:9:3:13 | field | Test.cs:57:9:57:17 | ... = ... | Test.cs:58:13:58:17 | access to field field | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | param1 | Test.cs:11:13:11:18 | access to parameter param1 | | Test.cs:5:67:5:72 | param2 | Test.cs:5:67:5:72 | param2 | Test.cs:39:27:39:32 | access to parameter param2 | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/ReadAdjacentRead.expected b/csharp/ql/test/library-tests/dataflow/ssa/ReadAdjacentRead.expected index 1b416d1b4f2d..3e6623aa4e84 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/ReadAdjacentRead.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/ReadAdjacentRead.expected @@ -94,14 +94,6 @@ | Properties.cs:104:16:104:20 | Props | Properties.cs:114:20:114:35 | access to field Props | Properties.cs:115:21:115:36 | access to field Props | | Properties.cs:104:16:104:20 | Props | Properties.cs:115:21:115:30 | access to field Props | Properties.cs:116:17:116:26 | access to field Props | | Properties.cs:104:16:104:20 | Props | Properties.cs:115:21:115:36 | access to field Props | Properties.cs:116:17:116:32 | access to field Props | -| Splitting.cs:3:18:3:18 | b | Splitting.cs:6:13:6:13 | access to parameter b | Splitting.cs:15:13:15:13 | access to parameter b | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:13:9:13:9 | access to local variable x | Splitting.cs:14:9:14:9 | access to local variable x | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:14:9:14:9 | access to local variable x | Splitting.cs:17:13:17:13 | access to local variable x | -| Splitting.cs:22:18:22:18 | b | Splitting.cs:25:13:25:13 | access to parameter b | Splitting.cs:35:13:35:13 | access to parameter b | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:33:9:33:9 | access to local variable x | Splitting.cs:34:9:34:9 | access to local variable x | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:34:9:34:9 | access to local variable x | Splitting.cs:37:13:37:13 | access to local variable x | -| Splitting.cs:42:18:42:18 | b | Splitting.cs:45:13:45:13 | access to parameter b | Splitting.cs:52:13:52:13 | access to parameter b | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:9 | access to local variable x | Splitting.cs:55:9:55:9 | access to local variable x | | Test.cs:8:13:8:13 | x | Test.cs:25:16:25:16 | access to local variable x | Test.cs:25:16:25:16 | access to local variable x | | Test.cs:9:13:9:13 | y | Test.cs:25:20:25:20 | access to local variable y | Test.cs:31:13:31:13 | access to local variable y | | Test.cs:9:13:9:13 | y | Test.cs:25:20:25:20 | access to local variable y | Test.cs:43:20:43:20 | access to local variable y | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected index 8cbd5e6b1b67..e69a5cbe088c 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SSAPhi.expected @@ -33,8 +33,6 @@ | Properties.cs:33:19:33:22 | Properties.stat | Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | | Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:61:23:61:23 | SSA param(i) | | Properties.cs:61:23:61:23 | i | Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:63:16:63:18 | SSA def(i) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:21 | SSA phi(x) | Splitting.cs:46:13:46:19 | [b (line 42): true] SSA def(x) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:21 | SSA phi(x) | Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | | Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:33:9:33:19 | SSA phi(param1) | Test.cs:25:16:25:16 | SSA phi(param1) | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/Splitting.cs b/csharp/ql/test/library-tests/dataflow/ssa/Splitting.cs deleted file mode 100644 index 3969b9ab3398..000000000000 --- a/csharp/ql/test/library-tests/dataflow/ssa/Splitting.cs +++ /dev/null @@ -1,57 +0,0 @@ -class Splitting -{ - void M1(bool b) - { - var x = ""; - if (b) - x = "a"; - else - { - x = "b"; - x.ToString(); - } - x.ToString(); - x.ToString(); - if (b) - { - x.ToString(); - x = "c"; - } - } - - void M2(bool b) - { - var x = ""; - if (b) - x = "a"; - else - { - x = "b"; - x.ToString(); - } - x = "c"; - x.ToString(); - x.ToString(); - if (b) - { - x.ToString(); - x = "d"; - } - } - - void M3(bool b) - { - var x = ""; - if (b) - x = "a"; - else - { - x = "b"; - x.ToString(); - } - if (b) - b = false; - x.ToString(); - x.ToString(); - } -} diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected index 7fa4581f5aae..3f117d6412e3 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected @@ -35,7 +35,6 @@ | 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] 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) | @@ -242,17 +241,6 @@ | Properties.cs:114:20:114:35 | this.Props.Props | Properties.cs:113:9:113:22 | SSA call def(this.Props.Props) | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:108:10:108:10 | SSA qualifier def(this.Props.Props.xs) | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | -| Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | -| Splitting.cs:22:18:22:18 | b | Splitting.cs:22:18:22:18 | SSA param(b) | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:29:13:29:19 | [b (line 22): false] SSA def(x) | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): false] SSA def(x) | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | -| Splitting.cs:42:18:42:18 | b | Splitting.cs:42:18:42:18 | SSA param(b) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:46:13:46:19 | [b (line 42): true] SSA def(x) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:21 | SSA phi(x) | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | SSA param(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:27:17:27:24 | SSA def(param1) | @@ -289,7 +277,7 @@ | Test.cs:56:13:56:17 | this.field | Test.cs:46:10:46:10 | SSA entry def(this.field) | | Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | | Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | -| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | +| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | SSA def(e) | | Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) | | Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) | | Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected index 02e4624488ea..4bbe88295edb 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected @@ -35,7 +35,6 @@ | 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] 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 | ... = ... | @@ -52,9 +51,12 @@ | DefUse.cs:13:13:13:18 | SSA def(y) | DefUse.cs:13:13:13:18 | ... = ... | | DefUse.cs:18:13:18:18 | SSA def(y) | DefUse.cs:18:13:18:18 | ... = ... | | DefUse.cs:19:13:19:18 | SSA def(w) | DefUse.cs:19:13:19:18 | ... = ... | +| DefUse.cs:23:9:23:15 | SSA phi(w) | DefUse.cs:23:9:23:15 | ...; | +| DefUse.cs:23:9:23:15 | SSA phi(y) | DefUse.cs:23:9:23:15 | ...; | | DefUse.cs:28:13:28:18 | SSA def(y) | DefUse.cs:28:13:28:18 | ... = ... | | DefUse.cs:29:13:29:18 | SSA def(w) | DefUse.cs:29:13:29:18 | ... = ... | | DefUse.cs:39:13:39:18 | SSA def(y) | DefUse.cs:39:13:39:18 | ... = ... | +| DefUse.cs:42:9:42:15 | SSA phi(y) | DefUse.cs:42:9:42:15 | ...; | | DefUse.cs:44:13:44:17 | SSA def(z) | DefUse.cs:44:13:44:17 | Int32 z = ... | | DefUse.cs:47:23:47:23 | SSA def(z) | DefUse.cs:47:9:47:24 | call to method outMethod | | DefUse.cs:50:23:50:23 | SSA def(z) | DefUse.cs:50:9:50:24 | call to method refMethod | @@ -65,12 +67,14 @@ | DefUse.cs:67:19:67:27 | SSA def(tc) | DefUse.cs:67:19:67:27 | TestClass tc = ... | | DefUse.cs:79:13:79:18 | SSA def(x1) | DefUse.cs:79:13:79:18 | Int32 x1 = ... | | DefUse.cs:80:30:80:31 | SSA def(x1) | DefUse.cs:80:16:80:32 | call to method refMethod | +| DefUse.cs:80:30:80:31 | SSA phi(x1) | DefUse.cs:80:30:80:31 | access to local variable x1 | | DefUse.cs:83:13:83:18 | SSA def(x2) | DefUse.cs:83:13:83:18 | Int32 x2 = ... | | DefUse.cs:85:15:85:16 | SSA def(x2) | DefUse.cs:84:9:86:17 | call to method refOutMethod | | DefUse.cs:89:13:89:18 | SSA def(x3) | DefUse.cs:89:13:89:18 | Int32 x3 = ... | | DefUse.cs:92:15:92:16 | SSA def(x3) | DefUse.cs:91:9:93:17 | call to method refOutMethod | | DefUse.cs:93:15:93:16 | SSA def(x4) | DefUse.cs:91:9:93:17 | call to method refOutMethod | | DefUse.cs:97:13:97:18 | SSA def(x5) | DefUse.cs:97:13:97:18 | Int32 x5 = ... | +| DefUse.cs:98:16:98:17 | SSA phi(x5) | DefUse.cs:98:16:98:17 | access to local variable x5 | | DefUse.cs:101:13:101:23 | SSA def(x5) | DefUse.cs:101:13:101:23 | ... = ... | | DefUse.cs:104:9:104:15 | SSA def(x5) | DefUse.cs:104:9:104:15 | ... = ... | | DefUse.cs:114:47:114:52 | SSA def(i) | DefUse.cs:114:47:114:52 | ... = ... | @@ -93,13 +97,16 @@ | Example.cs:8:9:8:22 | SSA def(this.Field) | Example.cs:8:9:8:22 | ... = ... | | Example.cs:11:13:11:30 | SSA def(this.Field) | Example.cs:11:13:11:30 | ... = ... | | Example.cs:13:13:13:23 | SSA call def(this.Field) | Example.cs:13:13:13:23 | call to method SetField | +| Example.cs:14:9:14:24 | SSA phi(this.Field) | Example.cs:14:9:14:24 | ...; | | Example.cs:18:16:18:16 | SSA param(p) | Example.cs:18:16:18:16 | p | | Example.cs:18:24:18:24 | SSA param(b) | Example.cs:18:24:18:24 | b | | Example.cs:23:13:23:17 | SSA def(p) | Example.cs:23:13:23:17 | ... = ... | +| Example.cs:25:9:25:15 | SSA phi(p) | Example.cs:25:9:25:15 | ...; | | Fields.cs:16:17:16:17 | SSA entry def(this.xs) | Fields.cs:16:17:16:17 | F | | Fields.cs:19:9:19:13 | SSA call def(this.xs) | Fields.cs:19:9:19:13 | call to method Upd | | Fields.cs:20:9:20:14 | SSA def(x) | Fields.cs:20:9:20:14 | ... = ... | | Fields.cs:22:13:22:17 | SSA call def(this.xs) | Fields.cs:22:13:22:17 | call to method Upd | +| Fields.cs:23:9:23:20 | SSA phi(this.xs) | Fields.cs:23:9:23:20 | ...; | | Fields.cs:24:9:24:23 | SSA def(this.xs) | Fields.cs:24:9:24:23 | ... = ... | | Fields.cs:28:17:28:17 | SSA entry def(Fields.stat) | Fields.cs:28:17:28:17 | G | | Fields.cs:28:17:28:17 | SSA entry def(this.xs) | Fields.cs:28:17:28:17 | G | @@ -118,6 +125,9 @@ | Fields.cs:49:13:49:28 | SSA def(f) | Fields.cs:49:13:49:28 | ... = ... | | Fields.cs:49:13:49:28 | SSA qualifier def(f.xs) | Fields.cs:49:13:49:28 | ... = ... | | Fields.cs:49:17:49:28 | SSA call def(Fields.stat) | Fields.cs:49:17:49:28 | object creation of type Fields | +| Fields.cs:50:9:50:17 | SSA phi(Fields.stat) | Fields.cs:50:9:50:17 | ...; | +| Fields.cs:50:9:50:17 | SSA phi(f) | Fields.cs:50:9:50:17 | ...; | +| Fields.cs:50:9:50:17 | SSA phi(f.xs) | Fields.cs:50:9:50:17 | ...; | | Fields.cs:51:9:51:20 | SSA call def(Fields.stat) | Fields.cs:51:9:51:20 | object creation of type Fields | | Fields.cs:61:17:61:17 | SSA entry def(this.LoopField) | Fields.cs:61:17:61:17 | H | | Fields.cs:61:17:61:17 | SSA entry def(this.SingleAccessedField) | Fields.cs:61:17:61:17 | H | @@ -179,6 +189,7 @@ | Properties.cs:19:9:19:13 | SSA call def(this.xs) | Properties.cs:19:9:19:13 | call to method Upd | | Properties.cs:20:9:20:14 | SSA def(x) | Properties.cs:20:9:20:14 | ... = ... | | Properties.cs:22:13:22:17 | SSA call def(this.xs) | Properties.cs:22:13:22:17 | call to method Upd | +| Properties.cs:23:9:23:20 | SSA phi(this.xs) | Properties.cs:23:9:23:20 | ...; | | Properties.cs:24:9:24:23 | SSA def(this.xs) | Properties.cs:24:9:24:23 | ... = ... | | Properties.cs:28:17:28:17 | SSA entry def(Properties.stat) | Properties.cs:28:17:28:17 | G | | Properties.cs:28:17:28:17 | SSA entry def(this.xs) | Properties.cs:28:17:28:17 | G | @@ -197,10 +208,14 @@ | Properties.cs:49:13:49:32 | SSA def(f) | Properties.cs:49:13:49:32 | ... = ... | | Properties.cs:49:13:49:32 | SSA qualifier def(f.xs) | Properties.cs:49:13:49:32 | ... = ... | | Properties.cs:49:17:49:32 | SSA call def(Properties.stat) | Properties.cs:49:17:49:32 | object creation of type Properties | +| Properties.cs:50:9:50:17 | SSA phi(Properties.stat) | Properties.cs:50:9:50:17 | ...; | +| Properties.cs:50:9:50:17 | SSA phi(f) | Properties.cs:50:9:50:17 | ...; | +| Properties.cs:50:9:50:17 | SSA phi(f.xs) | Properties.cs:50:9:50:17 | ...; | | Properties.cs:51:9:51:24 | SSA call def(Properties.stat) | Properties.cs:51:9:51:24 | object creation of type Properties | | Properties.cs:61:17:61:17 | SSA entry def(this.LoopProp) | Properties.cs:61:17:61:17 | H | | Properties.cs:61:17:61:17 | SSA entry def(this.SingleAccessedProp) | Properties.cs:61:17:61:17 | H | | Properties.cs:61:23:61:23 | SSA param(i) | Properties.cs:61:23:61:23 | i | +| Properties.cs:63:16:63:16 | SSA phi(i) | Properties.cs:63:16:63:16 | access to parameter i | | Properties.cs:63:16:63:18 | SSA def(i) | Properties.cs:63:16:63:18 | ...-- | | Properties.cs:70:17:70:17 | SSA entry def(this.SingleAccessedProp) | Properties.cs:70:17:70:17 | I | | Properties.cs:73:13:73:32 | SSA def(f) | Properties.cs:73:13:73:32 | Properties f = ... | @@ -221,16 +236,6 @@ | Properties.cs:113:9:113:22 | SSA call def(this.Props) | Properties.cs:113:9:113:22 | call to method SetProps | | Properties.cs:113:9:113:22 | SSA call def(this.Props.Props) | Properties.cs:113:9:113:22 | call to method SetProps | | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:113:9:113:22 | call to method SetProps | -| Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:3:18:3:18 | b | -| Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | Splitting.cs:7:13:7:19 | ... = ... | -| Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | Splitting.cs:10:13:10:19 | ... = ... | -| Splitting.cs:22:18:22:18 | SSA param(b) | Splitting.cs:22:18:22:18 | b | -| Splitting.cs:29:13:29:19 | [b (line 22): false] SSA def(x) | Splitting.cs:29:13:29:19 | ... = ... | -| Splitting.cs:32:9:32:15 | [b (line 22): false] SSA def(x) | Splitting.cs:32:9:32:15 | ... = ... | -| Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | Splitting.cs:32:9:32:15 | ... = ... | -| Splitting.cs:42:18:42:18 | SSA param(b) | Splitting.cs:42:18:42:18 | b | -| Splitting.cs:46:13:46:19 | [b (line 42): true] SSA def(x) | Splitting.cs:46:13:46:19 | ... = ... | -| Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | Splitting.cs:49:13:49:19 | ... = ... | | Test.cs:5:15:5:20 | SSA param(param1) | Test.cs:5:15:5:20 | param1 | | Test.cs:5:67:5:72 | SSA param(param2) | Test.cs:5:67:5:72 | param2 | | Test.cs:7:9:7:17 | SSA def(this.field) | Test.cs:7:9:7:17 | ... = ... | @@ -243,20 +248,31 @@ | Test.cs:20:13:20:18 | SSA def(y) | Test.cs:20:13:20:18 | ... = ... | | Test.cs:21:13:21:22 | SSA def(this.field) | Test.cs:21:13:21:22 | ... = ... | | Test.cs:22:13:22:17 | SSA def(z) | Test.cs:22:13:22:17 | ... = ... | +| Test.cs:24:9:24:15 | SSA phi(this.field) | Test.cs:24:9:24:15 | ...; | +| Test.cs:24:9:24:15 | SSA phi(x) | Test.cs:24:9:24:15 | ...; | +| Test.cs:24:9:24:15 | SSA phi(y) | Test.cs:24:9:24:15 | ...; | +| Test.cs:24:9:24:15 | SSA phi(z) | Test.cs:24:9:24:15 | ...; | +| Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:25:16:25:16 | access to local variable x | +| Test.cs:25:16:25:16 | SSA phi(y) | Test.cs:25:16:25:16 | access to local variable x | | Test.cs:27:17:27:24 | SSA def(param1) | Test.cs:27:17:27:24 | ...++ | | Test.cs:31:13:31:18 | SSA def(y) | Test.cs:31:13:31:18 | ... = ... | +| Test.cs:33:9:33:19 | SSA phi(param1) | Test.cs:33:9:33:19 | ...; | | Test.cs:34:18:34:22 | SSA def(i) | Test.cs:34:18:34:22 | Int32 i = ... | +| Test.cs:34:25:34:25 | SSA phi(i) | Test.cs:34:25:34:25 | access to local variable i | +| Test.cs:34:25:34:25 | SSA phi(x) | Test.cs:34:25:34:25 | access to local variable i | | Test.cs:34:33:34:35 | SSA def(i) | Test.cs:34:33:34:35 | ...++ | | Test.cs:36:13:36:18 | SSA def(x) | Test.cs:36:13:36:18 | ... = ... | +| Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:39:9:42:9 | foreach (... ... in ...) ... | | Test.cs:39:22:39:22 | SSA def(w) | Test.cs:39:22:39:22 | Int32 w | | Test.cs:41:13:41:23 | SSA def(param1) | Test.cs:41:13:41:23 | ... = ... | | Test.cs:46:10:46:10 | SSA entry def(this.field) | Test.cs:46:10:46:10 | g | | Test.cs:46:16:46:18 | SSA param(in) | Test.cs:46:16:46:18 | in | | Test.cs:50:13:50:20 | SSA def(out) | Test.cs:50:13:50:20 | ... = ... | | Test.cs:54:13:54:20 | SSA def(out) | Test.cs:54:13:54:20 | ... = ... | +| Test.cs:56:9:56:19 | SSA phi(out) | Test.cs:56:9:56:19 | ...; | | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | ... = ... | | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | x | -| Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e | +| Test.cs:68:45:68:45 | SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e | | Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:76:24:76:25 | b1 | | Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:76:33:76:34 | b2 | | Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:76:42:76:43 | b3 | @@ -265,6 +281,7 @@ | Test.cs:76:69:76:70 | SSA param(b6) | Test.cs:76:69:76:70 | b6 | | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:78:13:78:17 | Int32 x = ... | | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:108:13:108:17 | ... = ... | +| Test.cs:113:9:116:9 | SSA phi(x) | Test.cs:113:9:116:9 | if (...) ... | | Tuples.cs:10:9:10:54 | SSA def(b) | Tuples.cs:10:9:10:54 | ... = ... | | Tuples.cs:10:9:10:54 | SSA def(s) | Tuples.cs:10:9:10:54 | ... = ... | | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | ... = ... | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected index 4a2158c6736a..a8bcd3e4daf9 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected @@ -15,7 +15,6 @@ | 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] 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 | @@ -117,13 +116,6 @@ | Properties.cs:76:9:76:12 | f.xs | Properties.cs:84:9:84:25 | SSA def(f.xs) | Properties.cs:84:9:84:25 | ... = ... | | Properties.cs:78:9:78:15 | this.xs | Properties.cs:81:9:81:22 | SSA def(this.xs) | Properties.cs:81:9:81:22 | ... = ... | | Properties.cs:78:9:78:15 | this.xs | Properties.cs:83:9:83:22 | SSA def(this.xs) | Properties.cs:83:9:83:22 | ... = ... | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | Splitting.cs:7:13:7:19 | ... = ... | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | Splitting.cs:10:13:10:19 | ... = ... | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:29:13:29:19 | [b (line 22): false] SSA def(x) | Splitting.cs:29:13:29:19 | ... = ... | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): false] SSA def(x) | Splitting.cs:32:9:32:15 | ... = ... | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | Splitting.cs:32:9:32:15 | ... = ... | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:46:13:46:19 | [b (line 42): true] SSA def(x) | Splitting.cs:46:13:46:19 | ... = ... | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | Splitting.cs:49:13:49:19 | ... = ... | | Test.cs:5:15:5:20 | param1 | Test.cs:27:17:27:24 | SSA def(param1) | Test.cs:27:17:27:24 | ...++ | | Test.cs:5:15:5:20 | param1 | Test.cs:41:13:41:23 | SSA def(param1) | Test.cs:41:13:41:23 | ... = ... | | Test.cs:7:9:7:13 | this.field | Test.cs:7:9:7:17 | SSA def(this.field) | Test.cs:7:9:7:17 | ... = ... | @@ -144,7 +136,7 @@ | Test.cs:46:29:46:32 | out | Test.cs:50:13:50:20 | SSA def(out) | Test.cs:50:13:50:20 | ... = ... | | Test.cs:46:29:46:32 | out | Test.cs:54:13:54:20 | SSA def(out) | Test.cs:54:13:54:20 | ... = ... | | Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | ... = ... | -| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e | +| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | SSA def(e) | Test.cs:68:45:68:45 | DivideByZeroException e | | Test.cs:78:13:78:13 | x | Test.cs:78:13:78:17 | SSA def(x) | Test.cs:78:13:78:17 | Int32 x = ... | | Test.cs:78:13:78:13 | x | Test.cs:108:13:108:17 | SSA def(x) | Test.cs:108:13:108:17 | ... = ... | | Tuples.cs:10:14:10:14 | x | Tuples.cs:10:9:10:54 | SSA def(x) | Tuples.cs:10:9:10:54 | ... = ... | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaImplicitParameterDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaImplicitParameterDef.expected index f5c93b95944e..3ba88d1dd175 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaImplicitParameterDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaImplicitParameterDef.expected @@ -28,9 +28,6 @@ | OutRef.cs:39:35:39:35 | j | OutRef.cs:39:35:39:35 | SSA param(j) | OutRef.cs:39:35:39:35 | j | | Properties.cs:61:23:61:23 | i | Properties.cs:61:23:61:23 | SSA param(i) | Properties.cs:61:23:61:23 | i | | Properties.cs:106:37:106:37 | p | Properties.cs:106:37:106:37 | SSA param(p) | Properties.cs:106:37:106:37 | p | -| Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:3:18:3:18 | b | -| Splitting.cs:22:18:22:18 | b | Splitting.cs:22:18:22:18 | SSA param(b) | Splitting.cs:22:18:22:18 | b | -| Splitting.cs:42:18:42:18 | b | Splitting.cs:42:18:42:18 | SSA param(b) | Splitting.cs:42:18:42:18 | b | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | SSA param(param1) | Test.cs:5:15:5:20 | param1 | | Test.cs:5:67:5:72 | param2 | Test.cs:5:67:5:72 | SSA param(param2) | Test.cs:5:67:5:72 | param2 | | Test.cs:46:16:46:18 | in | Test.cs:46:16:46:18 | SSA param(in) | Test.cs:46:16:46:18 | in | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected index cc6a0e595465..46aba07eb377 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected @@ -35,7 +35,6 @@ | 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] 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 | @@ -288,27 +287,6 @@ | Properties.cs:114:20:114:35 | this.Props.Props | Properties.cs:113:9:113:22 | SSA call def(this.Props.Props) | Properties.cs:116:17:116:32 | access to field Props | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:115:21:115:39 | access to property xs | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:116:17:116:35 | access to property xs | -| Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:6:13:6:13 | access to parameter b | -| Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:15:13:15:13 | access to parameter b | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | Splitting.cs:13:9:13:9 | access to local variable x | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | Splitting.cs:14:9:14:9 | access to local variable x | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | Splitting.cs:17:13:17:13 | access to local variable x | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | Splitting.cs:11:13:11:13 | access to local variable x | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | Splitting.cs:13:9:13:9 | access to local variable x | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | Splitting.cs:14:9:14:9 | access to local variable x | -| Splitting.cs:22:18:22:18 | b | Splitting.cs:22:18:22:18 | SSA param(b) | Splitting.cs:25:13:25:13 | access to parameter b | -| Splitting.cs:22:18:22:18 | b | Splitting.cs:22:18:22:18 | SSA param(b) | Splitting.cs:35:13:35:13 | access to parameter b | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:29:13:29:19 | [b (line 22): false] SSA def(x) | Splitting.cs:30:13:30:13 | access to local variable x | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): false] SSA def(x) | Splitting.cs:33:9:33:9 | access to local variable x | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): false] SSA def(x) | Splitting.cs:34:9:34:9 | access to local variable x | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | Splitting.cs:33:9:33:9 | access to local variable x | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | Splitting.cs:34:9:34:9 | access to local variable x | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | Splitting.cs:37:13:37:13 | access to local variable x | -| Splitting.cs:42:18:42:18 | b | Splitting.cs:42:18:42:18 | SSA param(b) | Splitting.cs:45:13:45:13 | access to parameter b | -| Splitting.cs:42:18:42:18 | b | Splitting.cs:42:18:42:18 | SSA param(b) | Splitting.cs:52:13:52:13 | access to parameter b | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | Splitting.cs:50:13:50:13 | access to local variable x | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:21 | SSA phi(x) | Splitting.cs:54:9:54:9 | access to local variable x | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:21 | SSA phi(x) | Splitting.cs:55:9:55:9 | access to local variable x | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | SSA param(param1) | Test.cs:11:13:11:18 | access to parameter param1 | | Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:27:17:27:22 | access to parameter param1 | | Test.cs:5:15:5:20 | param1 | Test.cs:39:9:42:9 | SSA phi(param1) | Test.cs:41:13:41:18 | access to parameter param1 | @@ -332,7 +310,7 @@ | Test.cs:56:13:56:17 | this.field | Test.cs:46:10:46:10 | SSA entry def(this.field) | Test.cs:56:13:56:17 | access to field field | | Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:58:13:58:17 | access to field field | | Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:66:28:66:28 | access to parameter x | -| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:70:17:70:17 | access to local variable e | +| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | SSA def(e) | Test.cs:70:17:70:17 | access to local variable e | | Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:80:13:80:14 | access to parameter b1 | | Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:84:18:84:19 | access to parameter b2 | | Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:90:13:90:14 | access to parameter b3 | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected index 1219abdfe452..d6dfac1475ae 100644 --- a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected +++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected @@ -35,7 +35,6 @@ | 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] 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) | @@ -329,18 +328,6 @@ | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:108:10:108:10 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:108:10:108:10 | SSA qualifier def(this.Props.Props.xs) | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:108:10:108:10 | SSA qualifier def(this.Props.Props.xs) | | Properties.cs:115:21:115:39 | this.Props.Props.xs | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | Properties.cs:113:9:113:22 | SSA qualifier def(this.Props.Props.xs) | -| Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:3:18:3:18 | SSA param(b) | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | Splitting.cs:7:13:7:19 | [b (line 3): true] SSA def(x) | -| Splitting.cs:5:13:5:13 | x | Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | Splitting.cs:10:13:10:19 | [b (line 3): false] SSA def(x) | -| Splitting.cs:22:18:22:18 | b | Splitting.cs:22:18:22:18 | SSA param(b) | Splitting.cs:22:18:22:18 | SSA param(b) | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:29:13:29:19 | [b (line 22): false] SSA def(x) | Splitting.cs:29:13:29:19 | [b (line 22): false] SSA def(x) | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): false] SSA def(x) | Splitting.cs:32:9:32:15 | [b (line 22): false] SSA def(x) | -| Splitting.cs:24:13:24:13 | x | Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | Splitting.cs:32:9:32:15 | [b (line 22): true] SSA def(x) | -| Splitting.cs:42:18:42:18 | b | Splitting.cs:42:18:42:18 | SSA param(b) | Splitting.cs:42:18:42:18 | SSA param(b) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:46:13:46:19 | [b (line 42): true] SSA def(x) | Splitting.cs:46:13:46:19 | [b (line 42): true] SSA def(x) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:21 | SSA phi(x) | Splitting.cs:46:13:46:19 | [b (line 42): true] SSA def(x) | -| Splitting.cs:44:13:44:13 | x | Splitting.cs:54:9:54:21 | SSA phi(x) | Splitting.cs:49:13:49:19 | [b (line 42): false] SSA def(x) | | Test.cs:5:15:5:20 | param1 | Test.cs:5:15:5:20 | SSA param(param1) | Test.cs:5:15:5:20 | SSA param(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:5:15:5:20 | SSA param(param1) | | Test.cs:5:15:5:20 | param1 | Test.cs:25:16:25:16 | SSA phi(param1) | Test.cs:27:17:27:24 | SSA def(param1) | @@ -391,7 +378,7 @@ | Test.cs:56:13:56:17 | this.field | Test.cs:46:10:46:10 | SSA entry def(this.field) | Test.cs:46:10:46:10 | SSA entry def(this.field) | | Test.cs:56:13:56:17 | this.field | Test.cs:57:9:57:17 | SSA def(this.field) | Test.cs:57:9:57:17 | SSA def(this.field) | | Test.cs:62:16:62:16 | x | Test.cs:62:16:62:16 | SSA param(x) | Test.cs:62:16:62:16 | SSA param(x) | -| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | Test.cs:68:45:68:45 | [exception: DivideByZeroException] SSA def(e) | +| Test.cs:68:45:68:45 | e | Test.cs:68:45:68:45 | SSA def(e) | Test.cs:68:45:68:45 | SSA def(e) | | Test.cs:76:24:76:25 | b1 | Test.cs:76:24:76:25 | SSA param(b1) | Test.cs:76:24:76:25 | SSA param(b1) | | Test.cs:76:33:76:34 | b2 | Test.cs:76:33:76:34 | SSA param(b2) | Test.cs:76:33:76:34 | SSA param(b2) | | Test.cs:76:42:76:43 | b3 | Test.cs:76:42:76:43 | SSA param(b3) | Test.cs:76:42:76:43 | SSA param(b3) | diff --git a/csharp/ql/test/library-tests/exceptions/Exceptions1.expected b/csharp/ql/test/library-tests/exceptions/Exceptions1.expected index f3e813a7395e..c97468d61898 100644 --- a/csharp/ql/test/library-tests/exceptions/Exceptions1.expected +++ b/csharp/ql/test/library-tests/exceptions/Exceptions1.expected @@ -9,14 +9,55 @@ | exceptions.cs:76:13:76:13 | ; | exceptions.cs:89:13:89:13 | ; | | exceptions.cs:76:13:76:13 | ; | exceptions.cs:93:13:93:13 | ; | | exceptions.cs:76:13:76:13 | ; | exceptions.cs:97:13:97:13 | ; | +| exceptions.cs:105:13:105:13 | ; | exceptions.cs:110:13:110:13 | ; | | exceptions.cs:105:13:105:13 | ; | exceptions.cs:114:13:114:13 | ; | +| exceptions.cs:105:13:105:13 | ; | exceptions.cs:118:13:118:13 | ; | +| exceptions.cs:105:13:105:13 | ; | exceptions.cs:122:13:122:13 | ; | +| exceptions.cs:105:13:105:13 | ; | exceptions.cs:126:13:126:13 | ; | +| exceptions.cs:134:13:134:13 | ; | exceptions.cs:139:13:139:13 | ; | | exceptions.cs:134:13:134:13 | ; | exceptions.cs:143:13:143:13 | ; | +| exceptions.cs:134:13:134:13 | ; | exceptions.cs:147:13:147:13 | ; | +| exceptions.cs:134:13:134:13 | ; | exceptions.cs:151:13:151:13 | ; | +| exceptions.cs:134:13:134:13 | ; | exceptions.cs:155:13:155:13 | ; | +| exceptions.cs:163:13:163:13 | ; | exceptions.cs:168:13:168:13 | ; | | exceptions.cs:163:13:163:13 | ; | exceptions.cs:172:13:172:13 | ; | +| exceptions.cs:163:13:163:13 | ; | exceptions.cs:176:13:176:13 | ; | +| exceptions.cs:163:13:163:13 | ; | exceptions.cs:180:13:180:13 | ; | +| exceptions.cs:163:13:163:13 | ; | exceptions.cs:184:13:184:13 | ; | +| exceptions.cs:222:13:222:13 | ; | exceptions.cs:227:13:227:13 | ; | +| exceptions.cs:222:13:222:13 | ; | exceptions.cs:231:13:231:13 | ; | | exceptions.cs:222:13:222:13 | ; | exceptions.cs:235:13:235:13 | ; | +| exceptions.cs:222:13:222:13 | ; | exceptions.cs:239:13:239:13 | ; | +| exceptions.cs:222:13:222:13 | ; | exceptions.cs:243:13:243:13 | ; | +| exceptions.cs:280:13:280:13 | ; | exceptions.cs:285:13:285:13 | ; | +| exceptions.cs:280:13:280:13 | ; | exceptions.cs:289:13:289:13 | ; | +| exceptions.cs:280:13:280:13 | ; | exceptions.cs:293:13:293:13 | ; | | exceptions.cs:280:13:280:13 | ; | exceptions.cs:297:13:297:13 | ; | +| exceptions.cs:280:13:280:13 | ; | exceptions.cs:301:13:301:13 | ; | | exceptions.cs:309:13:309:13 | ; | exceptions.cs:314:13:314:13 | ; | +| exceptions.cs:309:13:309:13 | ; | exceptions.cs:318:13:318:13 | ; | +| exceptions.cs:309:13:309:13 | ; | exceptions.cs:322:13:322:13 | ; | +| exceptions.cs:309:13:309:13 | ; | exceptions.cs:326:13:326:13 | ; | +| exceptions.cs:309:13:309:13 | ; | exceptions.cs:330:13:330:13 | ; | +| exceptions.cs:338:13:338:13 | ; | exceptions.cs:343:13:343:13 | ; | | exceptions.cs:338:13:338:13 | ; | exceptions.cs:347:13:347:13 | ; | +| exceptions.cs:338:13:338:13 | ; | exceptions.cs:351:13:351:13 | ; | +| exceptions.cs:338:13:338:13 | ; | exceptions.cs:355:13:355:13 | ; | +| exceptions.cs:338:13:338:13 | ; | exceptions.cs:359:13:359:13 | ; | +| exceptions.cs:368:13:368:13 | ; | exceptions.cs:373:13:373:13 | ; | +| exceptions.cs:368:13:368:13 | ; | exceptions.cs:377:13:377:13 | ; | +| exceptions.cs:368:13:368:13 | ; | exceptions.cs:381:13:381:13 | ; | | exceptions.cs:368:13:368:13 | ; | exceptions.cs:385:13:385:13 | ; | +| exceptions.cs:368:13:368:13 | ; | exceptions.cs:389:13:389:13 | ; | +| exceptions.cs:398:13:398:13 | ; | exceptions.cs:403:13:403:13 | ; | | exceptions.cs:398:13:398:13 | ; | exceptions.cs:407:13:407:13 | ; | +| exceptions.cs:398:13:398:13 | ; | exceptions.cs:411:13:411:13 | ; | +| exceptions.cs:398:13:398:13 | ; | exceptions.cs:415:13:415:13 | ; | +| exceptions.cs:398:13:398:13 | ; | exceptions.cs:419:13:419:13 | ; | | exceptions.cs:451:13:451:13 | ; | exceptions.cs:456:13:456:13 | ; | +| exceptions.cs:451:13:451:13 | ; | exceptions.cs:460:13:460:13 | ; | +| exceptions.cs:468:13:468:13 | ; | exceptions.cs:473:13:473:13 | ; | +| exceptions.cs:468:13:468:13 | ; | exceptions.cs:477:13:477:13 | ; | +| exceptions.cs:468:13:468:13 | ; | exceptions.cs:481:13:481:13 | ; | | exceptions.cs:468:13:468:13 | ; | exceptions.cs:485:13:485:13 | ; | +| exceptions.cs:468:13:468:13 | ; | exceptions.cs:489:13:489:13 | ; | diff --git a/csharp/ql/test/library-tests/locations/A.cs b/csharp/ql/test/library-tests/locations/A.cs index 7f641a0024e8..565683622da9 100644 --- a/csharp/ql/test/library-tests/locations/A.cs +++ b/csharp/ql/test/library-tests/locations/A.cs @@ -5,8 +5,13 @@ public abstract class A public abstract T Prop { get; } public abstract T this[int index] { get; set; } public abstract event EventHandler Event; - public void Apply(T t) { } - public abstract object ToObject(T t); + public void Apply(T t1) { } + public abstract object ToObject(T t2); + public object Field; + public A() { } + public A(T t) { } + ~A() { } + public static A operator +(A a1, A a2) { return a1; } } public class A2 : A diff --git a/csharp/ql/test/library-tests/locations/Base.cs b/csharp/ql/test/library-tests/locations/Base.cs index 02082e0e6c4b..413534319c4e 100644 --- a/csharp/ql/test/library-tests/locations/Base.cs +++ b/csharp/ql/test/library-tests/locations/Base.cs @@ -4,3 +4,5 @@ public void M() { } public class InnerBase { } } + +public abstract class Base2 { } diff --git a/csharp/ql/test/library-tests/locations/Multiple1.cs b/csharp/ql/test/library-tests/locations/Multiple1.cs index 34bec96c0699..1d8a6491b145 100644 --- a/csharp/ql/test/library-tests/locations/Multiple1.cs +++ b/csharp/ql/test/library-tests/locations/Multiple1.cs @@ -1 +1,13 @@ public partial class Multiple { } + +public partial class MultipleGeneric { } + +public class Multiple1Specific +{ + public static (int, string) M() + { + (int, string) x = (0, ""); + (int, int) y = (0, 0); + return x; + } +} diff --git a/csharp/ql/test/library-tests/locations/Multiple2.cs b/csharp/ql/test/library-tests/locations/Multiple2.cs index 34bec96c0699..e63833066167 100644 --- a/csharp/ql/test/library-tests/locations/Multiple2.cs +++ b/csharp/ql/test/library-tests/locations/Multiple2.cs @@ -1 +1,11 @@ public partial class Multiple { } + +public partial class MultipleGeneric { } + +public class Multiple2Specific +{ + public void M() + { + (int, string) z = (0, ""); + } +} diff --git a/csharp/ql/test/library-tests/locations/locations.expected b/csharp/ql/test/library-tests/locations/locations.expected index 122921ac1e3a..d41369ddcd40 100644 --- a/csharp/ql/test/library-tests/locations/locations.expected +++ b/csharp/ql/test/library-tests/locations/locations.expected @@ -4,30 +4,62 @@ member_locations | A.cs:3:23:3:26 | A | A.cs:7:40:7:44 | Event | A.cs:7:40:7:44 | A.cs:7:40:7:44 | | A.cs:3:23:3:26 | A | A.cs:8:17:8:21 | Apply | A.cs:8:17:8:21 | A.cs:8:17:8:21 | | A.cs:3:23:3:26 | A | A.cs:9:28:9:35 | ToObject | A.cs:9:28:9:35 | A.cs:9:28:9:35 | +| A.cs:3:23:3:26 | A | A.cs:10:19:10:23 | Field | A.cs:10:19:10:23 | A.cs:10:19:10:23 | +| A.cs:3:23:3:26 | A | A.cs:11:12:11:12 | A | A.cs:11:12:11:12 | A.cs:11:12:11:12 | +| A.cs:3:23:3:26 | A | A.cs:12:12:12:12 | A | A.cs:12:12:12:12 | A.cs:12:12:12:12 | +| A.cs:3:23:3:26 | A | A.cs:13:6:13:6 | ~A | A.cs:13:6:13:6 | A.cs:13:6:13:6 | +| A.cs:3:23:3:26 | A | A.cs:14:33:14:33 | + | A.cs:14:33:14:33 | A.cs:14:33:14:33 | | A.cs:3:23:3:26 | A | A.cs:5:23:5:26 | Prop | A.cs:5:23:5:26 | A.cs:5:23:5:26 | | A.cs:3:23:3:26 | A | A.cs:6:23:6:26 | Item | A.cs:6:23:6:26 | A.cs:6:23:6:26 | | A.cs:3:23:3:26 | A | A.cs:7:40:7:44 | Event | A.cs:7:40:7:44 | A.cs:7:40:7:44 | | A.cs:3:23:3:26 | A | A.cs:8:17:8:21 | Apply | A.cs:8:17:8:21 | A.cs:8:17:8:21 | | A.cs:3:23:3:26 | A | A.cs:9:28:9:35 | ToObject | A.cs:9:28:9:35 | A.cs:9:28:9:35 | +| A.cs:3:23:3:26 | A | A.cs:10:19:10:23 | Field | A.cs:10:19:10:23 | A.cs:10:19:10:23 | +| A.cs:3:23:3:26 | A | A.cs:11:12:11:12 | A | A.cs:11:12:11:12 | A.cs:11:12:11:12 | +| A.cs:3:23:3:26 | A | A.cs:12:12:12:12 | A | A.cs:12:12:12:12 | A.cs:12:12:12:12 | +| A.cs:3:23:3:26 | A | A.cs:13:6:13:6 | ~A | A.cs:13:6:13:6 | A.cs:13:6:13:6 | +| A.cs:3:23:3:26 | A | A.cs:14:33:14:33 | + | A.cs:14:33:14:33 | A.cs:14:33:14:33 | | A.cs:3:23:3:26 | A`1 | A.cs:5:23:5:26 | Prop | A.cs:5:23:5:26 | A.cs:5:23:5:26 | | A.cs:3:23:3:26 | A`1 | A.cs:6:23:6:26 | Item | A.cs:6:23:6:26 | A.cs:6:23:6:26 | | A.cs:3:23:3:26 | A`1 | A.cs:7:40:7:44 | Event | A.cs:7:40:7:44 | A.cs:7:40:7:44 | | A.cs:3:23:3:26 | A`1 | A.cs:8:17:8:21 | Apply | A.cs:8:17:8:21 | A.cs:8:17:8:21 | | A.cs:3:23:3:26 | A`1 | A.cs:9:28:9:35 | ToObject | A.cs:9:28:9:35 | A.cs:9:28:9:35 | -| A.cs:12:14:12:15 | A2 | A.cs:14:28:14:31 | Prop | A.cs:14:28:14:31 | A.cs:14:28:14:31 | -| A.cs:12:14:12:15 | A2 | A.cs:16:28:16:31 | Item | A.cs:16:28:16:31 | A.cs:16:28:16:31 | -| A.cs:12:14:12:15 | A2 | A.cs:22:40:22:44 | Event | A.cs:22:40:22:44 | A.cs:22:40:22:44 | -| A.cs:12:14:12:15 | A2 | A.cs:28:28:28:35 | ToObject | A.cs:28:28:28:35 | A.cs:28:28:28:35 | -| A.cs:12:14:12:15 | A2 | A.cs:30:17:30:17 | M | A.cs:30:17:30:17 | A.cs:30:17:30:17 | +| A.cs:3:23:3:26 | A`1 | A.cs:10:19:10:23 | Field | A.cs:10:19:10:23 | A.cs:10:19:10:23 | +| A.cs:3:23:3:26 | A`1 | A.cs:11:12:11:12 | A | A.cs:11:12:11:12 | A.cs:11:12:11:12 | +| A.cs:3:23:3:26 | A`1 | A.cs:12:12:12:12 | A | A.cs:12:12:12:12 | A.cs:12:12:12:12 | +| A.cs:3:23:3:26 | A`1 | A.cs:13:6:13:6 | ~A | A.cs:13:6:13:6 | A.cs:13:6:13:6 | +| A.cs:3:23:3:26 | A`1 | A.cs:14:33:14:33 | + | A.cs:14:33:14:33 | A.cs:14:33:14:33 | +| A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A.cs:17:14:17:15 | +| A.cs:17:14:17:15 | A2 | A.cs:19:28:19:31 | Prop | A.cs:19:28:19:31 | A.cs:19:28:19:31 | +| A.cs:17:14:17:15 | A2 | A.cs:21:28:21:31 | Item | A.cs:21:28:21:31 | A.cs:21:28:21:31 | +| A.cs:17:14:17:15 | A2 | A.cs:27:40:27:44 | Event | A.cs:27:40:27:44 | A.cs:27:40:27:44 | +| A.cs:17:14:17:15 | A2 | A.cs:33:28:33:35 | ToObject | A.cs:33:28:33:35 | A.cs:33:28:33:35 | +| A.cs:17:14:17:15 | A2 | A.cs:35:17:35:17 | M | A.cs:35:17:35:17 | A.cs:35:17:35:17 | +| B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B.cs:3:14:3:14 | | B.cs:3:14:3:14 | B | B.cs:5:25:5:28 | Prop | B.cs:5:25:5:28 | B.cs:5:25:5:28 | | B.cs:3:14:3:14 | B | B.cs:7:25:7:28 | Item | B.cs:7:25:7:28 | B.cs:7:25:7:28 | | B.cs:3:14:3:14 | B | B.cs:13:40:13:44 | Event | B.cs:13:40:13:44 | B.cs:13:40:13:44 | | B.cs:3:14:3:14 | B | B.cs:19:28:19:35 | ToObject | B.cs:19:28:19:35 | B.cs:19:28:19:35 | +| Base.cs:1:23:1:29 | Base | Base.cs:1:23:1:26 | Base | Base.cs:1:23:1:26 | Base.cs:1:23:1:26 | | Base.cs:1:23:1:29 | Base | Base.cs:3:17:3:17 | M | Base.cs:3:17:3:17 | Base.cs:3:17:3:17 | | Base.cs:1:23:1:29 | Base | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +| Base.cs:1:23:1:29 | Base`1 | Base.cs:1:23:1:26 | Base | Base.cs:1:23:1:26 | Base.cs:1:23:1:26 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:3:17:3:17 | M | Base.cs:3:17:3:17 | Base.cs:3:17:3:17 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +| Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +| Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +| Base.cs:8:23:8:30 | Base2`1 | Base.cs:8:23:8:27 | Base2 | Base.cs:8:23:8:27 | Base.cs:8:23:8:27 | +| C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | C.cs:3:7:3:7 | | C.cs:3:7:3:7 | C | C.cs:5:17:5:17 | M | C.cs:5:17:5:17 | C.cs:5:17:5:17 | +| Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | +| Multiple1.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:36 | MultipleGeneric | Multiple1.cs:3:22:3:36 | Multiple1.cs:3:22:3:36 | +| Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | Multiple1.cs:5:14:5:30 | +| Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:7:33:7:33 | M | Multiple1.cs:7:33:7:33 | Multiple1.cs:7:33:7:33 | +| Multiple2.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | +| Multiple2.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:36 | MultipleGeneric | Multiple1.cs:3:22:3:36 | Multiple1.cs:3:22:3:36 | +| Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | Multiple2.cs:5:14:5:30 | +| Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:7:17:7:17 | M | Multiple2.cs:7:17:7:17 | Multiple2.cs:7:17:7:17 | +| Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | Sub.cs:1:14:1:16 | | Sub.cs:1:14:1:16 | Sub | Sub.cs:3:17:3:20 | SubM | Sub.cs:3:17:3:20 | Sub.cs:3:17:3:20 | accessor_location | A.cs:3:23:3:26 | A | A.cs:5:30:5:32 | get_Prop | A.cs:5:30:5:32 | A.cs:5:30:5:32 | @@ -45,11 +77,11 @@ accessor_location | A.cs:3:23:3:26 | A`1 | A.cs:6:46:6:48 | set_Item | A.cs:6:46:6:48 | A.cs:6:46:6:48 | | A.cs:3:23:3:26 | A`1 | A.cs:7:40:7:44 | add_Event | A.cs:7:40:7:44 | A.cs:7:40:7:44 | | A.cs:3:23:3:26 | A`1 | A.cs:7:40:7:44 | remove_Event | A.cs:7:40:7:44 | A.cs:7:40:7:44 | -| A.cs:12:14:12:15 | A2 | A.cs:14:36:14:37 | get_Prop | A.cs:14:36:14:37 | A.cs:14:36:14:37 | -| A.cs:12:14:12:15 | A2 | A.cs:18:9:18:11 | get_Item | A.cs:18:9:18:11 | A.cs:18:9:18:11 | -| A.cs:12:14:12:15 | A2 | A.cs:19:9:19:11 | set_Item | A.cs:19:9:19:11 | A.cs:19:9:19:11 | -| A.cs:12:14:12:15 | A2 | A.cs:24:9:24:11 | add_Event | A.cs:24:9:24:11 | A.cs:24:9:24:11 | -| A.cs:12:14:12:15 | A2 | A.cs:25:9:25:14 | remove_Event | A.cs:25:9:25:14 | A.cs:25:9:25:14 | +| A.cs:17:14:17:15 | A2 | A.cs:19:36:19:37 | get_Prop | A.cs:19:36:19:37 | A.cs:19:36:19:37 | +| A.cs:17:14:17:15 | A2 | A.cs:23:9:23:11 | get_Item | A.cs:23:9:23:11 | A.cs:23:9:23:11 | +| A.cs:17:14:17:15 | A2 | A.cs:24:9:24:11 | set_Item | A.cs:24:9:24:11 | A.cs:24:9:24:11 | +| A.cs:17:14:17:15 | A2 | A.cs:29:9:29:11 | add_Event | A.cs:29:9:29:11 | A.cs:29:9:29:11 | +| A.cs:17:14:17:15 | A2 | A.cs:30:9:30:14 | remove_Event | A.cs:30:9:30:14 | A.cs:30:9:30:14 | | B.cs:3:14:3:14 | B | B.cs:5:33:5:33 | get_Prop | B.cs:5:33:5:33 | B.cs:5:33:5:33 | | B.cs:3:14:3:14 | B | B.cs:9:9:9:11 | get_Item | B.cs:9:9:9:11 | B.cs:9:9:9:11 | | B.cs:3:14:3:14 | B | B.cs:10:9:10:11 | set_Item | B.cs:10:9:10:11 | B.cs:10:9:10:11 | @@ -60,24 +92,88 @@ type_location | A.cs:3:23:3:26 | A | A.cs:3:23:3:26 | A.cs:3:23:3:26 | | A.cs:3:23:3:26 | A`1 | A.cs:3:23:3:26 | A.cs:3:23:3:26 | | A.cs:3:25:3:25 | T | A.cs:3:25:3:25 | A.cs:3:25:3:25 | -| A.cs:12:14:12:15 | A2 | A.cs:12:14:12:15 | A.cs:12:14:12:15 | +| A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A.cs:17:14:17:15 | | B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B.cs:3:14:3:14 | | Base.cs:1:23:1:29 | Base | Base.cs:1:23:1:29 | Base.cs:1:23:1:29 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:1:23:1:29 | Base.cs:1:23:1:29 | | Base.cs:1:28:1:28 | T | Base.cs:1:28:1:28 | Base.cs:1:28:1:28 | | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +| Base.cs:8:23:8:30 | Base2`1 | Base.cs:8:23:8:30 | Base.cs:8:23:8:30 | +| Base.cs:8:29:8:29 | T | Base.cs:8:29:8:29 | Base.cs:8:29:8:29 | | C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | C.cs:3:7:3:7 | | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple1.cs:1:22:1:29 | Multiple | Multiple2.cs:1:22:1:29 | Multiple2.cs:1:22:1:29 | +| Multiple1.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:39 | Multiple1.cs:3:22:3:39 | +| Multiple1.cs:3:22:3:39 | MultipleGeneric`1 | Multiple2.cs:3:22:3:39 | Multiple2.cs:3:22:3:39 | +| Multiple1.cs:3:38:3:38 | S | Multiple1.cs:3:38:3:38 | Multiple1.cs:3:38:3:38 | +| Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | Multiple1.cs:5:14:5:30 | +| Multiple1.cs:7:19:7:31 | (Int32,String) | Multiple1.cs:7:19:7:31 | Multiple1.cs:7:19:7:31 | +| Multiple1.cs:10:9:10:18 | (Int32,Int32) | Multiple1.cs:10:9:10:18 | Multiple1.cs:10:9:10:18 | | Multiple2.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple2.cs:1:22:1:29 | Multiple | Multiple2.cs:1:22:1:29 | Multiple2.cs:1:22:1:29 | +| Multiple2.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:39 | Multiple1.cs:3:22:3:39 | +| Multiple2.cs:3:22:3:39 | MultipleGeneric`1 | Multiple2.cs:3:22:3:39 | Multiple2.cs:3:22:3:39 | +| Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | Multiple2.cs:5:14:5:30 | | Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | Sub.cs:1:14:1:16 | calltype_location -| A.cs:12:14:12:15 | call to constructor A | A.cs:3:23:3:26 | A | A.cs:3:23:3:26 | A.cs:3:23:3:26 | -| A.cs:32:20:32:24 | object creation of type A2 | A.cs:12:14:12:15 | A2 | A.cs:12:14:12:15 | A.cs:12:14:12:15 | +| A.cs:17:14:17:15 | call to constructor A | A.cs:3:23:3:26 | A | A.cs:3:23:3:26 | A.cs:3:23:3:26 | +| A.cs:37:20:37:24 | object creation of type A2 | A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A.cs:17:14:17:15 | | B.cs:3:14:3:14 | call to constructor A | A.cs:3:23:3:26 | A | A.cs:3:23:3:26 | A.cs:3:23:3:26 | | C.cs:7:15:7:21 | object creation of type B | B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B.cs:3:14:3:14 | -| C.cs:9:17:9:24 | object creation of type A2 | A.cs:12:14:12:15 | A2 | A.cs:12:14:12:15 | A.cs:12:14:12:15 | +| C.cs:9:17:9:24 | object creation of type A2 | A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A.cs:17:14:17:15 | | Sub.cs:1:14:1:16 | call to constructor Base | Base.cs:1:23:1:29 | Base | Base.cs:1:23:1:29 | Base.cs:1:23:1:29 | | Sub.cs:6:17:6:31 | object creation of type InnerBase | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +typeparameter_location +| A.cs:3:25:3:25 | T | A.cs:3:25:3:25 | A.cs:3:25:3:25 | +| Base.cs:1:28:1:28 | T | Base.cs:1:28:1:28 | Base.cs:1:28:1:28 | +| Base.cs:8:29:8:29 | T | Base.cs:8:29:8:29 | Base.cs:8:29:8:29 | +| Multiple1.cs:3:38:3:38 | S | Multiple1.cs:3:38:3:38 | Multiple1.cs:3:38:3:38 | +| Multiple1.cs:3:38:3:38 | S | Multiple2.cs:3:38:3:38 | Multiple2.cs:3:38:3:38 | +tupletype_location +| Multiple1.cs:7:19:7:31 | (Int32,String) | Multiple1.cs:7:19:7:31 | Multiple1.cs:7:19:7:31 | +| Multiple1.cs:7:19:7:31 | (Int32,String) | Multiple2.cs:9:9:9:21 | Multiple2.cs:9:9:9:21 | +| Multiple1.cs:10:9:10:18 | (Int32,Int32) | Multiple1.cs:10:9:10:18 | Multiple1.cs:10:9:10:18 | +parameter_locations +| A.cs:6:41:6:43 | get_Item | A.cs:6:32:6:36 | index | A.cs:6:32:6:36 | A.cs:6:32:6:36 | +| A.cs:6:41:6:43 | get_Item | A.cs:6:32:6:36 | index | A.cs:6:32:6:36 | A.cs:6:32:6:36 | +| A.cs:6:41:6:43 | get_Item | A.cs:6:32:6:36 | index | A.cs:6:32:6:36 | A.cs:6:32:6:36 | +| A.cs:6:46:6:48 | set_Item | A.cs:6:32:6:36 | index | A.cs:6:32:6:36 | A.cs:6:32:6:36 | +| A.cs:6:46:6:48 | set_Item | A.cs:6:32:6:36 | index | A.cs:6:32:6:36 | A.cs:6:32:6:36 | +| A.cs:6:46:6:48 | set_Item | A.cs:6:32:6:36 | index | A.cs:6:32:6:36 | A.cs:6:32:6:36 | +| A.cs:6:46:6:48 | set_Item | A.cs:6:46:6:48 | value | A.cs:6:46:6:48 | A.cs:6:46:6:48 | +| A.cs:6:46:6:48 | set_Item | A.cs:6:46:6:48 | value | A.cs:6:46:6:48 | A.cs:6:46:6:48 | +| A.cs:6:46:6:48 | set_Item | A.cs:6:46:6:48 | value | A.cs:6:46:6:48 | A.cs:6:46:6:48 | +| A.cs:7:40:7:44 | add_Event | A.cs:7:40:7:44 | value | A.cs:7:40:7:44 | A.cs:7:40:7:44 | +| A.cs:7:40:7:44 | add_Event | A.cs:7:40:7:44 | value | A.cs:7:40:7:44 | A.cs:7:40:7:44 | +| A.cs:7:40:7:44 | add_Event | A.cs:7:40:7:44 | value | A.cs:7:40:7:44 | A.cs:7:40:7:44 | +| A.cs:7:40:7:44 | remove_Event | A.cs:7:40:7:44 | value | A.cs:7:40:7:44 | A.cs:7:40:7:44 | +| A.cs:7:40:7:44 | remove_Event | A.cs:7:40:7:44 | value | A.cs:7:40:7:44 | A.cs:7:40:7:44 | +| A.cs:7:40:7:44 | remove_Event | A.cs:7:40:7:44 | value | A.cs:7:40:7:44 | A.cs:7:40:7:44 | +| A.cs:8:17:8:21 | Apply | A.cs:8:25:8:26 | t1 | A.cs:8:25:8:26 | A.cs:8:25:8:26 | +| A.cs:8:17:8:21 | Apply | A.cs:8:25:8:26 | t1 | A.cs:8:25:8:26 | A.cs:8:25:8:26 | +| A.cs:8:17:8:21 | Apply | A.cs:8:25:8:26 | t1 | A.cs:8:25:8:26 | A.cs:8:25:8:26 | +| A.cs:9:28:9:35 | ToObject | A.cs:9:39:9:40 | t2 | A.cs:9:39:9:40 | A.cs:9:39:9:40 | +| A.cs:9:28:9:35 | ToObject | A.cs:9:39:9:40 | t2 | A.cs:9:39:9:40 | A.cs:9:39:9:40 | +| A.cs:9:28:9:35 | ToObject | A.cs:9:39:9:40 | t2 | A.cs:9:39:9:40 | A.cs:9:39:9:40 | +| A.cs:12:12:12:12 | A | A.cs:12:16:12:16 | t | A.cs:12:16:12:16 | A.cs:12:16:12:16 | +| A.cs:12:12:12:12 | A | A.cs:12:16:12:16 | t | A.cs:12:16:12:16 | A.cs:12:16:12:16 | +| A.cs:12:12:12:12 | A | A.cs:12:16:12:16 | t | A.cs:12:16:12:16 | A.cs:12:16:12:16 | +| A.cs:14:33:14:33 | + | A.cs:14:40:14:41 | a1 | A.cs:14:40:14:41 | A.cs:14:40:14:41 | +| A.cs:14:33:14:33 | + | A.cs:14:40:14:41 | a1 | A.cs:14:40:14:41 | A.cs:14:40:14:41 | +| A.cs:14:33:14:33 | + | A.cs:14:40:14:41 | a1 | A.cs:14:40:14:41 | A.cs:14:40:14:41 | +| A.cs:14:33:14:33 | + | A.cs:14:49:14:50 | a2 | A.cs:14:49:14:50 | A.cs:14:49:14:50 | +| A.cs:14:33:14:33 | + | A.cs:14:49:14:50 | a2 | A.cs:14:49:14:50 | A.cs:14:49:14:50 | +| A.cs:14:33:14:33 | + | A.cs:14:49:14:50 | a2 | A.cs:14:49:14:50 | A.cs:14:49:14:50 | +| A.cs:23:9:23:11 | get_Item | A.cs:21:37:21:37 | i | A.cs:21:37:21:37 | A.cs:21:37:21:37 | +| A.cs:24:9:24:11 | set_Item | A.cs:21:37:21:37 | i | A.cs:21:37:21:37 | A.cs:21:37:21:37 | +| A.cs:24:9:24:11 | set_Item | A.cs:24:9:24:11 | value | A.cs:24:9:24:11 | A.cs:24:9:24:11 | +| A.cs:29:9:29:11 | add_Event | A.cs:29:9:29:11 | value | A.cs:29:9:29:11 | A.cs:29:9:29:11 | +| A.cs:30:9:30:14 | remove_Event | A.cs:30:9:30:14 | value | A.cs:30:9:30:14 | A.cs:30:9:30:14 | +| A.cs:33:28:33:35 | ToObject | A.cs:33:44:33:44 | t | A.cs:33:44:33:44 | A.cs:33:44:33:44 | +| B.cs:9:9:9:11 | get_Item | B.cs:7:34:7:34 | i | B.cs:7:34:7:34 | B.cs:7:34:7:34 | +| B.cs:10:9:10:11 | set_Item | B.cs:7:34:7:34 | i | B.cs:7:34:7:34 | B.cs:7:34:7:34 | +| B.cs:10:9:10:11 | set_Item | B.cs:10:9:10:11 | value | B.cs:10:9:10:11 | B.cs:10:9:10:11 | +| B.cs:15:9:15:11 | add_Event | B.cs:15:9:15:11 | value | B.cs:15:9:15:11 | B.cs:15:9:15:11 | +| B.cs:16:9:16:14 | remove_Event | B.cs:16:9:16:14 | value | B.cs:16:9:16:14 | B.cs:16:9:16:14 | +| B.cs:19:28:19:35 | ToObject | B.cs:19:41:19:41 | t | B.cs:19:41:19:41 | B.cs:19:41:19:41 | diff --git a/csharp/ql/test/library-tests/locations/locations.ql b/csharp/ql/test/library-tests/locations/locations.ql index 04ea140340bd..d97852d7b3b5 100644 --- a/csharp/ql/test/library-tests/locations/locations.ql +++ b/csharp/ql/test/library-tests/locations/locations.ql @@ -4,7 +4,7 @@ query predicate member_locations(Type t, Member m, SourceLocation l) { t = m.getDeclaringType() and l = m.getLocation() and not l instanceof EmptyLocation and - not m instanceof Constructor + t.fromSource() } query predicate accessor_location(Type t, Accessor a, SourceLocation l) { @@ -21,3 +21,11 @@ query predicate calltype_location(Call call, Type t, SourceLocation l) { t = call.getType() and l = t.getALocation() } + +query predicate typeparameter_location(TypeParameter tp, SourceLocation l) { tp.getALocation() = l } + +query predicate tupletype_location(TupleType tt, SourceLocation l) { tt.getALocation() = l } + +query predicate parameter_locations(Callable c, Parameter p, SourceLocation l) { + p.getCallable() = c and p.getALocation() = l +} diff --git a/csharp/ql/test/query-tests/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected b/csharp/ql/test/query-tests/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected index e154d10b9d3a..fc310e53fded 100644 --- a/csharp/ql/test/query-tests/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected +++ b/csharp/ql/test/query-tests/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected @@ -1,31 +1,31 @@ -| ConstantCondition.cs:38:18:38:29 | (...) ... | Expression is always 'null'. | -| ConstantCondition.cs:39:18:39:24 | (...) ... | Expression is never 'null'. | -| ConstantCondition.cs:46:17:46:26 | (...) ... | Expression is always 'null'. | -| ConstantCondition.cs:47:17:47:18 | "" | Expression is never 'null'. | -| ConstantCondition.cs:48:13:48:19 | (...) ... | Expression is never 'null'. | -| ConstantCondition.cs:49:13:49:14 | "" | Expression is never 'null'. | -| ConstantCondition.cs:62:18:62:18 | 2 | Pattern never matches. | -| ConstantCondition.cs:64:18:64:18 | 3 | Pattern always matches. | -| ConstantCondition.cs:75:18:75:20 | access to type Int32 | Pattern never matches. | -| ConstantCondition.cs:95:13:95:13 | _ | Pattern always matches. | -| ConstantCondition.cs:114:13:114:14 | access to parameter b1 | Condition always evaluates to 'true'. | -| ConstantCondition.cs:114:19:114:20 | access to parameter b2 | Condition always evaluates to 'true'. | -| ConstantCondition.cs:141:22:141:22 | _ | Pattern always matches. | -| ConstantConditionBad.cs:5:16:5:20 | ... > ... | Condition always evaluates to 'false'. | -| ConstantConditionalExpressionCondition.cs:11:22:11:34 | ... == ... | Condition always evaluates to 'true'. | -| ConstantConditionalExpressionCondition.cs:12:21:12:25 | false | Condition always evaluates to 'false'. | -| ConstantConditionalExpressionCondition.cs:13:21:13:30 | ... == ... | Condition always evaluates to 'true'. | -| ConstantForCondition.cs:9:29:9:33 | false | Condition always evaluates to 'false'. | -| ConstantForCondition.cs:11:29:11:34 | ... == ... | Condition always evaluates to 'false'. | -| ConstantIfCondition.cs:11:17:11:29 | ... == ... | Condition always evaluates to 'true'. | -| ConstantIfCondition.cs:14:17:14:21 | false | Condition always evaluates to 'false'. | -| ConstantIfCondition.cs:17:17:17:26 | ... == ... | Condition always evaluates to 'true'. | -| ConstantIsNullOrEmpty.cs:10:21:10:54 | call to method IsNullOrEmpty | Condition always evaluates to 'false'. | -| ConstantIsNullOrEmpty.cs:46:21:46:46 | call to method IsNullOrEmpty | Condition always evaluates to 'true'. | -| ConstantIsNullOrEmpty.cs:50:21:50:44 | call to method IsNullOrEmpty | Condition always evaluates to 'true'. | -| ConstantIsNullOrEmpty.cs:54:21:54:45 | call to method IsNullOrEmpty | Condition always evaluates to 'false'. | -| ConstantNullCoalescingLeftHandOperand.cs:11:24:11:34 | access to constant NULL_OBJECT | Expression is never 'null'. | -| ConstantNullCoalescingLeftHandOperand.cs:12:24:12:27 | null | Expression is always 'null'. | -| ConstantWhileCondition.cs:12:20:12:32 | ... == ... | Condition always evaluates to 'true'. | -| ConstantWhileCondition.cs:16:20:16:24 | false | Condition always evaluates to 'false'. | -| ConstantWhileCondition.cs:24:20:24:29 | ... == ... | Condition always evaluates to 'true'. | +| ConstantCondition.cs:38:18:38:29 | (...) ... | Expression is always 'null'. | ConstantCondition.cs:38:18:38:29 | (...) ... | dummy | +| ConstantCondition.cs:39:18:39:24 | (...) ... | Expression is never 'null'. | ConstantCondition.cs:39:18:39:24 | (...) ... | dummy | +| ConstantCondition.cs:46:17:46:26 | (...) ... | Expression is always 'null'. | ConstantCondition.cs:46:17:46:26 | (...) ... | dummy | +| ConstantCondition.cs:47:17:47:18 | "" | Expression is never 'null'. | ConstantCondition.cs:47:17:47:18 | "" | dummy | +| ConstantCondition.cs:48:13:48:19 | (...) ... | Expression is never 'null'. | ConstantCondition.cs:48:13:48:19 | (...) ... | dummy | +| ConstantCondition.cs:49:13:49:14 | "" | Expression is never 'null'. | ConstantCondition.cs:49:13:49:14 | "" | dummy | +| ConstantCondition.cs:62:18:62:18 | 2 | Pattern never matches. | ConstantCondition.cs:62:18:62:18 | 2 | dummy | +| ConstantCondition.cs:64:18:64:18 | 3 | Pattern always matches. | ConstantCondition.cs:64:18:64:18 | 3 | dummy | +| ConstantCondition.cs:75:18:75:20 | access to type Int32 | Pattern never matches. | ConstantCondition.cs:75:18:75:20 | access to type Int32 | dummy | +| ConstantCondition.cs:95:13:95:13 | _ | Pattern always matches. | ConstantCondition.cs:95:13:95:13 | _ | dummy | +| ConstantCondition.cs:114:13:114:14 | access to parameter b1 | Condition is always true because of $@. | ConstantCondition.cs:110:14:110:15 | access to parameter b1 | access to parameter b1 | +| ConstantCondition.cs:114:19:114:20 | access to parameter b2 | Condition is always true because of $@. | ConstantCondition.cs:112:14:112:15 | access to parameter b2 | access to parameter b2 | +| ConstantCondition.cs:141:22:141:22 | _ | Pattern always matches. | ConstantCondition.cs:141:22:141:22 | _ | dummy | +| ConstantConditionBad.cs:5:16:5:20 | ... > ... | Condition always evaluates to 'false'. | ConstantConditionBad.cs:5:16:5:20 | ... > ... | dummy | +| ConstantConditionalExpressionCondition.cs:11:22:11:34 | ... == ... | Condition always evaluates to 'true'. | ConstantConditionalExpressionCondition.cs:11:22:11:34 | ... == ... | dummy | +| ConstantConditionalExpressionCondition.cs:12:21:12:25 | false | Condition always evaluates to 'false'. | ConstantConditionalExpressionCondition.cs:12:21:12:25 | false | dummy | +| ConstantConditionalExpressionCondition.cs:13:21:13:30 | ... == ... | Condition always evaluates to 'true'. | ConstantConditionalExpressionCondition.cs:13:21:13:30 | ... == ... | dummy | +| ConstantForCondition.cs:9:29:9:33 | false | Condition always evaluates to 'false'. | ConstantForCondition.cs:9:29:9:33 | false | dummy | +| ConstantForCondition.cs:11:29:11:34 | ... == ... | Condition always evaluates to 'false'. | ConstantForCondition.cs:11:29:11:34 | ... == ... | dummy | +| ConstantIfCondition.cs:11:17:11:29 | ... == ... | Condition always evaluates to 'true'. | ConstantIfCondition.cs:11:17:11:29 | ... == ... | dummy | +| ConstantIfCondition.cs:14:17:14:21 | false | Condition always evaluates to 'false'. | ConstantIfCondition.cs:14:17:14:21 | false | dummy | +| ConstantIfCondition.cs:17:17:17:26 | ... == ... | Condition always evaluates to 'true'. | ConstantIfCondition.cs:17:17:17:26 | ... == ... | dummy | +| ConstantIsNullOrEmpty.cs:10:21:10:54 | call to method IsNullOrEmpty | Condition always evaluates to 'false'. | ConstantIsNullOrEmpty.cs:10:21:10:54 | call to method IsNullOrEmpty | dummy | +| ConstantIsNullOrEmpty.cs:46:21:46:46 | call to method IsNullOrEmpty | Condition always evaluates to 'true'. | ConstantIsNullOrEmpty.cs:46:21:46:46 | call to method IsNullOrEmpty | dummy | +| ConstantIsNullOrEmpty.cs:50:21:50:44 | call to method IsNullOrEmpty | Condition always evaluates to 'true'. | ConstantIsNullOrEmpty.cs:50:21:50:44 | call to method IsNullOrEmpty | dummy | +| ConstantIsNullOrEmpty.cs:54:21:54:45 | call to method IsNullOrEmpty | Condition always evaluates to 'false'. | ConstantIsNullOrEmpty.cs:54:21:54:45 | call to method IsNullOrEmpty | dummy | +| ConstantNullCoalescingLeftHandOperand.cs:11:24:11:34 | access to constant NULL_OBJECT | Expression is never 'null'. | ConstantNullCoalescingLeftHandOperand.cs:11:24:11:34 | access to constant NULL_OBJECT | dummy | +| ConstantNullCoalescingLeftHandOperand.cs:12:24:12:27 | null | Expression is always 'null'. | ConstantNullCoalescingLeftHandOperand.cs:12:24:12:27 | null | dummy | +| ConstantWhileCondition.cs:12:20:12:32 | ... == ... | Condition always evaluates to 'true'. | ConstantWhileCondition.cs:12:20:12:32 | ... == ... | dummy | +| ConstantWhileCondition.cs:16:20:16:24 | false | Condition always evaluates to 'false'. | ConstantWhileCondition.cs:16:20:16:24 | false | dummy | +| ConstantWhileCondition.cs:24:20:24:29 | ... == ... | Condition always evaluates to 'true'. | ConstantWhileCondition.cs:24:20:24:29 | ... == ... | dummy | diff --git a/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.cs b/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.cs index 04d8e20c09e5..03a6644fe800 100644 --- a/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.cs +++ b/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.cs @@ -395,7 +395,7 @@ string M7(bool b) { var s = ""; if (b) - s = "abc"; // $ Alert + s = "abc"; // Not reported if (!b) return s; return null; diff --git a/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.expected b/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.expected index 6f718c49407e..6271d6276c72 100644 --- a/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.expected +++ b/csharp/ql/test/query-tests/Dead Code/DeadStoreOfLocal/DeadStoreOfLocal.expected @@ -13,7 +13,6 @@ | DeadStoreOfLocal.cs:314:18:314:23 | Object v2 | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:314:22:314:23 | v2 | v2 | | DeadStoreOfLocal.cs:331:9:331:32 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:327:23:327:23 | b | b | | DeadStoreOfLocal.cs:372:13:372:20 | String s = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:372:13:372:13 | s | s | -| DeadStoreOfLocal.cs:398:13:398:21 | ... = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:396:13:396:13 | s | s | | DeadStoreOfLocal.cs:472:20:472:76 | FileStream y = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocal.cs:472:20:472:20 | y | y | | DeadStoreOfLocalBad.cs:7:13:7:48 | Boolean success = ... | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:7:13:7:19 | success | success | | DeadStoreOfLocalBad.cs:23:32:23:32 | FormatException e | This assignment to $@ is useless, since its value is never read. | DeadStoreOfLocalBad.cs:23:32:23:32 | e | e | diff --git a/csharp/ql/test/query-tests/Nullness/D.cs b/csharp/ql/test/query-tests/Nullness/D.cs index ffc4fd193c77..a465a434be6a 100644 --- a/csharp/ql/test/query-tests/Nullness/D.cs +++ b/csharp/ql/test/query-tests/Nullness/D.cs @@ -14,7 +14,7 @@ public D(bool b, bool f) public void Caller() { Callee1(new object()); - Callee1(null); // $ Source[cs/dereferenced-value-may-be-null] + Callee1(null); Callee2(new object()); } @@ -23,7 +23,7 @@ public void Callee1(object param) param.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] } - public void Callee2(object param) // $ Source[cs/dereferenced-value-may-be-null] + public void Callee2(object param) { if (param != null) { @@ -55,24 +55,24 @@ public void NullGuards() if ((2 > 1 && o4 != null) != false) o4.ToString(); // GOOD - var o5 = (o4 != null) ? "" : null; // $ Source[cs/dereferenced-value-may-be-null] + var o5 = (o4 != null) ? "" : null; if (o5 != null) o4.ToString(); // GOOD if (o4 != null) - o5.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + o5.ToString(); // GOOD var o6 = maybe ? null : ""; if (!CustomIsNull(o6)) o6.ToString(); // GOOD - var o7 = maybe ? null : ""; // $ Source[cs/dereferenced-value-may-be-null] + var o7 = maybe ? null : ""; var ok = o7 != null && 2 > 1; if (ok) o7.ToString(); // GOOD else o7.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] - var o8 = maybe ? null : ""; // $ Source[cs/dereferenced-value-may-be-null] + var o8 = maybe ? null : ""; int track = o8 == null ? 42 : 1 + 1; if (track == 2) o8.ToString(); // GOOD @@ -86,7 +86,7 @@ public void NullGuards() public void Deref(int i) { - int[] xs = maybe ? null : new int[2]; // $ Source[cs/dereferenced-value-may-be-null] + int[] xs = maybe ? null : new int[2]; if (i > 1) xs[0] = 5; // $ Alert[cs/dereferenced-value-may-be-null] @@ -122,7 +122,7 @@ public void F(bool b) x.ToString(); // GOOD } - public void LengthGuard(int[] a, int[] b) // $ Source[cs/dereferenced-value-may-be-null] + public void LengthGuard(int[] a, int[] b) { int alen = a == null ? 0 : a.Length; // GOOD int blen = b == null ? 0 : b.Length; // GOOD @@ -146,7 +146,7 @@ public void LengthGuard(int[] a, int[] b) // $ Source[cs/dereferenced-value-may- } } - public void MissedGuard(object obj) // $ Source[cs/dereferenced-value-may-be-null] + public void MissedGuard(object obj) { obj.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] var x = obj != null ? 1 : 0; @@ -160,7 +160,7 @@ private object MkMaybe() public void Exceptions() { - object obj = null; // $ Source[cs/dereferenced-value-may-be-null] + object obj = null; try { obj = MkMaybe(); @@ -237,16 +237,16 @@ public void CorrelatedConditions(bool cond, int num) if (flag) o.ToString(); // GOOD - o = null; // $ Source[cs/dereferenced-value-may-be-null] + o = null; var other = maybe ? null : ""; if (other == null) o = ""; if (other != null) o.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] (always - but reported as maybe) else - o.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + o.ToString(); // GOOD - var o2 = (num < 0) ? null : ""; // $ Source[cs/dereferenced-value-may-be-null] + var o2 = (num < 0) ? null : ""; if (num < 0) o2 = ""; else @@ -255,7 +255,7 @@ public void CorrelatedConditions(bool cond, int num) public void TrackingVariable(int[] a) { - object o = null; // $ Source[cs/dereferenced-value-may-be-null] + object o = null; object other = null; if (maybe) { @@ -264,9 +264,9 @@ public void TrackingVariable(int[] a) } if (other is string) - o.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + o.ToString(); // GOOD - o = null; // $ Source[cs/dereferenced-value-may-be-null] + o = null; int count = 0; var found = false; for (var i = 0; i < a.Length; i++) @@ -280,7 +280,7 @@ public void TrackingVariable(int[] a) } if (a[i] > 10000) { - o = null; // $ Source[cs/dereferenced-value-may-be-null] + o = null; count = 0; if (2 > i) { } found = false; @@ -291,17 +291,17 @@ public void TrackingVariable(int[] a) o.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] if (found) - o.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + o.ToString(); // GOOD - object prev = null; // $ Source[cs/dereferenced-value-may-be-null] + object prev = null; for (var i = 0; i < a.Length; ++i) { if (i != 0) - prev.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + prev.ToString(); // GOOD prev = a[i]; } - string s = null; // $ Source[cs/dereferenced-value-may-be-null] + string s = null; { var s_null = true; foreach (var i in a) @@ -310,10 +310,10 @@ public void TrackingVariable(int[] a) s = "" + a; } if (!s_null) - s.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + s.ToString(); // GOOD } - object r = null; // $ Source[cs/dereferenced-value-may-be-null] + object r = null; var stat = MyStatus.INIT; while (stat == MyStatus.INIT && stat != MyStatus.READY) { @@ -321,7 +321,7 @@ public void TrackingVariable(int[] a) if (stat == MyStatus.INIT) stat = MyStatus.READY; } - r.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + r.ToString(); // GOOD } public enum MyStatus @@ -348,7 +348,7 @@ public void G(object obj) public void LoopCorr(int iters) { - int[] a = null; // $ Source[cs/dereferenced-value-may-be-null] + int[] a = null; if (iters > 0) a = new int[iters]; @@ -357,13 +357,13 @@ public void LoopCorr(int iters) if (iters > 0) { - string last = null; // $ Source[cs/dereferenced-value-may-be-null] + string last = null; for (var i = 0; i < iters; i++) last = "abc"; last.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] } - int[] b = maybe ? null : new int[iters]; // $ Source[cs/dereferenced-value-may-be-null] + int[] b = maybe ? null : new int[iters]; if (iters > 0 && (b == null || b.Length < iters)) throw new Exception(); @@ -385,7 +385,7 @@ void Test(Exception e, bool b) ioe.ToString(); // $ Alert[cs/dereferenced-value-is-always-null] } - public void LengthGuard2(int[] a, int[] b) // $ Source[cs/dereferenced-value-may-be-null] + public void LengthGuard2(int[] a, int[] b) { int alen = a == null ? 0 : a.Length; // GOOD int sum = 0; @@ -402,13 +402,13 @@ public void LengthGuard2(int[] a, int[] b) // $ Source[cs/dereferenced-value-may i = -3; } - public void CorrConds2(object x, object y) // $ Source[cs/dereferenced-value-may-be-null] + public void CorrConds2(object x, object y) { if ((x != null && y == null) || (x == null && y != null)) return; if (x != null) - y.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + y.ToString(); // GOOD if (y != null) - x.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + x.ToString(); // GOOD } } diff --git a/csharp/ql/test/query-tests/Nullness/E.cs b/csharp/ql/test/query-tests/Nullness/E.cs index ef5886997801..e6a8066d9a7d 100644 --- a/csharp/ql/test/query-tests/Nullness/E.cs +++ b/csharp/ql/test/query-tests/Nullness/E.cs @@ -6,9 +6,9 @@ public class E { public void Ex1(long[][][] a1, int ix, int len) { - long[][] a2 = null; // $ Source[cs/dereferenced-value-may-be-null] + long[][] a2 = null; var haveA2 = ix < len && (a2 = a1[ix]) != null; - long[] a3 = null; // $ Source[cs/dereferenced-value-may-be-null] + long[] a3 = null; var haveA3 = haveA2 && (a3 = a2[ix]) != null; // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] if (haveA3) a3[0] = 0; // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] @@ -20,7 +20,7 @@ public void Ex2(bool x, bool y) var s2 = (s1 == null) ? null : ""; if (s2 == null) { - s1 = y ? null : ""; // $ Source[cs/dereferenced-value-may-be-null] + s1 = y ? null : ""; s2 = (s1 == null) ? null : ""; } if (s2 != null) @@ -32,7 +32,7 @@ public void Ex3(IEnumerable ss) string last = null; foreach (var s in new string[] { "aa", "bb" }) last = s; - last.ToString(); // GOOD + last.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] last = null; if (ss.Any()) @@ -40,7 +40,7 @@ public void Ex3(IEnumerable ss) foreach (var s in ss) last = s; - last.ToString(); // GOOD + last.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] } } @@ -48,7 +48,7 @@ public void Ex4(IEnumerable list, int step) { int index = 0; var result = new List>(); - List slice = null; // $ Source[cs/dereferenced-value-may-be-null] + List slice = null; var iter = list.GetEnumerator(); while (iter.MoveNext()) { @@ -63,7 +63,7 @@ public void Ex4(IEnumerable list, int step) } } - public void Ex5(bool hasArr, int[] arr) // $ Source[cs/dereferenced-value-may-be-null] + public void Ex5(bool hasArr, int[] arr) { int arrLen = 0; if (hasArr) @@ -104,7 +104,7 @@ public void Ex6(int[] vals, bool b1, bool b2) public void Ex7(int[] arr1) { - int[] arr2 = null; // $ Source[cs/dereferenced-value-may-be-null] + int[] arr2 = null; if (arr1.Length > 0) arr2 = new int[arr1.Length]; @@ -122,7 +122,7 @@ public void Ex8(int x, int lim) int j = 0; while (!stop && j < lim) { - int step = (j * obj.GetHashCode()) % 10; // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + int step = (j * obj.GetHashCode()) % 10; // GOOD if (step == 0) { obj.ToString(); // GOOD @@ -134,7 +134,7 @@ public void Ex8(int x, int lim) } else { - obj = null; // $ Source[cs/dereferenced-value-may-be-null] + obj = null; } continue; } @@ -149,17 +149,17 @@ public void Ex9(bool cond, object obj1) { return; } - object obj2 = obj1; // $ Source[cs/dereferenced-value-may-be-null] + object obj2 = obj1; if (obj2 != null && obj2.GetHashCode() % 5 > 2) { obj2.ToString(); // GOOD cond = true; } if (cond) - obj2.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + obj2.ToString(); // GOOD } - public void Ex10(int[] a) // $ Source[cs/dereferenced-value-may-be-null] + public void Ex10(int[] a) { int n = a == null ? 0 : a.Length; for (var i = 0; i < n; i++) @@ -170,12 +170,12 @@ public void Ex10(int[] a) // $ Source[cs/dereferenced-value-may-be-null] } } - public void Ex11(object obj, bool b1) // $ Source[cs/dereferenced-value-may-be-null] + public void Ex11(object obj, bool b1) { bool b2 = obj == null ? false : b1; if (b2 == null) { - obj.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + obj.ToString(); // GOOD } if (obj == null) { @@ -183,11 +183,11 @@ public void Ex11(object obj, bool b1) // $ Source[cs/dereferenced-value-may-be-n } if (b1 == null) { - obj.ToString(); // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + obj.ToString(); // GOOD } } - public void Ex12(object o) // $ Source[cs/dereferenced-value-may-be-null] + public void Ex12(object o) { var i = o.GetHashCode(); // $ Alert[cs/dereferenced-value-may-be-null] var s = o?.ToString(); @@ -195,12 +195,12 @@ public void Ex12(object o) // $ Source[cs/dereferenced-value-may-be-null] public void Ex13(bool b) { - var o = b ? null : ""; // $ Source[cs/dereferenced-value-may-be-null] - o.M1(); // GOOD + var o = b ? null : ""; + o.M1(); // GOOD (because M1 doesn't deref o) if (b) o.M2(); // $ Alert[cs/dereferenced-value-may-be-null] else - o.Select(x => x); // $ Alert[cs/dereferenced-value-may-be-null] + o.Select(x => x); // GOOD } public int Ex14(string s) @@ -214,28 +214,28 @@ public void Ex15(bool b) { var x = ""; if (b) - x = null; // $ Source[cs/dereferenced-value-may-be-null] + x = null; x.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] if (b) - x.ToString(); // $ Alert[cs/dereferenced-value-is-always-null] + x.ToString(); // dominated by prior deref, i.e. not reported } public void Ex16(bool b) { var x = ""; if (b) - x = null; // $ Source[cs/dereferenced-value-may-be-null] + x = null; if (b) - x.ToString(); // $ Alert[cs/dereferenced-value-is-always-null] - x.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] + x.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] + x.ToString(); // "dominated" by prior deref, i.e. not reported } - public int Ex17(int? i) // $ Source[cs/dereferenced-value-may-be-null] + public int Ex17(int? i) { return i.Value; // $ Alert[cs/dereferenced-value-may-be-null] } - public int Ex18(int? i) // $ Source[cs/dereferenced-value-may-be-null] + public int Ex18(int? i) { return (int)i; // $ Alert[cs/dereferenced-value-may-be-null] } @@ -280,7 +280,7 @@ public void Ex23(bool b) { if (b) b.ToString(); - var o = Make(); // $ Source[cs/dereferenced-value-may-be-null] + var o = Make(); o?.ToString(); o.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] if (b) @@ -298,7 +298,7 @@ public void Ex24(bool b) public void Ex25(object o) { - var s = o as string; // $ Source[cs/dereferenced-value-may-be-null] + var s = o as string; s.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] } @@ -339,13 +339,13 @@ static void Ex29(string s) static void Ex30(string s, object o) { - var x = s ?? o as string; // $ Source[cs/dereferenced-value-may-be-null] + var x = s ?? o as string; x.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] } static void Ex31(string s, object o) { - dynamic x = s ?? o as string; // $ Source[cs/dereferenced-value-may-be-null] + dynamic x = s ?? o as string; x.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] } @@ -371,19 +371,19 @@ static int Ex36(object o) { if (o is string) { - var s = o as string; // $ Source[cs/dereferenced-value-may-be-null] + var s = o as string; return s.Length; // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] } return -1; } - static bool Ex37(E e1, E e2) // $ Source[cs/dereferenced-value-may-be-null] + static bool Ex37(E e1, E e2) { if ((e1 == null && e2 != null) || (e1 != null && e2 == null)) return false; if (e1 == null && e2 == null) return true; - return e1.Long == e2.Long; // $ SPURIOUS (false positive): Alert[cs/dereferenced-value-may-be-null] + return e1.Long == e2.Long; // GOOD } int Ex38(int? i) @@ -432,24 +432,24 @@ static bool Ex44(int? i, IEnumerable @is) return @is.Any(); } - static void Ex45(string s) // $ Source[cs/dereferenced-value-may-be-null] + static void Ex45(string s, int i) { - if (s is null) + if (i == 0 && s is null) { s.ToString(); // $ Alert[cs/dereferenced-value-is-always-null] } - if (s is not not null) + if (i == 1 && s is not not null) { s.ToString(); // $ Alert[cs/dereferenced-value-may-be-null] MISSING: Alert[cs/dereferenced-value-is-always-null] } - if (s is not null) + if (i == 2 && s is not null) { s.ToString(); // GOOD } - if (s is object) + if (i == 3 && s is object) { s.ToString(); // GOOD } diff --git a/csharp/ql/test/query-tests/Nullness/EqualityCheck.expected b/csharp/ql/test/query-tests/Nullness/EqualityCheck.expected index 9e66a5bccd16..7bb568f695a7 100644 --- a/csharp/ql/test/query-tests/Nullness/EqualityCheck.expected +++ b/csharp/ql/test/query-tests/Nullness/EqualityCheck.expected @@ -244,8 +244,16 @@ | E.cs:423:33:423:44 | ... == ... | true | E.cs:423:38:423:44 | access to property Value | E.cs:423:33:423:33 | access to parameter j | | E.cs:430:34:430:45 | ... == ... | true | E.cs:430:34:430:34 | access to parameter j | E.cs:430:39:430:45 | access to property Value | | E.cs:430:34:430:45 | ... == ... | true | E.cs:430:39:430:45 | access to property Value | E.cs:430:34:430:34 | access to parameter j | -| E.cs:437:13:437:21 | ... is ... | true | E.cs:437:13:437:13 | access to parameter s | E.cs:437:18:437:21 | null | -| E.cs:437:13:437:21 | ... is ... | true | E.cs:437:18:437:21 | null | E.cs:437:13:437:13 | access to parameter s | +| E.cs:437:13:437:18 | ... == ... | true | E.cs:437:13:437:13 | access to parameter i | E.cs:437:18:437:18 | 0 | +| E.cs:437:13:437:18 | ... == ... | true | E.cs:437:18:437:18 | 0 | E.cs:437:13:437:13 | access to parameter i | +| E.cs:437:23:437:31 | ... is ... | true | E.cs:437:23:437:23 | access to parameter s | E.cs:437:28:437:31 | null | +| E.cs:437:23:437:31 | ... is ... | true | E.cs:437:28:437:31 | null | E.cs:437:23:437:23 | access to parameter s | +| E.cs:442:13:442:18 | ... == ... | true | E.cs:442:13:442:13 | access to parameter i | E.cs:442:18:442:18 | 1 | +| E.cs:442:13:442:18 | ... == ... | true | E.cs:442:18:442:18 | 1 | E.cs:442:13:442:13 | access to parameter i | +| E.cs:447:13:447:18 | ... == ... | true | E.cs:447:13:447:13 | access to parameter i | E.cs:447:18:447:18 | 2 | +| E.cs:447:13:447:18 | ... == ... | true | E.cs:447:18:447:18 | 2 | E.cs:447:13:447:13 | access to parameter i | +| E.cs:452:13:452:18 | ... == ... | true | E.cs:452:13:452:13 | access to parameter i | E.cs:452:18:452:18 | 3 | +| E.cs:452:13:452:18 | ... == ... | true | E.cs:452:18:452:18 | 3 | E.cs:452:13:452:13 | access to parameter i | | Forwarding.cs:59:13:59:21 | ... == ... | true | Forwarding.cs:59:13:59:13 | access to parameter o | Forwarding.cs:59:18:59:21 | null | | Forwarding.cs:59:13:59:21 | ... == ... | true | Forwarding.cs:59:18:59:21 | null | Forwarding.cs:59:13:59:13 | access to parameter o | | Forwarding.cs:78:16:78:39 | call to method ReferenceEquals | true | Forwarding.cs:78:32:78:32 | access to parameter o | Forwarding.cs:78:35:78:38 | null | diff --git a/csharp/ql/test/query-tests/Nullness/Implications.expected b/csharp/ql/test/query-tests/Nullness/Implications.expected index 584b4e3ad1a6..a3e70f0474b0 100644 --- a/csharp/ql/test/query-tests/Nullness/Implications.expected +++ b/csharp/ql/test/query-tests/Nullness/Implications.expected @@ -824,8 +824,6 @@ | D.cs:152:17:152:27 | ... != ... | true | D.cs:152:17:152:19 | access to parameter obj | non-null | | D.cs:182:9:182:12 | access to local variable obj2 | non-null | D.cs:176:20:176:28 | call to method MkMaybe | non-null | | D.cs:182:9:182:12 | access to local variable obj2 | null | D.cs:176:20:176:28 | call to method MkMaybe | null | -| D.cs:190:9:190:12 | access to local variable obj3 | non-null | D.cs:187:20:187:28 | call to method MkMaybe | non-null | -| D.cs:190:9:190:12 | access to local variable obj3 | null | D.cs:187:20:187:28 | call to method MkMaybe | null | | D.cs:196:13:196:13 | access to local variable o | non-null | D.cs:195:17:195:28 | object creation of type Object | non-null | | D.cs:196:13:196:13 | access to local variable o | null | D.cs:195:17:195:28 | object creation of type Object | null | | D.cs:196:13:196:21 | ... == ... | false | D.cs:196:13:196:13 | access to local variable o | non-null | @@ -876,10 +874,6 @@ | D.cs:222:13:222:14 | access to local variable o4 | null | D.cs:220:18:220:26 | ... + ... | null | | D.cs:223:9:223:10 | access to local variable o4 | non-null | D.cs:220:18:220:26 | ... + ... | non-null | | D.cs:223:9:223:10 | access to local variable o4 | null | D.cs:220:18:220:26 | ... + ... | null | -| D.cs:232:13:232:13 | access to local variable o | non-null | D.cs:230:17:230:28 | object creation of type Object | non-null | -| D.cs:232:13:232:13 | access to local variable o | null | D.cs:230:17:230:28 | object creation of type Object | null | -| D.cs:238:13:238:13 | access to local variable o | non-null | D.cs:236:17:236:18 | "" | non-null | -| D.cs:238:13:238:13 | access to local variable o | null | D.cs:236:17:236:18 | "" | null | | D.cs:241:21:241:37 | ... ? ... : ... | non-null | D.cs:241:21:241:25 | access to field maybe | false | | D.cs:241:21:241:37 | ... ? ... : ... | non-null | D.cs:241:36:241:37 | "" | non-null | | D.cs:241:21:241:37 | ... ? ... : ... | null | D.cs:241:21:241:25 | access to field maybe | true | @@ -1049,16 +1043,8 @@ | E.cs:24:19:24:28 | ... == ... | true | E.cs:24:19:24:20 | access to local variable s1 | null | | E.cs:26:13:26:22 | ... != ... | false | E.cs:26:13:26:14 | access to local variable s2 | null | | E.cs:26:13:26:22 | ... != ... | true | E.cs:26:13:26:14 | access to local variable s2 | non-null | -| E.cs:35:9:35:12 | access to local variable last | empty | E.cs:34:20:34:20 | access to local variable s | empty | -| E.cs:35:9:35:12 | access to local variable last | non-empty | E.cs:34:20:34:20 | access to local variable s | non-empty | -| E.cs:35:9:35:12 | access to local variable last | non-null | E.cs:34:20:34:20 | access to local variable s | non-null | -| E.cs:35:9:35:12 | access to local variable last | null | E.cs:34:20:34:20 | access to local variable s | null | | E.cs:38:13:38:20 | call to method Any | false | E.cs:38:13:38:14 | access to parameter ss | empty | | E.cs:38:13:38:20 | call to method Any | true | E.cs:38:13:38:14 | access to parameter ss | non-empty | -| E.cs:43:13:43:16 | access to local variable last | empty | E.cs:41:24:41:24 | access to local variable s | empty | -| E.cs:43:13:43:16 | access to local variable last | non-empty | E.cs:41:24:41:24 | access to local variable s | non-empty | -| E.cs:43:13:43:16 | access to local variable last | non-null | E.cs:41:24:41:24 | access to local variable s | non-null | -| E.cs:43:13:43:16 | access to local variable last | null | E.cs:41:24:41:24 | access to local variable s | null | | E.cs:53:16:53:19 | access to local variable iter | non-null | E.cs:52:20:52:39 | call to method GetEnumerator | non-null | | E.cs:53:16:53:19 | access to local variable iter | null | E.cs:52:20:52:39 | call to method GetEnumerator | null | | E.cs:55:23:55:26 | access to local variable iter | non-null | E.cs:52:20:52:39 | call to method GetEnumerator | non-null | @@ -1152,12 +1138,6 @@ | E.cs:203:13:203:13 | access to local variable o | null | E.cs:198:17:198:29 | ... ? ... : ... | null | | E.cs:208:13:208:23 | ... is ... | false | E.cs:208:13:208:13 | access to parameter s | null | | E.cs:208:13:208:23 | ... is ... | true | E.cs:208:13:208:13 | access to parameter s | non-null | -| E.cs:220:13:220:13 | access to local variable x | non-null | E.cs:217:17:217:20 | null | non-null | -| E.cs:220:13:220:13 | access to local variable x | null | E.cs:217:17:217:20 | null | null | -| E.cs:229:13:229:13 | access to local variable x | empty | E.cs:227:17:227:20 | null | empty | -| E.cs:229:13:229:13 | access to local variable x | non-empty | E.cs:227:17:227:20 | null | non-empty | -| E.cs:229:13:229:13 | access to local variable x | non-null | E.cs:227:17:227:20 | null | non-null | -| E.cs:229:13:229:13 | access to local variable x | null | E.cs:227:17:227:20 | null | null | | E.cs:245:13:245:22 | access to property HasValue | false | E.cs:245:13:245:13 | access to parameter i | null | | E.cs:245:13:245:22 | access to property HasValue | true | E.cs:245:13:245:13 | access to parameter i | non-null | | E.cs:252:13:252:21 | ... != ... | false | E.cs:252:13:252:13 | access to parameter i | null | @@ -1300,11 +1280,19 @@ | E.cs:429:13:429:22 | access to property HasValue | true | E.cs:429:13:429:13 | access to parameter i | non-null | | E.cs:432:16:432:24 | call to method Any | false | E.cs:432:16:432:18 | access to parameter is | empty | | E.cs:432:16:432:24 | call to method Any | true | E.cs:432:16:432:18 | access to parameter is | non-empty | -| E.cs:437:13:437:21 | ... is ... | false | E.cs:437:13:437:13 | access to parameter s | non-null | -| E.cs:437:13:437:21 | ... is ... | true | E.cs:437:13:437:13 | access to parameter s | null | -| E.cs:442:13:442:29 | ... is ... | false | E.cs:442:13:442:13 | access to parameter s | non-null | -| E.cs:447:13:447:25 | ... is ... | true | E.cs:447:13:447:13 | access to parameter s | non-null | -| E.cs:452:13:452:23 | ... is ... | true | E.cs:452:13:452:13 | access to parameter s | non-null | +| E.cs:437:13:437:31 | ... && ... | true | E.cs:437:13:437:18 | ... == ... | true | +| E.cs:437:13:437:31 | ... && ... | true | E.cs:437:23:437:31 | ... is ... | true | +| E.cs:437:23:437:31 | ... is ... | false | E.cs:437:23:437:23 | access to parameter s | non-null | +| E.cs:437:23:437:31 | ... is ... | true | E.cs:437:23:437:23 | access to parameter s | null | +| E.cs:442:13:442:39 | ... && ... | true | E.cs:442:13:442:18 | ... == ... | true | +| E.cs:442:13:442:39 | ... && ... | true | E.cs:442:23:442:39 | ... is ... | true | +| E.cs:442:23:442:39 | ... is ... | false | E.cs:442:23:442:23 | access to parameter s | non-null | +| E.cs:447:13:447:35 | ... && ... | true | E.cs:447:13:447:18 | ... == ... | true | +| E.cs:447:13:447:35 | ... && ... | true | E.cs:447:23:447:35 | ... is ... | true | +| E.cs:447:23:447:35 | ... is ... | true | E.cs:447:23:447:23 | access to parameter s | non-null | +| E.cs:452:13:452:33 | ... && ... | true | E.cs:452:13:452:18 | ... == ... | true | +| E.cs:452:13:452:33 | ... && ... | true | E.cs:452:23:452:33 | ... is ... | true | +| E.cs:452:23:452:33 | ... is ... | true | E.cs:452:23:452:23 | access to parameter s | non-null | | E.cs:457:13:457:27 | ... is ... | false | E.cs:457:13:457:13 | access to parameter s | non-null | | F.cs:8:9:8:9 | access to local variable o | non-null | F.cs:7:20:7:23 | null | non-null | | F.cs:8:9:8:9 | access to local variable o | null | F.cs:7:20:7:23 | null | null | diff --git a/csharp/ql/test/query-tests/Nullness/NullAlways.expected b/csharp/ql/test/query-tests/Nullness/NullAlways.expected index e2e594b2e2c1..f432be31d5ad 100644 --- a/csharp/ql/test/query-tests/Nullness/NullAlways.expected +++ b/csharp/ql/test/query-tests/Nullness/NullAlways.expected @@ -31,8 +31,6 @@ | D.cs:222:13:222:14 | access to local variable o4 | Variable $@ is always null at this dereference. | D.cs:220:13:220:14 | o4 | o4 | | D.cs:385:13:385:15 | access to local variable ioe | Variable $@ is always null at this dereference. | D.cs:378:19:378:21 | ioe | ioe | | E.cs:210:16:210:16 | access to parameter s | Variable $@ is always null at this dereference. | E.cs:206:28:206:28 | s | s | -| E.cs:220:13:220:13 | access to local variable x | Variable $@ is always null at this dereference. | E.cs:215:13:215:13 | x | x | -| E.cs:229:13:229:13 | access to local variable x | Variable $@ is always null at this dereference. | E.cs:225:13:225:13 | x | x | | E.cs:323:13:323:14 | access to parameter s1 | Variable $@ is always null at this dereference. | E.cs:319:29:319:30 | s1 | s1 | | E.cs:324:13:324:14 | access to parameter s2 | Variable $@ is always null at this dereference. | E.cs:319:40:319:41 | s2 | s2 | | E.cs:331:9:331:9 | access to local variable x | Variable $@ is always null at this dereference. | E.cs:330:13:330:13 | x | x | diff --git a/csharp/ql/test/query-tests/Nullness/NullCheck.expected b/csharp/ql/test/query-tests/Nullness/NullCheck.expected index 7b4c89a0b219..e8b9a30e5d16 100644 --- a/csharp/ql/test/query-tests/Nullness/NullCheck.expected +++ b/csharp/ql/test/query-tests/Nullness/NullCheck.expected @@ -298,11 +298,11 @@ | E.cs:422:13:422:22 | access to property HasValue | E.cs:422:13:422:13 | access to parameter i | true | false | | E.cs:429:13:429:22 | access to property HasValue | E.cs:429:13:429:13 | access to parameter i | false | true | | E.cs:429:13:429:22 | access to property HasValue | E.cs:429:13:429:13 | access to parameter i | true | false | -| E.cs:437:13:437:21 | ... is ... | E.cs:437:13:437:13 | access to parameter s | false | false | -| E.cs:437:13:437:21 | ... is ... | E.cs:437:13:437:13 | access to parameter s | true | true | -| E.cs:442:13:442:29 | ... is ... | E.cs:442:13:442:13 | access to parameter s | false | false | -| E.cs:447:13:447:25 | ... is ... | E.cs:447:13:447:13 | access to parameter s | true | false | -| E.cs:452:13:452:23 | ... is ... | E.cs:452:13:452:13 | access to parameter s | true | false | +| E.cs:437:23:437:31 | ... is ... | E.cs:437:23:437:23 | access to parameter s | false | false | +| E.cs:437:23:437:31 | ... is ... | E.cs:437:23:437:23 | access to parameter s | true | true | +| E.cs:442:23:442:39 | ... is ... | E.cs:442:23:442:23 | access to parameter s | false | false | +| E.cs:447:23:447:35 | ... is ... | E.cs:447:23:447:23 | access to parameter s | true | false | +| E.cs:452:23:452:33 | ... is ... | E.cs:452:23:452:23 | access to parameter s | true | false | | E.cs:457:13:457:27 | ... is ... | E.cs:457:13:457:13 | access to parameter s | false | false | | Forwarding.cs:9:14:9:30 | call to method IsNullOrEmpty | Forwarding.cs:9:14:9:14 | access to local variable s | false | false | | Forwarding.cs:14:13:14:32 | call to method IsNotNullOrEmpty | Forwarding.cs:14:13:14:13 | access to local variable s | true | false | diff --git a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected index 816a8b3b4404..ce9b6d8b1829 100644 --- a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected @@ -1,970 +1,64 @@ -#select -| C.cs:64:9:64:10 | access to local variable o1 | C.cs:62:13:62:46 | SSA def(o1) | C.cs:64:9:64:10 | access to local variable o1 | Variable $@ may be null at this access because of $@ assignment. | C.cs:62:13:62:14 | o1 | o1 | C.cs:62:13:62:46 | Object o1 = ... | this | -| C.cs:68:9:68:10 | access to local variable o2 | C.cs:66:13:66:46 | SSA def(o2) | C.cs:68:9:68:10 | access to local variable o2 | Variable $@ may be null at this access because of $@ assignment. | C.cs:66:13:66:14 | o2 | o2 | C.cs:66:13:66:46 | Object o2 = ... | this | -| C.cs:95:15:95:15 | access to local variable o | C.cs:94:13:94:45 | SSA def(o) | C.cs:95:15:95:15 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | C.cs:94:13:94:13 | o | o | C.cs:94:13:94:45 | Object o = ... | this | -| C.cs:103:27:103:30 | access to parameter list | C.cs:102:13:102:23 | SSA def(list) | C.cs:103:27:103:30 | access to parameter list | Variable $@ may be null at this access because of $@ assignment. | C.cs:99:42:99:45 | list | list | C.cs:102:13:102:23 | ... = ... | this | -| C.cs:177:13:177:13 | access to local variable s | C.cs:178:13:178:20 | SSA def(s) | C.cs:177:13:177:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:151:13:151:13 | s | s | C.cs:178:13:178:20 | ... = ... | this | -| C.cs:203:13:203:13 | access to local variable s | C.cs:204:13:204:20 | SSA def(s) | C.cs:203:13:203:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:185:13:185:13 | s | s | C.cs:204:13:204:20 | ... = ... | this | -| C.cs:223:9:223:9 | access to local variable s | C.cs:222:13:222:20 | SSA def(s) | C.cs:223:9:223:9 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:210:13:210:13 | s | s | C.cs:222:13:222:20 | ... = ... | this | -| C.cs:242:13:242:13 | access to local variable s | C.cs:240:24:240:31 | SSA def(s) | C.cs:242:13:242:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:228:16:228:16 | s | s | C.cs:240:24:240:31 | ... = ... | this | -| D.cs:23:9:23:13 | access to parameter param | D.cs:17:17:17:20 | null | D.cs:23:9:23:13 | access to parameter param | Variable $@ may be null at this access because of $@ null argument. | D.cs:21:32:21:36 | param | param | D.cs:17:17:17:20 | null | this | -| D.cs:32:9:32:13 | access to parameter param | D.cs:26:32:26:36 | SSA param(param) | D.cs:32:9:32:13 | access to parameter param | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:26:32:26:36 | param | param | D.cs:28:13:28:25 | ... != ... | this | -| D.cs:62:13:62:14 | access to local variable o5 | D.cs:58:13:58:41 | SSA def(o5) | D.cs:62:13:62:14 | access to local variable o5 | Variable $@ may be null at this access because of $@ assignment. | D.cs:58:13:58:14 | o5 | o5 | D.cs:58:13:58:41 | String o5 = ... | this | -| D.cs:73:13:73:14 | access to local variable o7 | D.cs:68:13:68:34 | SSA def(o7) | D.cs:73:13:73:14 | access to local variable o7 | Variable $@ may be null at this access because of $@ assignment. | D.cs:68:13:68:14 | o7 | o7 | D.cs:68:13:68:34 | String o7 = ... | this | -| D.cs:82:13:82:14 | access to local variable o8 | D.cs:75:13:75:34 | SSA def(o8) | D.cs:82:13:82:14 | access to local variable o8 | Variable $@ may be null at this access because of $@ assignment. | D.cs:75:13:75:14 | o8 | o8 | D.cs:75:13:75:34 | String o8 = ... | this | -| D.cs:84:13:84:14 | access to local variable o8 | D.cs:75:13:75:34 | SSA def(o8) | D.cs:84:13:84:14 | access to local variable o8 | Variable $@ may be null at this access because of $@ assignment. | D.cs:75:13:75:14 | o8 | o8 | D.cs:75:13:75:34 | String o8 = ... | this | -| D.cs:91:13:91:14 | access to local variable xs | D.cs:89:15:89:44 | SSA def(xs) | D.cs:91:13:91:14 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | -| D.cs:94:21:94:22 | access to local variable xs | D.cs:89:15:89:44 | SSA def(xs) | D.cs:94:21:94:22 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | -| D.cs:98:21:98:22 | access to local variable xs | D.cs:89:15:89:44 | SSA def(xs) | D.cs:98:21:98:22 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | -| D.cs:102:31:102:32 | access to local variable xs | D.cs:89:15:89:44 | SSA def(xs) | D.cs:102:31:102:32 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | -| D.cs:105:19:105:20 | access to local variable xs | D.cs:89:15:89:44 | SSA def(xs) | D.cs:105:19:105:20 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | -| D.cs:134:24:134:24 | access to parameter a | D.cs:125:35:125:35 | SSA param(a) | D.cs:134:24:134:24 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:127:20:127:28 | ... == ... | this | -| D.cs:134:24:134:24 | access to parameter a | D.cs:125:35:125:35 | SSA param(a) | D.cs:134:24:134:24 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:139:13:139:21 | ... != ... | this | -| D.cs:135:24:135:24 | access to parameter b | D.cs:125:44:125:44 | SSA param(b) | D.cs:135:24:135:24 | access to parameter b | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:44:125:44 | b | b | D.cs:128:20:128:28 | ... == ... | this | -| D.cs:145:20:145:20 | access to parameter a | D.cs:125:35:125:35 | SSA param(a) | D.cs:145:20:145:20 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:127:20:127:28 | ... == ... | this | -| D.cs:145:20:145:20 | access to parameter a | D.cs:125:35:125:35 | SSA param(a) | D.cs:145:20:145:20 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:139:13:139:21 | ... != ... | this | -| D.cs:151:9:151:11 | access to parameter obj | D.cs:149:36:149:38 | SSA param(obj) | D.cs:151:9:151:11 | access to parameter obj | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:149:36:149:38 | obj | obj | D.cs:152:17:152:27 | ... != ... | this | -| D.cs:171:9:171:11 | access to local variable obj | D.cs:163:16:163:25 | SSA def(obj) | D.cs:171:9:171:11 | access to local variable obj | Variable $@ may be null at this access because of $@ assignment. | D.cs:163:16:163:18 | obj | obj | D.cs:163:16:163:25 | Object obj = ... | this | -| D.cs:245:13:245:13 | access to local variable o | D.cs:240:9:240:16 | SSA def(o) | D.cs:245:13:245:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:228:16:228:16 | o | o | D.cs:240:9:240:16 | ... = ... | this | -| D.cs:247:13:247:13 | access to local variable o | D.cs:240:9:240:16 | SSA def(o) | D.cs:247:13:247:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:228:16:228:16 | o | o | D.cs:240:9:240:16 | ... = ... | this | -| D.cs:253:13:253:14 | access to local variable o2 | D.cs:249:13:249:38 | SSA def(o2) | D.cs:253:13:253:14 | access to local variable o2 | Variable $@ may be null at this access because of $@ assignment. | D.cs:249:13:249:14 | o2 | o2 | D.cs:249:13:249:38 | String o2 = ... | this | -| D.cs:267:13:267:13 | access to local variable o | D.cs:258:16:258:23 | SSA def(o) | D.cs:267:13:267:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:258:16:258:16 | o | o | D.cs:258:16:258:23 | Object o = ... | this | -| D.cs:291:13:291:13 | access to local variable o | D.cs:269:9:269:16 | SSA def(o) | D.cs:291:13:291:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:258:16:258:16 | o | o | D.cs:269:9:269:16 | ... = ... | this | -| D.cs:291:13:291:13 | access to local variable o | D.cs:283:17:283:24 | SSA def(o) | D.cs:291:13:291:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:258:16:258:16 | o | o | D.cs:283:17:283:24 | ... = ... | this | -| D.cs:294:13:294:13 | access to local variable o | D.cs:269:9:269:16 | SSA def(o) | D.cs:294:13:294:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:258:16:258:16 | o | o | D.cs:269:9:269:16 | ... = ... | this | -| D.cs:294:13:294:13 | access to local variable o | D.cs:283:17:283:24 | SSA def(o) | D.cs:294:13:294:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:258:16:258:16 | o | o | D.cs:283:17:283:24 | ... = ... | this | -| D.cs:300:17:300:20 | access to local variable prev | D.cs:296:16:296:26 | SSA def(prev) | D.cs:300:17:300:20 | access to local variable prev | Variable $@ may be null at this access because of $@ assignment. | D.cs:296:16:296:19 | prev | prev | D.cs:296:16:296:26 | Object prev = ... | this | -| D.cs:313:17:313:17 | access to local variable s | D.cs:304:16:304:23 | SSA def(s) | D.cs:313:17:313:17 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | D.cs:304:16:304:16 | s | s | D.cs:304:16:304:23 | String s = ... | this | -| D.cs:324:9:324:9 | access to local variable r | D.cs:316:16:316:23 | SSA def(r) | D.cs:324:9:324:9 | access to local variable r | Variable $@ may be null at this access because of $@ assignment. | D.cs:316:16:316:16 | r | r | D.cs:316:16:316:23 | Object r = ... | this | -| D.cs:356:13:356:13 | access to local variable a | D.cs:351:15:351:22 | SSA def(a) | D.cs:356:13:356:13 | access to local variable a | Variable $@ may be null at this access because of $@ assignment. | D.cs:351:15:351:15 | a | a | D.cs:351:15:351:22 | Int32[] a = ... | this | -| D.cs:363:13:363:16 | access to local variable last | D.cs:360:20:360:30 | SSA def(last) | D.cs:363:13:363:16 | access to local variable last | Variable $@ may be null at this access because of $@ assignment. | D.cs:360:20:360:23 | last | last | D.cs:360:20:360:30 | String last = ... | this | -| D.cs:372:13:372:13 | access to local variable b | D.cs:366:15:366:47 | SSA def(b) | D.cs:372:13:372:13 | access to local variable b | Variable $@ may be null at this access because of $@ assignment. | D.cs:366:15:366:15 | b | b | D.cs:366:15:366:47 | Int32[] b = ... | this | -| D.cs:395:20:395:20 | access to parameter a | D.cs:388:36:388:36 | SSA param(a) | D.cs:395:20:395:20 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:388:36:388:36 | a | a | D.cs:390:20:390:28 | ... == ... | this | -| D.cs:400:20:400:20 | access to parameter b | D.cs:388:45:388:45 | SSA param(b) | D.cs:400:20:400:20 | access to parameter b | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:388:45:388:45 | b | b | D.cs:397:20:397:28 | ... == ... | this | -| D.cs:410:13:410:13 | access to parameter y | D.cs:405:45:405:45 | SSA param(y) | D.cs:410:13:410:13 | access to parameter y | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:405:45:405:45 | y | y | D.cs:407:27:407:35 | ... == ... | this | -| D.cs:410:13:410:13 | access to parameter y | D.cs:405:45:405:45 | SSA param(y) | D.cs:410:13:410:13 | access to parameter y | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:405:45:405:45 | y | y | D.cs:407:55:407:63 | ... != ... | this | -| D.cs:410:13:410:13 | access to parameter y | D.cs:405:45:405:45 | SSA param(y) | D.cs:410:13:410:13 | access to parameter y | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:405:45:405:45 | y | y | D.cs:411:13:411:21 | ... != ... | this | -| D.cs:412:13:412:13 | access to parameter x | D.cs:405:35:405:35 | SSA param(x) | D.cs:412:13:412:13 | access to parameter x | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:405:35:405:35 | x | x | D.cs:407:14:407:22 | ... != ... | this | -| D.cs:412:13:412:13 | access to parameter x | D.cs:405:35:405:35 | SSA param(x) | D.cs:412:13:412:13 | access to parameter x | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:405:35:405:35 | x | x | D.cs:407:42:407:50 | ... == ... | this | -| D.cs:412:13:412:13 | access to parameter x | D.cs:405:35:405:35 | SSA param(x) | D.cs:412:13:412:13 | access to parameter x | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:405:35:405:35 | x | x | D.cs:409:13:409:21 | ... != ... | this | -| E.cs:12:38:12:39 | access to local variable a2 | E.cs:9:18:9:26 | SSA def(a2) | E.cs:12:38:12:39 | access to local variable a2 | Variable $@ may be null at this access because of $@ assignment. | E.cs:9:18:9:19 | a2 | a2 | E.cs:9:18:9:26 | Int64[][] a2 = ... | this | -| E.cs:14:13:14:14 | access to local variable a3 | E.cs:11:16:11:24 | SSA def(a3) | E.cs:14:13:14:14 | access to local variable a3 | Variable $@ may be null at this access because of $@ assignment. | E.cs:11:16:11:17 | a3 | a3 | E.cs:11:16:11:24 | Int64[] a3 = ... | this | -| E.cs:27:13:27:14 | access to local variable s1 | E.cs:23:13:23:30 | SSA def(s1) | E.cs:27:13:27:14 | access to local variable s1 | Variable $@ may be null at this access because of $@ assignment. | E.cs:19:13:19:14 | s1 | s1 | E.cs:23:13:23:30 | ... = ... | this | -| E.cs:61:13:61:17 | access to local variable slice | E.cs:51:22:51:33 | SSA def(slice) | E.cs:61:13:61:17 | access to local variable slice | Variable $@ may be null at this access because of $@ assignment. | E.cs:51:22:51:26 | slice | slice | E.cs:51:22:51:33 | List slice = ... | this | -| E.cs:73:13:73:15 | access to parameter arr | E.cs:66:40:66:42 | SSA param(arr) | E.cs:73:13:73:15 | access to parameter arr | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:66:40:66:42 | arr | arr | E.cs:70:22:70:32 | ... == ... | this | -| E.cs:112:13:112:16 | access to local variable arr2 | E.cs:107:15:107:25 | SSA def(arr2) | E.cs:112:13:112:16 | access to local variable arr2 | Variable $@ may be null at this access because of $@ assignment. | E.cs:107:15:107:18 | arr2 | arr2 | E.cs:107:15:107:25 | Int32[] arr2 = ... | this | -| E.cs:125:33:125:35 | access to local variable obj | E.cs:137:25:137:34 | SSA def(obj) | E.cs:125:33:125:35 | access to local variable obj | Variable $@ may be null at this access because of $@ assignment. | E.cs:119:13:119:15 | obj | obj | E.cs:137:25:137:34 | ... = ... | this | -| E.cs:159:13:159:16 | access to local variable obj2 | E.cs:152:16:152:26 | SSA def(obj2) | E.cs:159:13:159:16 | access to local variable obj2 | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:152:16:152:19 | obj2 | obj2 | E.cs:153:13:153:24 | ... != ... | this | -| E.cs:167:21:167:21 | access to parameter a | E.cs:162:28:162:28 | SSA param(a) | E.cs:167:21:167:21 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:162:28:162:28 | a | a | E.cs:164:17:164:25 | ... == ... | this | -| E.cs:178:13:178:15 | access to parameter obj | E.cs:173:29:173:31 | SSA param(obj) | E.cs:178:13:178:15 | access to parameter obj | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:173:29:173:31 | obj | obj | E.cs:175:19:175:29 | ... == ... | this | -| E.cs:178:13:178:15 | access to parameter obj | E.cs:173:29:173:31 | SSA param(obj) | E.cs:178:13:178:15 | access to parameter obj | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:173:29:173:31 | obj | obj | E.cs:180:13:180:23 | ... == ... | this | -| E.cs:186:13:186:15 | access to parameter obj | E.cs:173:29:173:31 | SSA param(obj) | E.cs:186:13:186:15 | access to parameter obj | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:173:29:173:31 | obj | obj | E.cs:175:19:175:29 | ... == ... | this | -| E.cs:186:13:186:15 | access to parameter obj | E.cs:173:29:173:31 | SSA param(obj) | E.cs:186:13:186:15 | access to parameter obj | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:173:29:173:31 | obj | obj | E.cs:180:13:180:23 | ... == ... | this | -| E.cs:192:17:192:17 | access to parameter o | E.cs:190:29:190:29 | SSA param(o) | E.cs:192:17:192:17 | access to parameter o | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:190:29:190:29 | o | o | E.cs:193:17:193:17 | access to parameter o | this | -| E.cs:201:13:201:13 | access to local variable o | E.cs:198:13:198:29 | [b (line 196): true] SSA def(o) | E.cs:201:13:201:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | E.cs:198:13:198:13 | o | o | E.cs:198:13:198:29 | String o = ... | this | -| E.cs:203:13:203:13 | access to local variable o | E.cs:198:13:198:29 | [b (line 196): false] SSA def(o) | E.cs:203:13:203:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | E.cs:198:13:198:13 | o | o | E.cs:198:13:198:29 | String o = ... | this | -| E.cs:218:9:218:9 | access to local variable x | E.cs:217:13:217:20 | [b (line 213): true] SSA def(x) | E.cs:218:9:218:9 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:215:13:215:13 | x | x | E.cs:217:13:217:20 | ... = ... | this | -| E.cs:230:9:230:9 | access to local variable x | E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) | E.cs:230:9:230:9 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:225:13:225:13 | x | x | E.cs:227:13:227:20 | ... = ... | this | -| E.cs:235:16:235:16 | access to parameter i | E.cs:233:26:233:26 | SSA param(i) | E.cs:235:16:235:16 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:233:26:233:26 | i | i | E.cs:233:26:233:26 | i | this | -| E.cs:240:21:240:21 | access to parameter i | E.cs:238:26:238:26 | SSA param(i) | E.cs:240:21:240:21 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:238:26:238:26 | i | i | E.cs:238:26:238:26 | i | this | -| E.cs:285:9:285:9 | access to local variable o | E.cs:283:13:283:22 | [b (line 279): false] SSA def(o) | E.cs:285:9:285:9 | access to local variable o | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:283:13:283:13 | o | o | E.cs:284:9:284:9 | access to local variable o | this | -| E.cs:285:9:285:9 | access to local variable o | E.cs:283:13:283:22 | [b (line 279): true] SSA def(o) | E.cs:285:9:285:9 | access to local variable o | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:283:13:283:13 | o | o | E.cs:284:9:284:9 | access to local variable o | this | -| E.cs:302:9:302:9 | access to local variable s | E.cs:301:13:301:27 | SSA def(s) | E.cs:302:9:302:9 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | E.cs:301:13:301:13 | s | s | E.cs:301:13:301:27 | String s = ... | this | -| E.cs:343:9:343:9 | access to local variable x | E.cs:342:13:342:32 | SSA def(x) | E.cs:343:9:343:9 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:342:13:342:13 | x | x | E.cs:342:13:342:32 | String x = ... | this | -| E.cs:349:9:349:9 | access to local variable x | E.cs:348:17:348:36 | SSA def(x) | E.cs:349:9:349:9 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:348:17:348:17 | x | x | E.cs:348:17:348:36 | dynamic x = ... | this | -| E.cs:366:41:366:41 | access to parameter s | E.cs:366:28:366:28 | SSA param(s) | E.cs:366:41:366:41 | access to parameter s | Variable $@ may be null at this access because the parameter has a null default value. | E.cs:366:28:366:28 | s | s | E.cs:366:32:366:35 | null | this | -| E.cs:375:20:375:20 | access to local variable s | E.cs:374:17:374:31 | SSA def(s) | E.cs:375:20:375:20 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | E.cs:374:17:374:17 | s | s | E.cs:374:17:374:31 | String s = ... | this | -| E.cs:386:16:386:17 | access to parameter e1 | E.cs:380:24:380:25 | SSA param(e1) | E.cs:386:16:386:17 | access to parameter e1 | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:380:24:380:25 | e1 | e1 | E.cs:382:14:382:23 | ... == ... | this | -| E.cs:386:16:386:17 | access to parameter e1 | E.cs:380:24:380:25 | SSA param(e1) | E.cs:386:16:386:17 | access to parameter e1 | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:380:24:380:25 | e1 | e1 | E.cs:382:44:382:53 | ... != ... | this | -| E.cs:386:16:386:17 | access to parameter e1 | E.cs:380:24:380:25 | SSA param(e1) | E.cs:386:16:386:17 | access to parameter e1 | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:380:24:380:25 | e1 | e1 | E.cs:384:13:384:22 | ... == ... | this | -| E.cs:386:27:386:28 | access to parameter e2 | E.cs:380:30:380:31 | SSA param(e2) | E.cs:386:27:386:28 | access to parameter e2 | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:380:30:380:31 | e2 | e2 | E.cs:382:28:382:37 | ... != ... | this | -| E.cs:386:27:386:28 | access to parameter e2 | E.cs:380:30:380:31 | SSA param(e2) | E.cs:386:27:386:28 | access to parameter e2 | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:380:30:380:31 | e2 | e2 | E.cs:382:58:382:67 | ... == ... | this | -| E.cs:386:27:386:28 | access to parameter e2 | E.cs:380:30:380:31 | SSA param(e2) | E.cs:386:27:386:28 | access to parameter e2 | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:380:30:380:31 | e2 | e2 | E.cs:384:27:384:36 | ... == ... | this | -| E.cs:417:34:417:34 | access to parameter i | E.cs:417:24:417:40 | SSA capture def(i) | E.cs:417:34:417:34 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:415:27:415:27 | i | i | E.cs:415:27:415:27 | i | this | -| E.cs:423:38:423:38 | access to parameter i | E.cs:423:28:423:44 | SSA capture def(i) | E.cs:423:38:423:38 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:420:27:420:27 | i | i | E.cs:420:27:420:27 | i | this | -| E.cs:430:39:430:39 | access to parameter i | E.cs:430:29:430:45 | SSA capture def(i) | E.cs:430:39:430:39 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:427:27:427:27 | i | i | E.cs:427:27:427:27 | i | this | -| E.cs:444:13:444:13 | access to parameter s | E.cs:435:29:435:29 | SSA param(s) | E.cs:444:13:444:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:13:437:21 | ... is ... | this | -| E.cs:459:13:459:13 | access to parameter s | E.cs:435:29:435:29 | SSA param(s) | E.cs:459:13:459:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:13:437:21 | ... is ... | this | -| GuardedString.cs:35:31:35:31 | access to local variable s | GuardedString.cs:7:16:7:32 | SSA def(s) | GuardedString.cs:35:31:35:31 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | GuardedString.cs:7:16:7:16 | s | s | GuardedString.cs:7:16:7:32 | String s = ... | this | -| NullMaybeBad.cs:7:27:7:27 | access to parameter o | NullMaybeBad.cs:13:17:13:20 | null | NullMaybeBad.cs:7:27:7:27 | access to parameter o | Variable $@ may be null at this access because of $@ null argument. | NullMaybeBad.cs:5:25:5:25 | o | o | NullMaybeBad.cs:13:17:13:20 | null | this | -| Params.cs:14:17:14:20 | access to parameter args | Params.cs:20:12:20:15 | null | Params.cs:14:17:14:20 | access to parameter args | Variable $@ may be null at this access because of $@ null argument. | Params.cs:12:36:12:39 | args | args | Params.cs:20:12:20:15 | null | this | -| StringConcatenation.cs:16:17:16:17 | access to local variable s | StringConcatenation.cs:14:16:14:23 | SSA def(s) | StringConcatenation.cs:16:17:16:17 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | StringConcatenation.cs:14:16:14:16 | s | s | StringConcatenation.cs:14:16:14:23 | String s = ... | this | -edges -| A.cs:7:16:7:40 | SSA def(synchronizedAlways) | A.cs:8:15:8:32 | access to local variable synchronizedAlways | -| A.cs:7:16:7:40 | SSA def(synchronizedAlways) | A.cs:10:13:10:30 | access to local variable synchronizedAlways | -| A.cs:16:15:16:30 | SSA def(arrayNull) | A.cs:17:9:17:17 | access to local variable arrayNull | -| A.cs:26:15:26:32 | SSA def(arrayAccess) | A.cs:31:27:31:37 | access to local variable arrayAccess | -| A.cs:26:15:26:32 | SSA def(arrayAccess) | A.cs:36:27:36:37 | access to local variable arrayAccess | -| A.cs:27:18:27:35 | SSA def(fieldAccess) | A.cs:32:27:32:37 | access to local variable fieldAccess | -| A.cs:27:18:27:35 | SSA def(fieldAccess) | A.cs:37:27:37:37 | access to local variable fieldAccess | -| A.cs:28:16:28:34 | SSA def(methodAccess) | A.cs:33:28:33:39 | access to local variable methodAccess | -| A.cs:28:16:28:34 | SSA def(methodAccess) | A.cs:38:15:38:26 | access to local variable methodAccess | -| A.cs:29:16:29:32 | SSA def(methodCall) | A.cs:34:27:34:36 | access to local variable methodCall | -| A.cs:29:16:29:32 | SSA def(methodCall) | A.cs:39:27:39:36 | access to local variable methodCall | -| A.cs:48:16:48:28 | SSA def(varRef) | A.cs:50:9:50:14 | access to local variable varRef | -| Assert.cs:13:9:13:25 | [b (line 7): false] SSA def(s) | Assert.cs:15:27:15:27 | access to local variable s | -| Assert.cs:13:9:13:25 | [b (line 7): true] SSA def(s) | Assert.cs:15:27:15:27 | access to local variable s | -| Assert.cs:21:9:21:25 | [b (line 7): false] SSA def(s) | Assert.cs:23:27:23:27 | access to local variable s | -| Assert.cs:21:9:21:25 | [b (line 7): true] SSA def(s) | Assert.cs:23:27:23:27 | access to local variable s | -| Assert.cs:29:9:29:25 | [b (line 7): false] SSA def(s) | Assert.cs:31:27:31:27 | access to local variable s | -| Assert.cs:29:9:29:25 | [b (line 7): true] SSA def(s) | Assert.cs:31:27:31:27 | access to local variable s | -| Assert.cs:45:9:45:25 | [b (line 7): true] SSA def(s) | Assert.cs:46:36:46:36 | [b (line 7): true] access to parameter b | -| Assert.cs:46:23:46:36 | [true, b (line 7): true] ... && ... | Assert.cs:47:27:47:27 | access to local variable s | -| Assert.cs:46:36:46:36 | [b (line 7): true] access to parameter b | Assert.cs:46:23:46:36 | [true, b (line 7): true] ... && ... | -| Assert.cs:49:9:49:25 | [b (line 7): true] SSA def(s) | Assert.cs:50:38:50:38 | [b (line 7): true] access to parameter b | -| Assert.cs:50:24:50:38 | [false] ... \|\| ... | Assert.cs:51:27:51:27 | access to local variable s | -| Assert.cs:50:37:50:38 | [false] !... | Assert.cs:50:24:50:38 | [false] ... \|\| ... | -| Assert.cs:50:38:50:38 | [b (line 7): true] access to parameter b | Assert.cs:50:37:50:38 | [false] !... | -| B.cs:7:11:7:29 | SSA def(eqCallAlways) | B.cs:13:13:13:24 | access to local variable eqCallAlways | -| B.cs:10:11:10:30 | SSA def(neqCallAlways) | B.cs:13:13:13:36 | ...; | -| B.cs:10:11:10:30 | SSA def(neqCallAlways) | B.cs:15:9:16:26 | if (...) ... | -| B.cs:13:13:13:36 | ...; | B.cs:15:9:16:26 | if (...) ... | -| B.cs:15:9:16:26 | if (...) ... | B.cs:16:13:16:26 | ...; | -| B.cs:15:9:16:26 | if (...) ... | B.cs:18:9:20:26 | if (...) ... | -| B.cs:16:13:16:26 | ...; | B.cs:18:9:20:26 | if (...) ... | -| B.cs:18:9:20:26 | if (...) ... | B.cs:18:25:18:27 | {...} | -| B.cs:18:9:20:26 | if (...) ... | B.cs:20:13:20:26 | ...; | -| B.cs:18:25:18:27 | {...} | B.cs:22:9:24:37 | if (...) ... | -| B.cs:20:13:20:26 | ...; | B.cs:22:9:24:37 | if (...) ... | -| B.cs:22:9:24:37 | if (...) ... | B.cs:24:13:24:25 | access to local variable neqCallAlways | -| C.cs:10:16:10:23 | SSA def(o) | C.cs:11:17:11:28 | [false] !... | -| C.cs:11:13:11:30 | [false] !... | C.cs:16:9:19:9 | if (...) ... | -| C.cs:11:15:11:29 | [true] !... | C.cs:11:13:11:30 | [false] !... | -| C.cs:11:17:11:28 | [false] !... | C.cs:11:15:11:29 | [true] !... | -| C.cs:16:9:19:9 | if (...) ... | C.cs:16:13:16:24 | [true] !... | -| C.cs:16:13:16:24 | [true] !... | C.cs:18:13:18:13 | access to local variable o | -| C.cs:40:13:40:35 | SSA def(s) | C.cs:42:9:42:9 | access to local variable s | -| C.cs:55:13:55:36 | SSA def(o2) | C.cs:57:9:57:10 | access to local variable o2 | -| C.cs:62:13:62:46 | SSA def(o1) | C.cs:64:9:64:10 | access to local variable o1 | -| C.cs:66:13:66:46 | SSA def(o2) | C.cs:68:9:68:10 | access to local variable o2 | -| C.cs:94:13:94:45 | SSA def(o) | C.cs:95:15:95:15 | access to local variable o | -| C.cs:94:13:94:45 | SSA def(o) | C.cs:96:13:96:13 | access to local variable o | -| C.cs:102:13:102:23 | SSA def(list) | C.cs:103:27:103:30 | access to parameter list | -| C.cs:102:13:102:23 | SSA def(list) | C.cs:103:27:103:30 | access to parameter list | -| C.cs:103:9:107:9 | foreach (... ... in ...) ... | C.cs:103:22:103:22 | Int32 x | -| C.cs:103:9:107:9 | foreach (... ... in ...) ... | C.cs:106:13:106:16 | access to parameter list | -| C.cs:103:22:103:22 | Int32 x | C.cs:103:9:107:9 | foreach (... ... in ...) ... | -| C.cs:103:27:103:30 | access to parameter list | C.cs:103:9:107:9 | foreach (... ... in ...) ... | -| C.cs:159:9:159:16 | SSA def(s) | C.cs:162:13:162:13 | access to local variable s | -| C.cs:167:9:167:16 | SSA def(s) | C.cs:170:13:170:13 | access to local variable s | -| C.cs:178:13:178:20 | SSA def(s) | C.cs:177:13:177:13 | access to local variable s | -| C.cs:193:9:193:16 | SSA def(s) | C.cs:196:13:196:13 | access to local variable s | -| C.cs:197:13:197:20 | [b (line 192): true] SSA def(s) | C.cs:196:13:196:13 | access to local variable s | -| C.cs:201:16:201:19 | true | C.cs:203:13:203:13 | access to local variable s | -| C.cs:204:13:204:20 | SSA def(s) | C.cs:201:16:201:19 | true | -| C.cs:210:13:210:35 | SSA def(s) | C.cs:217:9:218:25 | if (...) ... | -| C.cs:214:13:214:20 | SSA def(s) | C.cs:217:9:218:25 | if (...) ... | -| C.cs:217:9:218:25 | if (...) ... | C.cs:218:13:218:13 | access to local variable s | -| C.cs:222:13:222:20 | SSA def(s) | C.cs:223:9:223:9 | access to local variable s | -| C.cs:229:22:229:22 | access to local variable s | C.cs:233:9:233:9 | access to local variable s | -| C.cs:229:33:229:40 | SSA def(s) | C.cs:229:22:229:22 | access to local variable s | -| C.cs:235:14:235:21 | SSA def(s) | C.cs:235:24:235:24 | access to local variable s | -| C.cs:235:24:235:24 | access to local variable s | C.cs:237:13:237:13 | access to local variable s | -| C.cs:235:35:235:42 | SSA def(s) | C.cs:235:24:235:24 | access to local variable s | -| C.cs:240:24:240:31 | SSA def(s) | C.cs:242:13:242:13 | access to local variable s | -| C.cs:248:15:248:22 | SSA def(a) | C.cs:249:9:249:9 | access to local variable a | -| C.cs:257:15:257:23 | SSA def(ia) | C.cs:260:9:260:10 | access to local variable ia | -| C.cs:257:15:257:23 | SSA def(ia) | C.cs:263:9:263:10 | access to local variable ia | -| C.cs:258:18:258:26 | SSA def(sa) | C.cs:261:20:261:21 | access to local variable sa | -| C.cs:258:18:258:26 | SSA def(sa) | C.cs:264:16:264:17 | access to local variable sa | -| D.cs:17:17:17:20 | null | D.cs:23:9:23:13 | access to parameter param | -| D.cs:26:32:26:36 | SSA param(param) | D.cs:32:9:32:13 | access to parameter param | -| D.cs:58:13:58:41 | SSA def(o5) | D.cs:61:9:62:26 | if (...) ... | -| D.cs:61:9:62:26 | if (...) ... | D.cs:62:13:62:14 | access to local variable o5 | -| D.cs:68:13:68:34 | SSA def(o7) | D.cs:69:18:69:36 | ... && ... | -| D.cs:69:18:69:36 | ... && ... | D.cs:73:13:73:14 | access to local variable o7 | -| D.cs:75:13:75:34 | SSA def(o8) | D.cs:76:34:76:35 | 42 | -| D.cs:76:21:76:43 | ... ? ... : ... | D.cs:79:9:80:26 | if (...) ... | -| D.cs:76:34:76:35 | 42 | D.cs:76:21:76:43 | ... ? ... : ... | -| D.cs:79:9:80:26 | if (...) ... | D.cs:81:9:82:26 | if (...) ... | -| D.cs:81:9:82:26 | if (...) ... | D.cs:82:13:82:14 | access to local variable o8 | -| D.cs:81:9:82:26 | if (...) ... | D.cs:82:13:82:26 | ...; | -| D.cs:81:9:82:26 | if (...) ... | D.cs:83:9:84:26 | if (...) ... | -| D.cs:82:13:82:26 | ...; | D.cs:83:9:84:26 | if (...) ... | -| D.cs:83:9:84:26 | if (...) ... | D.cs:84:13:84:14 | access to local variable o8 | -| D.cs:89:15:89:44 | SSA def(xs) | D.cs:91:13:91:14 | access to local variable xs | -| D.cs:89:15:89:44 | SSA def(xs) | D.cs:91:13:91:22 | ...; | -| D.cs:89:15:89:44 | SSA def(xs) | D.cs:93:9:94:30 | if (...) ... | -| D.cs:91:13:91:22 | ...; | D.cs:93:9:94:30 | if (...) ... | -| D.cs:93:9:94:30 | if (...) ... | D.cs:94:13:94:30 | ...; | -| D.cs:93:9:94:30 | if (...) ... | D.cs:94:21:94:22 | access to local variable xs | -| D.cs:93:9:94:30 | if (...) ... | D.cs:96:9:99:9 | if (...) ... | -| D.cs:94:13:94:30 | ...; | D.cs:96:9:99:9 | if (...) ... | -| D.cs:96:9:99:9 | if (...) ... | D.cs:97:9:99:9 | {...} | -| D.cs:96:9:99:9 | if (...) ... | D.cs:98:21:98:22 | access to local variable xs | -| D.cs:96:9:99:9 | if (...) ... | D.cs:101:9:102:35 | if (...) ... | -| D.cs:97:9:99:9 | {...} | D.cs:101:9:102:35 | if (...) ... | -| D.cs:101:9:102:35 | if (...) ... | D.cs:102:31:102:32 | access to local variable xs | -| D.cs:101:9:102:35 | if (...) ... | D.cs:102:31:102:32 | access to local variable xs | -| D.cs:101:9:102:35 | if (...) ... | D.cs:104:9:106:30 | if (...) ... | -| D.cs:102:13:102:35 | foreach (... ... in ...) ... | D.cs:102:26:102:26 | Int32 _ | -| D.cs:102:13:102:35 | foreach (... ... in ...) ... | D.cs:104:9:106:30 | if (...) ... | -| D.cs:102:26:102:26 | Int32 _ | D.cs:102:13:102:35 | foreach (... ... in ...) ... | -| D.cs:102:31:102:32 | access to local variable xs | D.cs:102:13:102:35 | foreach (... ... in ...) ... | -| D.cs:104:9:106:30 | if (...) ... | D.cs:105:19:105:20 | access to local variable xs | -| D.cs:104:9:106:30 | if (...) ... | D.cs:106:17:106:18 | access to local variable xs | -| D.cs:118:9:118:30 | SSA def(x) | D.cs:120:13:120:13 | access to local variable x | -| D.cs:125:35:125:35 | SSA param(a) | D.cs:127:32:127:32 | 0 | -| D.cs:125:35:125:35 | SSA param(a) | D.cs:127:32:127:32 | 0 | -| D.cs:125:44:125:44 | SSA param(b) | D.cs:127:32:127:32 | 0 | -| D.cs:125:44:125:44 | SSA param(b) | D.cs:127:36:127:36 | access to parameter a | -| D.cs:127:20:127:43 | ... ? ... : ... | D.cs:128:32:128:32 | 0 | -| D.cs:127:20:127:43 | ... ? ... : ... | D.cs:128:32:128:32 | 0 | -| D.cs:127:20:127:43 | ... ? ... : ... | D.cs:128:36:128:36 | access to parameter b | -| D.cs:127:32:127:32 | 0 | D.cs:127:20:127:43 | ... ? ... : ... | -| D.cs:127:32:127:32 | 0 | D.cs:127:20:127:43 | ... ? ... : ... | -| D.cs:127:36:127:36 | access to parameter a | D.cs:127:20:127:43 | ... ? ... : ... | -| D.cs:128:20:128:43 | ... ? ... : ... | D.cs:131:9:137:9 | {...} | -| D.cs:128:20:128:43 | ... ? ... : ... | D.cs:131:9:137:9 | {...} | -| D.cs:128:20:128:43 | ... ? ... : ... | D.cs:138:9:138:18 | ... ...; | -| D.cs:128:32:128:32 | 0 | D.cs:128:20:128:43 | ... ? ... : ... | -| D.cs:128:32:128:32 | 0 | D.cs:128:20:128:43 | ... ? ... : ... | -| D.cs:128:36:128:36 | access to parameter b | D.cs:128:20:128:43 | ... ? ... : ... | -| D.cs:131:9:137:9 | {...} | D.cs:132:29:132:29 | access to local variable i | -| D.cs:131:9:137:9 | {...} | D.cs:132:29:132:29 | access to local variable i | -| D.cs:132:29:132:29 | access to local variable i | D.cs:133:13:136:13 | {...} | -| D.cs:132:29:132:29 | access to local variable i | D.cs:133:13:136:13 | {...} | -| D.cs:132:29:132:29 | access to local variable i | D.cs:134:24:134:24 | access to parameter a | -| D.cs:132:29:132:29 | access to local variable i | D.cs:135:24:135:24 | access to parameter b | -| D.cs:132:29:132:29 | access to local variable i | D.cs:138:9:138:18 | ... ...; | -| D.cs:133:13:136:13 | {...} | D.cs:132:29:132:29 | access to local variable i | -| D.cs:133:13:136:13 | {...} | D.cs:132:29:132:29 | access to local variable i | -| D.cs:138:9:138:18 | ... ...; | D.cs:142:13:142:22 | ...; | -| D.cs:142:13:142:22 | ...; | D.cs:143:9:146:9 | for (...;...;...) ... | -| D.cs:143:9:146:9 | for (...;...;...) ... | D.cs:143:25:143:25 | access to local variable i | -| D.cs:143:25:143:25 | access to local variable i | D.cs:144:9:146:9 | {...} | -| D.cs:143:25:143:25 | access to local variable i | D.cs:145:20:145:20 | access to parameter a | -| D.cs:144:9:146:9 | {...} | D.cs:143:25:143:25 | access to local variable i | -| D.cs:149:36:149:38 | SSA param(obj) | D.cs:151:9:151:11 | access to parameter obj | -| D.cs:163:16:163:25 | SSA def(obj) | D.cs:168:9:170:9 | [exception: Exception] catch (...) {...} | -| D.cs:168:9:170:9 | [exception: Exception] catch (...) {...} | D.cs:168:26:168:26 | [exception: Exception] Exception e | -| D.cs:168:26:168:26 | [exception: Exception] Exception e | D.cs:171:9:171:11 | access to local variable obj | -| D.cs:240:9:240:16 | SSA def(o) | D.cs:241:29:241:32 | null | -| D.cs:240:9:240:16 | SSA def(o) | D.cs:241:36:241:37 | "" | -| D.cs:241:21:241:37 | ... ? ... : ... | D.cs:244:9:247:25 | if (...) ... | -| D.cs:241:29:241:32 | null | D.cs:241:21:241:37 | ... ? ... : ... | -| D.cs:241:36:241:37 | "" | D.cs:241:21:241:37 | ... ? ... : ... | -| D.cs:244:9:247:25 | if (...) ... | D.cs:245:13:245:13 | access to local variable o | -| D.cs:244:9:247:25 | if (...) ... | D.cs:247:13:247:13 | access to local variable o | -| D.cs:249:13:249:38 | SSA def(o2) | D.cs:253:13:253:14 | access to local variable o2 | -| D.cs:258:16:258:23 | SSA def(o) | D.cs:266:9:267:25 | if (...) ... | -| D.cs:266:9:267:25 | if (...) ... | D.cs:266:13:266:27 | [true] ... is ... | -| D.cs:266:13:266:27 | [true] ... is ... | D.cs:267:13:267:13 | access to local variable o | -| D.cs:269:9:269:16 | SSA def(o) | D.cs:272:25:272:25 | access to local variable i | -| D.cs:272:25:272:25 | access to local variable i | D.cs:273:9:288:9 | {...} | -| D.cs:272:25:272:25 | access to local variable i | D.cs:290:9:291:25 | if (...) ... | -| D.cs:272:39:272:39 | access to local variable i | D.cs:272:25:272:25 | access to local variable i | -| D.cs:273:9:288:9 | {...} | D.cs:281:13:287:13 | if (...) ... | -| D.cs:281:13:287:13 | if (...) ... | D.cs:272:39:272:39 | access to local variable i | -| D.cs:283:17:283:24 | SSA def(o) | D.cs:285:28:285:30 | {...} | -| D.cs:283:17:283:24 | SSA def(o) | D.cs:286:17:286:30 | ...; | -| D.cs:285:28:285:30 | {...} | D.cs:286:17:286:30 | ...; | -| D.cs:286:17:286:30 | ...; | D.cs:272:39:272:39 | access to local variable i | -| D.cs:290:9:291:25 | if (...) ... | D.cs:291:13:291:13 | access to local variable o | -| D.cs:290:9:291:25 | if (...) ... | D.cs:291:13:291:25 | ...; | -| D.cs:290:9:291:25 | if (...) ... | D.cs:293:9:294:25 | if (...) ... | -| D.cs:291:13:291:25 | ...; | D.cs:293:9:294:25 | if (...) ... | -| D.cs:293:9:294:25 | if (...) ... | D.cs:294:13:294:13 | access to local variable o | -| D.cs:296:16:296:26 | SSA def(prev) | D.cs:297:25:297:25 | access to local variable i | -| D.cs:297:25:297:25 | access to local variable i | D.cs:298:9:302:9 | {...} | -| D.cs:298:9:302:9 | {...} | D.cs:300:17:300:20 | access to local variable prev | -| D.cs:304:16:304:23 | SSA def(s) | D.cs:307:13:311:13 | foreach (... ... in ...) ... | -| D.cs:307:13:311:13 | foreach (... ... in ...) ... | D.cs:312:13:313:29 | if (...) ... | -| D.cs:312:13:313:29 | if (...) ... | D.cs:312:17:312:23 | [true] !... | -| D.cs:312:17:312:23 | [true] !... | D.cs:313:17:313:17 | access to local variable s | -| D.cs:316:16:316:23 | SSA def(r) | D.cs:318:16:318:19 | access to local variable stat | -| D.cs:318:16:318:19 | access to local variable stat | D.cs:318:16:318:62 | [false] ... && ... | -| D.cs:318:16:318:19 | access to local variable stat | D.cs:318:41:318:44 | access to local variable stat | -| D.cs:318:16:318:62 | [false] ... && ... | D.cs:324:9:324:9 | access to local variable r | -| D.cs:318:41:318:44 | access to local variable stat | D.cs:318:16:318:62 | [false] ... && ... | -| D.cs:351:15:351:22 | SSA def(a) | D.cs:355:9:356:21 | for (...;...;...) ... | -| D.cs:355:9:356:21 | for (...;...;...) ... | D.cs:355:25:355:25 | access to local variable i | -| D.cs:355:25:355:25 | access to local variable i | D.cs:356:13:356:13 | access to local variable a | -| D.cs:355:25:355:25 | access to local variable i | D.cs:356:13:356:21 | ...; | -| D.cs:356:13:356:21 | ...; | D.cs:355:25:355:25 | access to local variable i | -| D.cs:360:20:360:30 | SSA def(last) | D.cs:361:29:361:29 | access to local variable i | -| D.cs:361:29:361:29 | access to local variable i | D.cs:363:13:363:16 | access to local variable last | -| D.cs:366:15:366:47 | SSA def(b) | D.cs:367:13:367:56 | [false] ... && ... | -| D.cs:367:13:367:56 | [false] ... && ... | D.cs:370:9:373:9 | for (...;...;...) ... | -| D.cs:370:9:373:9 | for (...;...;...) ... | D.cs:370:25:370:25 | access to local variable i | -| D.cs:370:25:370:25 | access to local variable i | D.cs:371:9:373:9 | {...} | -| D.cs:370:25:370:25 | access to local variable i | D.cs:372:13:372:13 | access to local variable b | -| D.cs:371:9:373:9 | {...} | D.cs:370:25:370:25 | access to local variable i | -| D.cs:378:19:378:28 | SSA def(ioe) | D.cs:382:9:385:27 | if (...) ... | -| D.cs:382:9:385:27 | if (...) ... | D.cs:385:13:385:15 | access to local variable ioe | -| D.cs:388:36:388:36 | SSA param(a) | D.cs:390:32:390:32 | 0 | -| D.cs:388:45:388:45 | SSA param(b) | D.cs:390:32:390:32 | 0 | -| D.cs:388:45:388:45 | SSA param(b) | D.cs:390:36:390:36 | access to parameter a | -| D.cs:390:20:390:43 | ... ? ... : ... | D.cs:393:21:393:21 | access to local variable i | -| D.cs:390:20:390:43 | ... ? ... : ... | D.cs:393:21:393:21 | access to local variable i | -| D.cs:390:32:390:32 | 0 | D.cs:390:20:390:43 | ... ? ... : ... | -| D.cs:390:32:390:32 | 0 | D.cs:390:20:390:43 | ... ? ... : ... | -| D.cs:390:36:390:36 | access to parameter a | D.cs:390:20:390:43 | ... ? ... : ... | -| D.cs:393:21:393:21 | access to local variable i | D.cs:394:9:396:9 | {...} | -| D.cs:393:21:393:21 | access to local variable i | D.cs:394:9:396:9 | {...} | -| D.cs:393:21:393:21 | access to local variable i | D.cs:395:20:395:20 | access to parameter a | -| D.cs:393:21:393:21 | access to local variable i | D.cs:397:9:397:44 | ... ...; | -| D.cs:394:9:396:9 | {...} | D.cs:393:21:393:21 | access to local variable i | -| D.cs:394:9:396:9 | {...} | D.cs:393:21:393:21 | access to local variable i | -| D.cs:397:9:397:44 | ... ...; | D.cs:397:32:397:32 | 0 | -| D.cs:397:20:397:43 | ... ? ... : ... | D.cs:398:21:398:21 | access to local variable i | -| D.cs:397:32:397:32 | 0 | D.cs:397:20:397:43 | ... ? ... : ... | -| D.cs:398:21:398:21 | access to local variable i | D.cs:399:9:401:9 | {...} | -| D.cs:398:21:398:21 | access to local variable i | D.cs:400:20:400:20 | access to parameter b | -| D.cs:399:9:401:9 | {...} | D.cs:398:21:398:21 | access to local variable i | -| D.cs:405:35:405:35 | SSA param(x) | D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:405:35:405:35 | SSA param(x) | D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:405:35:405:35 | SSA param(x) | D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:405:45:405:45 | SSA param(y) | D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:405:45:405:45 | SSA param(y) | D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:405:45:405:45 | SSA param(y) | D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:407:13:407:64 | [false] ... \|\| ... | D.cs:409:9:410:25 | if (...) ... | -| D.cs:407:13:407:64 | [false] ... \|\| ... | D.cs:409:9:410:25 | if (...) ... | -| D.cs:407:14:407:35 | [false] ... && ... | D.cs:407:42:407:42 | access to parameter x | -| D.cs:407:14:407:35 | [false] ... && ... | D.cs:407:42:407:42 | access to parameter x | -| D.cs:407:42:407:42 | access to parameter x | D.cs:407:42:407:63 | [false] ... && ... | -| D.cs:407:42:407:42 | access to parameter x | D.cs:407:55:407:55 | access to parameter y | -| D.cs:407:42:407:42 | access to parameter x | D.cs:407:55:407:55 | access to parameter y | -| D.cs:407:42:407:63 | [false] ... && ... | D.cs:407:13:407:64 | [false] ... \|\| ... | -| D.cs:407:42:407:63 | [false] ... && ... | D.cs:407:13:407:64 | [false] ... \|\| ... | -| D.cs:407:55:407:55 | access to parameter y | D.cs:407:42:407:63 | [false] ... && ... | -| D.cs:407:55:407:55 | access to parameter y | D.cs:407:42:407:63 | [false] ... && ... | -| D.cs:409:9:410:25 | if (...) ... | D.cs:410:13:410:13 | access to parameter y | -| D.cs:409:9:410:25 | if (...) ... | D.cs:411:9:412:25 | if (...) ... | -| D.cs:411:9:412:25 | if (...) ... | D.cs:412:13:412:13 | access to parameter x | -| E.cs:9:18:9:26 | SSA def(a2) | E.cs:10:22:10:54 | ... && ... | -| E.cs:10:22:10:54 | ... && ... | E.cs:12:38:12:39 | access to local variable a2 | -| E.cs:11:16:11:24 | SSA def(a3) | E.cs:12:22:12:52 | ... && ... | -| E.cs:12:22:12:52 | ... && ... | E.cs:14:13:14:14 | access to local variable a3 | -| E.cs:23:13:23:30 | SSA def(s1) | E.cs:24:33:24:36 | null | -| E.cs:24:18:24:41 | ... ? ... : ... | E.cs:26:9:27:26 | if (...) ... | -| E.cs:24:33:24:36 | null | E.cs:24:18:24:41 | ... ? ... : ... | -| E.cs:26:9:27:26 | if (...) ... | E.cs:27:13:27:14 | access to local variable s1 | -| E.cs:51:22:51:33 | SSA def(slice) | E.cs:53:16:53:19 | access to local variable iter | -| E.cs:53:16:53:19 | access to local variable iter | E.cs:54:9:63:9 | {...} | -| E.cs:54:9:63:9 | {...} | E.cs:61:13:61:17 | access to local variable slice | -| E.cs:54:9:63:9 | {...} | E.cs:61:13:61:27 | ...; | -| E.cs:61:13:61:27 | ...; | E.cs:53:16:53:19 | access to local variable iter | -| E.cs:66:40:66:42 | SSA param(arr) | E.cs:70:13:70:50 | ...; | -| E.cs:66:40:66:42 | SSA param(arr) | E.cs:72:9:73:23 | if (...) ... | -| E.cs:70:13:70:50 | ...; | E.cs:70:36:70:36 | 0 | -| E.cs:70:22:70:49 | ... ? ... : ... | E.cs:72:9:73:23 | if (...) ... | -| E.cs:70:36:70:36 | 0 | E.cs:70:22:70:49 | ... ? ... : ... | -| E.cs:72:9:73:23 | if (...) ... | E.cs:73:13:73:15 | access to parameter arr | -| E.cs:107:15:107:25 | SSA def(arr2) | E.cs:111:9:112:30 | for (...;...;...) ... | -| E.cs:111:9:112:30 | for (...;...;...) ... | E.cs:111:25:111:25 | access to local variable i | -| E.cs:111:25:111:25 | access to local variable i | E.cs:112:13:112:16 | access to local variable arr2 | -| E.cs:111:25:111:25 | access to local variable i | E.cs:112:13:112:30 | ...; | -| E.cs:112:13:112:30 | ...; | E.cs:111:25:111:25 | access to local variable i | -| E.cs:120:16:120:20 | [true] !... | E.cs:121:9:143:9 | {...} | -| E.cs:120:17:120:20 | access to local variable stop | E.cs:120:16:120:20 | [true] !... | -| E.cs:121:9:143:9 | {...} | E.cs:123:21:123:24 | access to local variable stop | -| E.cs:123:20:123:24 | [false] !... | E.cs:123:20:123:35 | [false] ... && ... | -| E.cs:123:20:123:24 | [true] !... | E.cs:123:29:123:29 | access to local variable j | -| E.cs:123:20:123:35 | [false] ... && ... | E.cs:120:17:120:20 | access to local variable stop | -| E.cs:123:20:123:35 | [true] ... && ... | E.cs:124:13:142:13 | {...} | -| E.cs:123:20:123:35 | [true] ... && ... | E.cs:125:33:125:35 | access to local variable obj | -| E.cs:123:21:123:24 | access to local variable stop | E.cs:123:20:123:24 | [false] !... | -| E.cs:123:21:123:24 | access to local variable stop | E.cs:123:20:123:24 | [true] !... | -| E.cs:123:29:123:29 | access to local variable j | E.cs:123:20:123:35 | [false] ... && ... | -| E.cs:123:29:123:29 | access to local variable j | E.cs:123:20:123:35 | [true] ... && ... | -| E.cs:124:13:142:13 | {...} | E.cs:128:21:128:23 | access to local variable obj | -| E.cs:124:13:142:13 | {...} | E.cs:141:17:141:26 | ...; | -| E.cs:137:25:137:34 | SSA def(obj) | E.cs:139:21:139:29 | continue; | -| E.cs:139:21:139:29 | continue; | E.cs:123:21:123:24 | access to local variable stop | -| E.cs:141:17:141:26 | ...; | E.cs:123:21:123:24 | access to local variable stop | -| E.cs:152:16:152:26 | SSA def(obj2) | E.cs:153:13:153:54 | [false] ... && ... | -| E.cs:153:13:153:54 | [false] ... && ... | E.cs:158:9:159:28 | if (...) ... | -| E.cs:158:9:159:28 | if (...) ... | E.cs:159:13:159:16 | access to local variable obj2 | -| E.cs:162:28:162:28 | SSA param(a) | E.cs:164:29:164:29 | 0 | -| E.cs:164:17:164:40 | ... ? ... : ... | E.cs:165:25:165:25 | access to local variable i | -| E.cs:164:29:164:29 | 0 | E.cs:164:17:164:40 | ... ? ... : ... | -| E.cs:165:25:165:25 | access to local variable i | E.cs:166:9:170:9 | {...} | -| E.cs:165:25:165:25 | access to local variable i | E.cs:167:21:167:21 | access to parameter a | -| E.cs:165:32:165:32 | access to local variable i | E.cs:165:25:165:25 | access to local variable i | -| E.cs:166:9:170:9 | {...} | E.cs:165:32:165:32 | access to local variable i | -| E.cs:173:29:173:31 | SSA param(obj) | E.cs:175:33:175:37 | false | -| E.cs:173:29:173:31 | SSA param(obj) | E.cs:175:33:175:37 | false | -| E.cs:175:19:175:42 | ... ? ... : ... | E.cs:177:9:179:9 | {...} | -| E.cs:175:19:175:42 | ... ? ... : ... | E.cs:178:13:178:15 | access to parameter obj | -| E.cs:175:19:175:42 | ... ? ... : ... | E.cs:180:9:183:9 | if (...) ... | -| E.cs:175:33:175:37 | false | E.cs:175:19:175:42 | ... ? ... : ... | -| E.cs:177:9:179:9 | {...} | E.cs:180:9:183:9 | if (...) ... | -| E.cs:180:9:183:9 | if (...) ... | E.cs:181:9:183:9 | {...} | -| E.cs:181:9:183:9 | {...} | E.cs:184:9:187:9 | if (...) ... | -| E.cs:184:9:187:9 | if (...) ... | E.cs:186:13:186:15 | access to parameter obj | -| E.cs:190:29:190:29 | SSA param(o) | E.cs:192:17:192:17 | access to parameter o | -| E.cs:198:13:198:29 | [b (line 196): false] SSA def(o) | E.cs:203:13:203:13 | access to local variable o | -| E.cs:198:13:198:29 | [b (line 196): true] SSA def(o) | E.cs:201:13:201:13 | access to local variable o | -| E.cs:206:28:206:28 | SSA param(s) | E.cs:208:13:208:23 | [false] ... is ... | -| E.cs:208:13:208:23 | [false] ... is ... | E.cs:210:16:210:16 | access to parameter s | -| E.cs:217:13:217:20 | [b (line 213): true] SSA def(x) | E.cs:218:9:218:9 | access to local variable x | -| E.cs:217:13:217:20 | [b (line 213): true] SSA def(x) | E.cs:220:13:220:13 | access to local variable x | -| E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) | E.cs:229:13:229:13 | access to local variable x | -| E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) | E.cs:229:13:229:25 | ...; | -| E.cs:229:13:229:25 | ...; | E.cs:230:9:230:9 | access to local variable x | -| E.cs:233:26:233:26 | SSA param(i) | E.cs:235:16:235:16 | access to parameter i | -| E.cs:238:26:238:26 | SSA param(i) | E.cs:240:21:240:21 | access to parameter i | -| E.cs:283:13:283:22 | [b (line 279): false] SSA def(o) | E.cs:285:9:285:9 | access to local variable o | -| E.cs:283:13:283:22 | [b (line 279): true] SSA def(o) | E.cs:285:9:285:9 | access to local variable o | -| E.cs:301:13:301:27 | SSA def(s) | E.cs:302:9:302:9 | access to local variable s | -| E.cs:319:29:319:30 | SSA param(s1) | E.cs:321:20:321:21 | access to parameter s2 | -| E.cs:321:13:321:30 | [true] ... is ... | E.cs:323:13:323:14 | access to parameter s1 | -| E.cs:321:14:321:21 | ... ?? ... | E.cs:321:13:321:30 | [true] ... is ... | -| E.cs:321:20:321:21 | access to parameter s2 | E.cs:321:14:321:21 | ... ?? ... | -| E.cs:330:13:330:36 | SSA def(x) | E.cs:331:9:331:9 | access to local variable x | -| E.cs:342:13:342:32 | SSA def(x) | E.cs:343:9:343:9 | access to local variable x | -| E.cs:348:17:348:36 | SSA def(x) | E.cs:349:9:349:9 | access to local variable x | -| E.cs:366:28:366:28 | SSA param(s) | E.cs:366:41:366:41 | access to parameter s | -| E.cs:374:17:374:31 | SSA def(s) | E.cs:375:20:375:20 | access to local variable s | -| E.cs:380:24:380:25 | SSA param(e1) | E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:380:24:380:25 | SSA param(e1) | E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:380:24:380:25 | SSA param(e1) | E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:14:382:37 | [false] ... && ... | -| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:14:382:37 | [false] ... && ... | -| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:14:382:37 | [false] ... && ... | -| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:380:30:380:31 | SSA param(e2) | E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:382:13:382:68 | [false] ... \|\| ... | E.cs:384:9:385:24 | if (...) ... | -| E.cs:382:13:382:68 | [false] ... \|\| ... | E.cs:384:9:385:24 | if (...) ... | -| E.cs:382:14:382:37 | [false] ... && ... | E.cs:382:44:382:45 | access to parameter e1 | -| E.cs:382:14:382:37 | [false] ... && ... | E.cs:382:44:382:45 | access to parameter e1 | -| E.cs:382:28:382:29 | access to parameter e2 | E.cs:382:14:382:37 | [false] ... && ... | -| E.cs:382:28:382:29 | access to parameter e2 | E.cs:382:14:382:37 | [false] ... && ... | -| E.cs:382:44:382:45 | access to parameter e1 | E.cs:382:44:382:67 | [false] ... && ... | -| E.cs:382:44:382:45 | access to parameter e1 | E.cs:382:44:382:67 | [false] ... && ... | -| E.cs:382:44:382:67 | [false] ... && ... | E.cs:382:13:382:68 | [false] ... \|\| ... | -| E.cs:382:44:382:67 | [false] ... && ... | E.cs:382:13:382:68 | [false] ... \|\| ... | -| E.cs:384:9:385:24 | if (...) ... | E.cs:384:13:384:36 | [false] ... && ... | -| E.cs:384:9:385:24 | if (...) ... | E.cs:384:27:384:28 | access to parameter e2 | -| E.cs:384:13:384:36 | [false] ... && ... | E.cs:386:16:386:17 | access to parameter e1 | -| E.cs:384:13:384:36 | [false] ... && ... | E.cs:386:27:386:28 | access to parameter e2 | -| E.cs:384:27:384:28 | access to parameter e2 | E.cs:384:13:384:36 | [false] ... && ... | -| E.cs:404:9:404:18 | SSA def(i) | E.cs:405:16:405:16 | access to local variable i | -| E.cs:404:9:404:18 | SSA def(i) | E.cs:405:16:405:16 | access to local variable i | -| E.cs:417:24:417:40 | SSA capture def(i) | E.cs:417:34:417:34 | access to parameter i | -| E.cs:423:28:423:44 | SSA capture def(i) | E.cs:423:38:423:38 | access to parameter i | -| E.cs:430:29:430:45 | SSA capture def(i) | E.cs:430:39:430:39 | access to parameter i | -| E.cs:435:29:435:29 | SSA param(s) | E.cs:437:13:437:21 | [true] ... is ... | -| E.cs:437:13:437:21 | [true] ... is ... | E.cs:438:9:440:9 | {...} | -| E.cs:437:13:437:21 | [true] ... is ... | E.cs:439:13:439:13 | access to parameter s | -| E.cs:438:9:440:9 | {...} | E.cs:442:9:445:9 | if (...) ... | -| E.cs:442:9:445:9 | if (...) ... | E.cs:442:22:442:29 | [no-match] not ... | -| E.cs:442:13:442:29 | [true] ... is ... | E.cs:443:9:445:9 | {...} | -| E.cs:442:13:442:29 | [true] ... is ... | E.cs:444:13:444:13 | access to parameter s | -| E.cs:442:18:442:29 | [match] not ... | E.cs:442:13:442:29 | [true] ... is ... | -| E.cs:442:22:442:29 | [no-match] not ... | E.cs:442:18:442:29 | [match] not ... | -| E.cs:443:9:445:9 | {...} | E.cs:447:9:450:9 | if (...) ... | -| E.cs:447:9:450:9 | if (...) ... | E.cs:447:18:447:25 | [no-match] not ... | -| E.cs:447:13:447:25 | [false] ... is ... | E.cs:452:9:455:9 | if (...) ... | -| E.cs:447:18:447:25 | [no-match] not ... | E.cs:447:13:447:25 | [false] ... is ... | -| E.cs:452:9:455:9 | if (...) ... | E.cs:452:13:452:23 | [false] ... is ... | -| E.cs:452:13:452:23 | [false] ... is ... | E.cs:457:9:464:9 | if (...) ... | -| E.cs:457:9:464:9 | if (...) ... | E.cs:457:18:457:27 | [match] not ... | -| E.cs:457:13:457:27 | [true] ... is ... | E.cs:459:13:459:13 | access to parameter s | -| E.cs:457:18:457:27 | [match] not ... | E.cs:457:13:457:27 | [true] ... is ... | -| F.cs:7:16:7:23 | SSA def(o) | F.cs:8:9:8:9 | access to local variable o | -| Forwarding.cs:7:16:7:23 | SSA def(s) | Forwarding.cs:9:13:9:30 | [false] !... | -| Forwarding.cs:9:13:9:30 | [false] !... | Forwarding.cs:14:9:17:9 | if (...) ... | -| Forwarding.cs:14:9:17:9 | if (...) ... | Forwarding.cs:19:9:22:9 | if (...) ... | -| Forwarding.cs:19:9:22:9 | if (...) ... | Forwarding.cs:19:13:19:23 | [false] !... | -| Forwarding.cs:19:13:19:23 | [false] !... | Forwarding.cs:24:9:27:9 | if (...) ... | -| Forwarding.cs:24:9:27:9 | if (...) ... | Forwarding.cs:29:9:32:9 | if (...) ... | -| Forwarding.cs:29:9:32:9 | if (...) ... | Forwarding.cs:34:9:37:9 | if (...) ... | -| Forwarding.cs:34:9:37:9 | if (...) ... | Forwarding.cs:35:9:37:9 | {...} | -| Forwarding.cs:34:9:37:9 | if (...) ... | Forwarding.cs:36:31:36:31 | access to local variable s | -| Forwarding.cs:35:9:37:9 | {...} | Forwarding.cs:40:27:40:27 | access to local variable s | -| GuardedString.cs:7:16:7:32 | SSA def(s) | GuardedString.cs:9:13:9:36 | [false] !... | -| GuardedString.cs:9:13:9:36 | [false] !... | GuardedString.cs:14:9:17:9 | if (...) ... | -| GuardedString.cs:14:9:17:9 | if (...) ... | GuardedString.cs:14:13:14:41 | [false] !... | -| GuardedString.cs:14:13:14:41 | [false] !... | GuardedString.cs:19:9:20:40 | if (...) ... | -| GuardedString.cs:19:9:20:40 | if (...) ... | GuardedString.cs:19:26:19:26 | 0 | -| GuardedString.cs:19:26:19:26 | 0 | GuardedString.cs:22:9:23:40 | if (...) ... | -| GuardedString.cs:22:9:23:40 | if (...) ... | GuardedString.cs:22:25:22:25 | 0 | -| GuardedString.cs:22:25:22:25 | 0 | GuardedString.cs:25:9:26:40 | if (...) ... | -| GuardedString.cs:25:9:26:40 | if (...) ... | GuardedString.cs:25:26:25:26 | 0 | -| GuardedString.cs:25:26:25:26 | 0 | GuardedString.cs:28:9:29:40 | if (...) ... | -| GuardedString.cs:28:9:29:40 | if (...) ... | GuardedString.cs:28:25:28:26 | 10 | -| GuardedString.cs:28:25:28:26 | 10 | GuardedString.cs:31:9:32:40 | if (...) ... | -| GuardedString.cs:31:9:32:40 | if (...) ... | GuardedString.cs:31:26:31:27 | 10 | -| GuardedString.cs:31:26:31:27 | 10 | GuardedString.cs:34:9:37:40 | if (...) ... | -| GuardedString.cs:34:9:37:40 | if (...) ... | GuardedString.cs:34:26:34:26 | 0 | -| GuardedString.cs:34:26:34:26 | 0 | GuardedString.cs:35:31:35:31 | access to local variable s | -| NullAlwaysBad.cs:7:29:7:29 | SSA param(s) | NullAlwaysBad.cs:9:30:9:30 | access to parameter s | -| NullMaybeBad.cs:13:17:13:20 | null | NullMaybeBad.cs:7:27:7:27 | access to parameter o | -| Params.cs:20:12:20:15 | null | Params.cs:14:17:14:20 | access to parameter args | -| StringConcatenation.cs:14:16:14:23 | SSA def(s) | StringConcatenation.cs:15:16:15:16 | access to local variable s | -| StringConcatenation.cs:15:16:15:16 | access to local variable s | StringConcatenation.cs:16:17:16:17 | access to local variable s | -nodes -| A.cs:7:16:7:40 | SSA def(synchronizedAlways) | -| A.cs:8:15:8:32 | access to local variable synchronizedAlways | -| A.cs:10:13:10:30 | access to local variable synchronizedAlways | -| A.cs:16:15:16:30 | SSA def(arrayNull) | -| A.cs:17:9:17:17 | access to local variable arrayNull | -| A.cs:26:15:26:32 | SSA def(arrayAccess) | -| A.cs:27:18:27:35 | SSA def(fieldAccess) | -| A.cs:28:16:28:34 | SSA def(methodAccess) | -| A.cs:29:16:29:32 | SSA def(methodCall) | -| A.cs:31:27:31:37 | access to local variable arrayAccess | -| A.cs:32:27:32:37 | access to local variable fieldAccess | -| A.cs:33:28:33:39 | access to local variable methodAccess | -| A.cs:34:27:34:36 | access to local variable methodCall | -| A.cs:36:27:36:37 | access to local variable arrayAccess | -| A.cs:37:27:37:37 | access to local variable fieldAccess | -| A.cs:38:15:38:26 | access to local variable methodAccess | -| A.cs:39:27:39:36 | access to local variable methodCall | -| A.cs:48:16:48:28 | SSA def(varRef) | -| A.cs:50:9:50:14 | access to local variable varRef | -| Assert.cs:13:9:13:25 | [b (line 7): false] SSA def(s) | -| Assert.cs:13:9:13:25 | [b (line 7): true] SSA def(s) | -| Assert.cs:15:27:15:27 | access to local variable s | -| Assert.cs:15:27:15:27 | access to local variable s | -| Assert.cs:21:9:21:25 | [b (line 7): false] SSA def(s) | -| Assert.cs:21:9:21:25 | [b (line 7): true] SSA def(s) | -| Assert.cs:23:27:23:27 | access to local variable s | -| Assert.cs:23:27:23:27 | access to local variable s | -| Assert.cs:29:9:29:25 | [b (line 7): false] SSA def(s) | -| Assert.cs:29:9:29:25 | [b (line 7): true] SSA def(s) | -| Assert.cs:31:27:31:27 | access to local variable s | -| Assert.cs:31:27:31:27 | access to local variable s | -| Assert.cs:45:9:45:25 | [b (line 7): true] SSA def(s) | -| Assert.cs:46:23:46:36 | [true, b (line 7): true] ... && ... | -| Assert.cs:46:36:46:36 | [b (line 7): true] access to parameter b | -| Assert.cs:47:27:47:27 | access to local variable s | -| Assert.cs:49:9:49:25 | [b (line 7): true] SSA def(s) | -| Assert.cs:50:24:50:38 | [false] ... \|\| ... | -| Assert.cs:50:37:50:38 | [false] !... | -| Assert.cs:50:38:50:38 | [b (line 7): true] access to parameter b | -| Assert.cs:51:27:51:27 | access to local variable s | -| B.cs:7:11:7:29 | SSA def(eqCallAlways) | -| B.cs:10:11:10:30 | SSA def(neqCallAlways) | -| B.cs:13:13:13:24 | access to local variable eqCallAlways | -| B.cs:13:13:13:36 | ...; | -| B.cs:15:9:16:26 | if (...) ... | -| B.cs:16:13:16:26 | ...; | -| B.cs:18:9:20:26 | if (...) ... | -| B.cs:18:25:18:27 | {...} | -| B.cs:20:13:20:26 | ...; | -| B.cs:22:9:24:37 | if (...) ... | -| B.cs:24:13:24:25 | access to local variable neqCallAlways | -| C.cs:10:16:10:23 | SSA def(o) | -| C.cs:11:13:11:30 | [false] !... | -| C.cs:11:15:11:29 | [true] !... | -| C.cs:11:17:11:28 | [false] !... | -| C.cs:16:9:19:9 | if (...) ... | -| C.cs:16:13:16:24 | [true] !... | -| C.cs:18:13:18:13 | access to local variable o | -| C.cs:40:13:40:35 | SSA def(s) | -| C.cs:42:9:42:9 | access to local variable s | -| C.cs:55:13:55:36 | SSA def(o2) | -| C.cs:57:9:57:10 | access to local variable o2 | -| C.cs:62:13:62:46 | SSA def(o1) | -| C.cs:64:9:64:10 | access to local variable o1 | -| C.cs:66:13:66:46 | SSA def(o2) | -| C.cs:68:9:68:10 | access to local variable o2 | -| C.cs:94:13:94:45 | SSA def(o) | -| C.cs:95:15:95:15 | access to local variable o | -| C.cs:96:13:96:13 | access to local variable o | -| C.cs:102:13:102:23 | SSA def(list) | -| C.cs:103:9:107:9 | foreach (... ... in ...) ... | -| C.cs:103:22:103:22 | Int32 x | -| C.cs:103:27:103:30 | access to parameter list | -| C.cs:103:27:103:30 | access to parameter list | -| C.cs:106:13:106:16 | access to parameter list | -| C.cs:159:9:159:16 | SSA def(s) | -| C.cs:162:13:162:13 | access to local variable s | -| C.cs:167:9:167:16 | SSA def(s) | -| C.cs:170:13:170:13 | access to local variable s | -| C.cs:177:13:177:13 | access to local variable s | -| C.cs:178:13:178:20 | SSA def(s) | -| C.cs:193:9:193:16 | SSA def(s) | -| C.cs:196:13:196:13 | access to local variable s | -| C.cs:197:13:197:20 | [b (line 192): true] SSA def(s) | -| C.cs:201:16:201:19 | true | -| C.cs:203:13:203:13 | access to local variable s | -| C.cs:204:13:204:20 | SSA def(s) | -| C.cs:210:13:210:35 | SSA def(s) | -| C.cs:214:13:214:20 | SSA def(s) | -| C.cs:217:9:218:25 | if (...) ... | -| C.cs:218:13:218:13 | access to local variable s | -| C.cs:222:13:222:20 | SSA def(s) | -| C.cs:223:9:223:9 | access to local variable s | -| C.cs:229:22:229:22 | access to local variable s | -| C.cs:229:33:229:40 | SSA def(s) | -| C.cs:233:9:233:9 | access to local variable s | -| C.cs:235:14:235:21 | SSA def(s) | -| C.cs:235:24:235:24 | access to local variable s | -| C.cs:235:35:235:42 | SSA def(s) | -| C.cs:237:13:237:13 | access to local variable s | -| C.cs:240:24:240:31 | SSA def(s) | -| C.cs:242:13:242:13 | access to local variable s | -| C.cs:248:15:248:22 | SSA def(a) | -| C.cs:249:9:249:9 | access to local variable a | -| C.cs:257:15:257:23 | SSA def(ia) | -| C.cs:258:18:258:26 | SSA def(sa) | -| C.cs:260:9:260:10 | access to local variable ia | -| C.cs:261:20:261:21 | access to local variable sa | -| C.cs:263:9:263:10 | access to local variable ia | -| C.cs:264:16:264:17 | access to local variable sa | -| D.cs:17:17:17:20 | null | -| D.cs:23:9:23:13 | access to parameter param | -| D.cs:26:32:26:36 | SSA param(param) | -| D.cs:32:9:32:13 | access to parameter param | -| D.cs:58:13:58:41 | SSA def(o5) | -| D.cs:61:9:62:26 | if (...) ... | -| D.cs:62:13:62:14 | access to local variable o5 | -| D.cs:68:13:68:34 | SSA def(o7) | -| D.cs:69:18:69:36 | ... && ... | -| D.cs:73:13:73:14 | access to local variable o7 | -| D.cs:75:13:75:34 | SSA def(o8) | -| D.cs:76:21:76:43 | ... ? ... : ... | -| D.cs:76:34:76:35 | 42 | -| D.cs:79:9:80:26 | if (...) ... | -| D.cs:81:9:82:26 | if (...) ... | -| D.cs:82:13:82:14 | access to local variable o8 | -| D.cs:82:13:82:26 | ...; | -| D.cs:83:9:84:26 | if (...) ... | -| D.cs:84:13:84:14 | access to local variable o8 | -| D.cs:89:15:89:44 | SSA def(xs) | -| D.cs:91:13:91:14 | access to local variable xs | -| D.cs:91:13:91:22 | ...; | -| D.cs:93:9:94:30 | if (...) ... | -| D.cs:94:13:94:30 | ...; | -| D.cs:94:21:94:22 | access to local variable xs | -| D.cs:96:9:99:9 | if (...) ... | -| D.cs:97:9:99:9 | {...} | -| D.cs:98:21:98:22 | access to local variable xs | -| D.cs:101:9:102:35 | if (...) ... | -| D.cs:102:13:102:35 | foreach (... ... in ...) ... | -| D.cs:102:26:102:26 | Int32 _ | -| D.cs:102:31:102:32 | access to local variable xs | -| D.cs:102:31:102:32 | access to local variable xs | -| D.cs:104:9:106:30 | if (...) ... | -| D.cs:105:19:105:20 | access to local variable xs | -| D.cs:106:17:106:18 | access to local variable xs | -| D.cs:118:9:118:30 | SSA def(x) | -| D.cs:120:13:120:13 | access to local variable x | -| D.cs:125:35:125:35 | SSA param(a) | -| D.cs:125:35:125:35 | SSA param(a) | -| D.cs:125:44:125:44 | SSA param(b) | -| D.cs:127:20:127:43 | ... ? ... : ... | -| D.cs:127:20:127:43 | ... ? ... : ... | -| D.cs:127:32:127:32 | 0 | -| D.cs:127:32:127:32 | 0 | -| D.cs:127:36:127:36 | access to parameter a | -| D.cs:128:20:128:43 | ... ? ... : ... | -| D.cs:128:20:128:43 | ... ? ... : ... | -| D.cs:128:32:128:32 | 0 | -| D.cs:128:32:128:32 | 0 | -| D.cs:128:36:128:36 | access to parameter b | -| D.cs:131:9:137:9 | {...} | -| D.cs:131:9:137:9 | {...} | -| D.cs:132:29:132:29 | access to local variable i | -| D.cs:132:29:132:29 | access to local variable i | -| D.cs:133:13:136:13 | {...} | -| D.cs:133:13:136:13 | {...} | -| D.cs:134:24:134:24 | access to parameter a | -| D.cs:135:24:135:24 | access to parameter b | -| D.cs:138:9:138:18 | ... ...; | -| D.cs:142:13:142:22 | ...; | -| D.cs:143:9:146:9 | for (...;...;...) ... | -| D.cs:143:25:143:25 | access to local variable i | -| D.cs:144:9:146:9 | {...} | -| D.cs:145:20:145:20 | access to parameter a | -| D.cs:149:36:149:38 | SSA param(obj) | -| D.cs:151:9:151:11 | access to parameter obj | -| D.cs:163:16:163:25 | SSA def(obj) | -| D.cs:168:9:170:9 | [exception: Exception] catch (...) {...} | -| D.cs:168:26:168:26 | [exception: Exception] Exception e | -| D.cs:171:9:171:11 | access to local variable obj | -| D.cs:240:9:240:16 | SSA def(o) | -| D.cs:241:21:241:37 | ... ? ... : ... | -| D.cs:241:29:241:32 | null | -| D.cs:241:36:241:37 | "" | -| D.cs:244:9:247:25 | if (...) ... | -| D.cs:245:13:245:13 | access to local variable o | -| D.cs:247:13:247:13 | access to local variable o | -| D.cs:249:13:249:38 | SSA def(o2) | -| D.cs:253:13:253:14 | access to local variable o2 | -| D.cs:258:16:258:23 | SSA def(o) | -| D.cs:266:9:267:25 | if (...) ... | -| D.cs:266:13:266:27 | [true] ... is ... | -| D.cs:267:13:267:13 | access to local variable o | -| D.cs:269:9:269:16 | SSA def(o) | -| D.cs:272:25:272:25 | access to local variable i | -| D.cs:272:39:272:39 | access to local variable i | -| D.cs:273:9:288:9 | {...} | -| D.cs:281:13:287:13 | if (...) ... | -| D.cs:283:17:283:24 | SSA def(o) | -| D.cs:285:28:285:30 | {...} | -| D.cs:286:17:286:30 | ...; | -| D.cs:290:9:291:25 | if (...) ... | -| D.cs:291:13:291:13 | access to local variable o | -| D.cs:291:13:291:25 | ...; | -| D.cs:293:9:294:25 | if (...) ... | -| D.cs:294:13:294:13 | access to local variable o | -| D.cs:296:16:296:26 | SSA def(prev) | -| D.cs:297:25:297:25 | access to local variable i | -| D.cs:298:9:302:9 | {...} | -| D.cs:300:17:300:20 | access to local variable prev | -| D.cs:304:16:304:23 | SSA def(s) | -| D.cs:307:13:311:13 | foreach (... ... in ...) ... | -| D.cs:312:13:313:29 | if (...) ... | -| D.cs:312:17:312:23 | [true] !... | -| D.cs:313:17:313:17 | access to local variable s | -| D.cs:316:16:316:23 | SSA def(r) | -| D.cs:318:16:318:19 | access to local variable stat | -| D.cs:318:16:318:62 | [false] ... && ... | -| D.cs:318:41:318:44 | access to local variable stat | -| D.cs:324:9:324:9 | access to local variable r | -| D.cs:351:15:351:22 | SSA def(a) | -| D.cs:355:9:356:21 | for (...;...;...) ... | -| D.cs:355:25:355:25 | access to local variable i | -| D.cs:356:13:356:13 | access to local variable a | -| D.cs:356:13:356:21 | ...; | -| D.cs:360:20:360:30 | SSA def(last) | -| D.cs:361:29:361:29 | access to local variable i | -| D.cs:363:13:363:16 | access to local variable last | -| D.cs:366:15:366:47 | SSA def(b) | -| D.cs:367:13:367:56 | [false] ... && ... | -| D.cs:370:9:373:9 | for (...;...;...) ... | -| D.cs:370:25:370:25 | access to local variable i | -| D.cs:371:9:373:9 | {...} | -| D.cs:372:13:372:13 | access to local variable b | -| D.cs:378:19:378:28 | SSA def(ioe) | -| D.cs:382:9:385:27 | if (...) ... | -| D.cs:385:13:385:15 | access to local variable ioe | -| D.cs:388:36:388:36 | SSA param(a) | -| D.cs:388:45:388:45 | SSA param(b) | -| D.cs:390:20:390:43 | ... ? ... : ... | -| D.cs:390:20:390:43 | ... ? ... : ... | -| D.cs:390:32:390:32 | 0 | -| D.cs:390:32:390:32 | 0 | -| D.cs:390:36:390:36 | access to parameter a | -| D.cs:393:21:393:21 | access to local variable i | -| D.cs:393:21:393:21 | access to local variable i | -| D.cs:394:9:396:9 | {...} | -| D.cs:394:9:396:9 | {...} | -| D.cs:395:20:395:20 | access to parameter a | -| D.cs:397:9:397:44 | ... ...; | -| D.cs:397:20:397:43 | ... ? ... : ... | -| D.cs:397:32:397:32 | 0 | -| D.cs:398:21:398:21 | access to local variable i | -| D.cs:399:9:401:9 | {...} | -| D.cs:400:20:400:20 | access to parameter b | -| D.cs:405:35:405:35 | SSA param(x) | -| D.cs:405:35:405:35 | SSA param(x) | -| D.cs:405:35:405:35 | SSA param(x) | -| D.cs:405:45:405:45 | SSA param(y) | -| D.cs:405:45:405:45 | SSA param(y) | -| D.cs:405:45:405:45 | SSA param(y) | -| D.cs:407:13:407:64 | [false] ... \|\| ... | -| D.cs:407:13:407:64 | [false] ... \|\| ... | -| D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:407:14:407:35 | [false] ... && ... | -| D.cs:407:42:407:42 | access to parameter x | -| D.cs:407:42:407:42 | access to parameter x | -| D.cs:407:42:407:63 | [false] ... && ... | -| D.cs:407:42:407:63 | [false] ... && ... | -| D.cs:407:55:407:55 | access to parameter y | -| D.cs:407:55:407:55 | access to parameter y | -| D.cs:409:9:410:25 | if (...) ... | -| D.cs:409:9:410:25 | if (...) ... | -| D.cs:410:13:410:13 | access to parameter y | -| D.cs:411:9:412:25 | if (...) ... | -| D.cs:412:13:412:13 | access to parameter x | -| E.cs:9:18:9:26 | SSA def(a2) | -| E.cs:10:22:10:54 | ... && ... | -| E.cs:11:16:11:24 | SSA def(a3) | -| E.cs:12:22:12:52 | ... && ... | -| E.cs:12:38:12:39 | access to local variable a2 | -| E.cs:14:13:14:14 | access to local variable a3 | -| E.cs:23:13:23:30 | SSA def(s1) | -| E.cs:24:18:24:41 | ... ? ... : ... | -| E.cs:24:33:24:36 | null | -| E.cs:26:9:27:26 | if (...) ... | -| E.cs:27:13:27:14 | access to local variable s1 | -| E.cs:51:22:51:33 | SSA def(slice) | -| E.cs:53:16:53:19 | access to local variable iter | -| E.cs:54:9:63:9 | {...} | -| E.cs:61:13:61:17 | access to local variable slice | -| E.cs:61:13:61:27 | ...; | -| E.cs:66:40:66:42 | SSA param(arr) | -| E.cs:70:13:70:50 | ...; | -| E.cs:70:22:70:49 | ... ? ... : ... | -| E.cs:70:36:70:36 | 0 | -| E.cs:72:9:73:23 | if (...) ... | -| E.cs:73:13:73:15 | access to parameter arr | -| E.cs:107:15:107:25 | SSA def(arr2) | -| E.cs:111:9:112:30 | for (...;...;...) ... | -| E.cs:111:25:111:25 | access to local variable i | -| E.cs:112:13:112:16 | access to local variable arr2 | -| E.cs:112:13:112:30 | ...; | -| E.cs:120:16:120:20 | [true] !... | -| E.cs:120:17:120:20 | access to local variable stop | -| E.cs:121:9:143:9 | {...} | -| E.cs:123:20:123:24 | [false] !... | -| E.cs:123:20:123:24 | [true] !... | -| E.cs:123:20:123:35 | [false] ... && ... | -| E.cs:123:20:123:35 | [true] ... && ... | -| E.cs:123:21:123:24 | access to local variable stop | -| E.cs:123:29:123:29 | access to local variable j | -| E.cs:124:13:142:13 | {...} | -| E.cs:125:33:125:35 | access to local variable obj | -| E.cs:128:21:128:23 | access to local variable obj | -| E.cs:137:25:137:34 | SSA def(obj) | -| E.cs:139:21:139:29 | continue; | -| E.cs:141:17:141:26 | ...; | -| E.cs:152:16:152:26 | SSA def(obj2) | -| E.cs:153:13:153:54 | [false] ... && ... | -| E.cs:158:9:159:28 | if (...) ... | -| E.cs:159:13:159:16 | access to local variable obj2 | -| E.cs:162:28:162:28 | SSA param(a) | -| E.cs:164:17:164:40 | ... ? ... : ... | -| E.cs:164:29:164:29 | 0 | -| E.cs:165:25:165:25 | access to local variable i | -| E.cs:165:32:165:32 | access to local variable i | -| E.cs:166:9:170:9 | {...} | -| E.cs:167:21:167:21 | access to parameter a | -| E.cs:173:29:173:31 | SSA param(obj) | -| E.cs:173:29:173:31 | SSA param(obj) | -| E.cs:175:19:175:42 | ... ? ... : ... | -| E.cs:175:33:175:37 | false | -| E.cs:177:9:179:9 | {...} | -| E.cs:178:13:178:15 | access to parameter obj | -| E.cs:180:9:183:9 | if (...) ... | -| E.cs:181:9:183:9 | {...} | -| E.cs:184:9:187:9 | if (...) ... | -| E.cs:186:13:186:15 | access to parameter obj | -| E.cs:190:29:190:29 | SSA param(o) | -| E.cs:192:17:192:17 | access to parameter o | -| E.cs:198:13:198:29 | [b (line 196): false] SSA def(o) | -| E.cs:198:13:198:29 | [b (line 196): true] SSA def(o) | -| E.cs:201:13:201:13 | access to local variable o | -| E.cs:203:13:203:13 | access to local variable o | -| E.cs:206:28:206:28 | SSA param(s) | -| E.cs:208:13:208:23 | [false] ... is ... | -| E.cs:210:16:210:16 | access to parameter s | -| E.cs:217:13:217:20 | [b (line 213): true] SSA def(x) | -| E.cs:218:9:218:9 | access to local variable x | -| E.cs:220:13:220:13 | access to local variable x | -| E.cs:227:13:227:20 | [b (line 223): true] SSA def(x) | -| E.cs:229:13:229:13 | access to local variable x | -| E.cs:229:13:229:25 | ...; | -| E.cs:230:9:230:9 | access to local variable x | -| E.cs:233:26:233:26 | SSA param(i) | -| E.cs:235:16:235:16 | access to parameter i | -| E.cs:238:26:238:26 | SSA param(i) | -| E.cs:240:21:240:21 | access to parameter i | -| E.cs:283:13:283:22 | [b (line 279): false] SSA def(o) | -| E.cs:283:13:283:22 | [b (line 279): true] SSA def(o) | -| E.cs:285:9:285:9 | access to local variable o | -| E.cs:285:9:285:9 | access to local variable o | -| E.cs:301:13:301:27 | SSA def(s) | -| E.cs:302:9:302:9 | access to local variable s | -| E.cs:319:29:319:30 | SSA param(s1) | -| E.cs:321:13:321:30 | [true] ... is ... | -| E.cs:321:14:321:21 | ... ?? ... | -| E.cs:321:20:321:21 | access to parameter s2 | -| E.cs:323:13:323:14 | access to parameter s1 | -| E.cs:330:13:330:36 | SSA def(x) | -| E.cs:331:9:331:9 | access to local variable x | -| E.cs:342:13:342:32 | SSA def(x) | -| E.cs:343:9:343:9 | access to local variable x | -| E.cs:348:17:348:36 | SSA def(x) | -| E.cs:349:9:349:9 | access to local variable x | -| E.cs:366:28:366:28 | SSA param(s) | -| E.cs:366:41:366:41 | access to parameter s | -| E.cs:374:17:374:31 | SSA def(s) | -| E.cs:375:20:375:20 | access to local variable s | -| E.cs:380:24:380:25 | SSA param(e1) | -| E.cs:380:24:380:25 | SSA param(e1) | -| E.cs:380:24:380:25 | SSA param(e1) | -| E.cs:380:30:380:31 | SSA param(e2) | -| E.cs:380:30:380:31 | SSA param(e2) | -| E.cs:380:30:380:31 | SSA param(e2) | -| E.cs:382:13:382:68 | [false] ... \|\| ... | -| E.cs:382:13:382:68 | [false] ... \|\| ... | -| E.cs:382:14:382:37 | [false] ... && ... | -| E.cs:382:14:382:37 | [false] ... && ... | -| E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:382:28:382:29 | access to parameter e2 | -| E.cs:382:44:382:45 | access to parameter e1 | -| E.cs:382:44:382:45 | access to parameter e1 | -| E.cs:382:44:382:67 | [false] ... && ... | -| E.cs:382:44:382:67 | [false] ... && ... | -| E.cs:384:9:385:24 | if (...) ... | -| E.cs:384:9:385:24 | if (...) ... | -| E.cs:384:13:384:36 | [false] ... && ... | -| E.cs:384:13:384:36 | [false] ... && ... | -| E.cs:384:27:384:28 | access to parameter e2 | -| E.cs:386:16:386:17 | access to parameter e1 | -| E.cs:386:27:386:28 | access to parameter e2 | -| E.cs:404:9:404:18 | SSA def(i) | -| E.cs:404:9:404:18 | SSA def(i) | -| E.cs:405:16:405:16 | access to local variable i | -| E.cs:417:24:417:40 | SSA capture def(i) | -| E.cs:417:34:417:34 | access to parameter i | -| E.cs:423:28:423:44 | SSA capture def(i) | -| E.cs:423:38:423:38 | access to parameter i | -| E.cs:430:29:430:45 | SSA capture def(i) | -| E.cs:430:39:430:39 | access to parameter i | -| E.cs:435:29:435:29 | SSA param(s) | -| E.cs:437:13:437:21 | [true] ... is ... | -| E.cs:438:9:440:9 | {...} | -| E.cs:439:13:439:13 | access to parameter s | -| E.cs:442:9:445:9 | if (...) ... | -| E.cs:442:13:442:29 | [true] ... is ... | -| E.cs:442:18:442:29 | [match] not ... | -| E.cs:442:22:442:29 | [no-match] not ... | -| E.cs:443:9:445:9 | {...} | -| E.cs:444:13:444:13 | access to parameter s | -| E.cs:447:9:450:9 | if (...) ... | -| E.cs:447:13:447:25 | [false] ... is ... | -| E.cs:447:18:447:25 | [no-match] not ... | -| E.cs:452:9:455:9 | if (...) ... | -| E.cs:452:13:452:23 | [false] ... is ... | -| E.cs:457:9:464:9 | if (...) ... | -| E.cs:457:13:457:27 | [true] ... is ... | -| E.cs:457:18:457:27 | [match] not ... | -| E.cs:459:13:459:13 | access to parameter s | -| F.cs:7:16:7:23 | SSA def(o) | -| F.cs:8:9:8:9 | access to local variable o | -| Forwarding.cs:7:16:7:23 | SSA def(s) | -| Forwarding.cs:9:13:9:30 | [false] !... | -| Forwarding.cs:14:9:17:9 | if (...) ... | -| Forwarding.cs:19:9:22:9 | if (...) ... | -| Forwarding.cs:19:13:19:23 | [false] !... | -| Forwarding.cs:24:9:27:9 | if (...) ... | -| Forwarding.cs:29:9:32:9 | if (...) ... | -| Forwarding.cs:34:9:37:9 | if (...) ... | -| Forwarding.cs:35:9:37:9 | {...} | -| Forwarding.cs:36:31:36:31 | access to local variable s | -| Forwarding.cs:40:27:40:27 | access to local variable s | -| GuardedString.cs:7:16:7:32 | SSA def(s) | -| GuardedString.cs:9:13:9:36 | [false] !... | -| GuardedString.cs:14:9:17:9 | if (...) ... | -| GuardedString.cs:14:13:14:41 | [false] !... | -| GuardedString.cs:19:9:20:40 | if (...) ... | -| GuardedString.cs:19:26:19:26 | 0 | -| GuardedString.cs:22:9:23:40 | if (...) ... | -| GuardedString.cs:22:25:22:25 | 0 | -| GuardedString.cs:25:9:26:40 | if (...) ... | -| GuardedString.cs:25:26:25:26 | 0 | -| GuardedString.cs:28:9:29:40 | if (...) ... | -| GuardedString.cs:28:25:28:26 | 10 | -| GuardedString.cs:31:9:32:40 | if (...) ... | -| GuardedString.cs:31:26:31:27 | 10 | -| GuardedString.cs:34:9:37:40 | if (...) ... | -| GuardedString.cs:34:26:34:26 | 0 | -| GuardedString.cs:35:31:35:31 | access to local variable s | -| NullAlwaysBad.cs:7:29:7:29 | SSA param(s) | -| NullAlwaysBad.cs:9:30:9:30 | access to parameter s | -| NullMaybeBad.cs:7:27:7:27 | access to parameter o | -| NullMaybeBad.cs:13:17:13:20 | null | -| Params.cs:14:17:14:20 | access to parameter args | -| Params.cs:20:12:20:15 | null | -| StringConcatenation.cs:14:16:14:23 | SSA def(s) | -| StringConcatenation.cs:15:16:15:16 | access to local variable s | -| StringConcatenation.cs:16:17:16:17 | access to local variable s | +| C.cs:64:9:64:10 | access to local variable o1 | Variable $@ may be null at this access because of $@ assignment. | C.cs:62:13:62:14 | o1 | o1 | C.cs:62:13:62:46 | Object o1 = ... | this | +| C.cs:68:9:68:10 | access to local variable o2 | Variable $@ may be null at this access because of $@ assignment. | C.cs:66:13:66:14 | o2 | o2 | C.cs:66:13:66:46 | Object o2 = ... | this | +| C.cs:95:15:95:15 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | C.cs:94:13:94:13 | o | o | C.cs:94:13:94:45 | Object o = ... | this | +| C.cs:103:27:103:30 | access to parameter list | Variable $@ may be null at this access because of $@ assignment. | C.cs:99:42:99:45 | list | list | C.cs:102:13:102:23 | ... = ... | this | +| C.cs:177:13:177:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:151:13:151:13 | s | s | C.cs:178:13:178:20 | ... = ... | this | +| C.cs:203:13:203:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:185:13:185:13 | s | s | C.cs:204:13:204:20 | ... = ... | this | +| C.cs:223:9:223:9 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:210:13:210:13 | s | s | C.cs:222:13:222:20 | ... = ... | this | +| C.cs:242:13:242:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:228:16:228:16 | s | s | C.cs:240:24:240:31 | ... = ... | this | +| D.cs:23:9:23:13 | access to parameter param | Variable $@ may be null at this access because of $@ null argument. | D.cs:21:32:21:36 | param | param | D.cs:17:17:17:20 | null | this | +| D.cs:32:9:32:13 | access to parameter param | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:26:32:26:36 | param | param | D.cs:28:13:28:25 | ... != ... | this | +| D.cs:73:13:73:14 | access to local variable o7 | Variable $@ may be null at this access because of $@ assignment. | D.cs:68:13:68:14 | o7 | o7 | D.cs:68:13:68:34 | String o7 = ... | this | +| D.cs:82:13:82:14 | access to local variable o8 | Variable $@ may be null at this access because of $@ assignment. | D.cs:75:13:75:14 | o8 | o8 | D.cs:75:13:75:34 | String o8 = ... | this | +| D.cs:84:13:84:14 | access to local variable o8 | Variable $@ may be null at this access because of $@ assignment. | D.cs:75:13:75:14 | o8 | o8 | D.cs:75:13:75:34 | String o8 = ... | this | +| D.cs:91:13:91:14 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | +| D.cs:94:21:94:22 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | +| D.cs:98:21:98:22 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | +| D.cs:102:31:102:32 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | +| D.cs:105:19:105:20 | access to local variable xs | Variable $@ may be null at this access because of $@ assignment. | D.cs:89:15:89:16 | xs | xs | D.cs:89:15:89:44 | Int32[] xs = ... | this | +| D.cs:134:24:134:24 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:127:20:127:28 | ... == ... | this | +| D.cs:134:24:134:24 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:139:13:139:21 | ... != ... | this | +| D.cs:135:24:135:24 | access to parameter b | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:44:125:44 | b | b | D.cs:128:20:128:28 | ... == ... | this | +| D.cs:145:20:145:20 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:127:20:127:28 | ... == ... | this | +| D.cs:145:20:145:20 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:125:35:125:35 | a | a | D.cs:139:13:139:21 | ... != ... | this | +| D.cs:151:9:151:11 | access to parameter obj | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:149:36:149:38 | obj | obj | D.cs:152:17:152:27 | ... != ... | this | +| D.cs:171:9:171:11 | access to local variable obj | Variable $@ may be null at this access because of $@ assignment. | D.cs:163:16:163:18 | obj | obj | D.cs:163:16:163:25 | Object obj = ... | this | +| D.cs:245:13:245:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:228:16:228:16 | o | o | D.cs:240:9:240:16 | ... = ... | this | +| D.cs:253:13:253:14 | access to local variable o2 | Variable $@ may be null at this access because of $@ assignment. | D.cs:249:13:249:14 | o2 | o2 | D.cs:249:13:249:38 | String o2 = ... | this | +| D.cs:291:13:291:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:258:16:258:16 | o | o | D.cs:269:9:269:16 | ... = ... | this | +| D.cs:291:13:291:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | D.cs:258:16:258:16 | o | o | D.cs:283:17:283:24 | ... = ... | this | +| D.cs:356:13:356:13 | access to local variable a | Variable $@ may be null at this access because of $@ assignment. | D.cs:351:15:351:15 | a | a | D.cs:351:15:351:22 | Int32[] a = ... | this | +| D.cs:363:13:363:16 | access to local variable last | Variable $@ may be null at this access because of $@ assignment. | D.cs:360:20:360:23 | last | last | D.cs:360:20:360:30 | String last = ... | this | +| D.cs:372:13:372:13 | access to local variable b | Variable $@ may be null at this access because of $@ assignment. | D.cs:366:15:366:15 | b | b | D.cs:366:15:366:47 | Int32[] b = ... | this | +| D.cs:395:20:395:20 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:388:36:388:36 | a | a | D.cs:390:20:390:28 | ... == ... | this | +| D.cs:400:20:400:20 | access to parameter b | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:388:45:388:45 | b | b | D.cs:397:20:397:28 | ... == ... | this | +| E.cs:12:38:12:39 | access to local variable a2 | Variable $@ may be null at this access because of $@ assignment. | E.cs:9:18:9:19 | a2 | a2 | E.cs:9:18:9:26 | Int64[][] a2 = ... | this | +| E.cs:14:13:14:14 | access to local variable a3 | Variable $@ may be null at this access because of $@ assignment. | E.cs:11:16:11:17 | a3 | a3 | E.cs:11:16:11:24 | Int64[] a3 = ... | this | +| E.cs:27:13:27:14 | access to local variable s1 | Variable $@ may be null at this access because of $@ assignment. | E.cs:19:13:19:14 | s1 | s1 | E.cs:23:13:23:30 | ... = ... | this | +| E.cs:35:9:35:12 | access to local variable last | Variable $@ may be null at this access because of $@ assignment. | E.cs:32:16:32:19 | last | last | E.cs:32:16:32:26 | String last = ... | this | +| E.cs:43:13:43:16 | access to local variable last | Variable $@ may be null at this access because of $@ assignment. | E.cs:32:16:32:19 | last | last | E.cs:37:9:37:19 | ... = ... | this | +| E.cs:61:13:61:17 | access to local variable slice | Variable $@ may be null at this access because of $@ assignment. | E.cs:51:22:51:26 | slice | slice | E.cs:51:22:51:33 | List slice = ... | this | +| E.cs:73:13:73:15 | access to parameter arr | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:66:40:66:42 | arr | arr | E.cs:70:22:70:32 | ... == ... | this | +| E.cs:112:13:112:16 | access to local variable arr2 | Variable $@ may be null at this access because of $@ assignment. | E.cs:107:15:107:18 | arr2 | arr2 | E.cs:107:15:107:25 | Int32[] arr2 = ... | this | +| E.cs:167:21:167:21 | access to parameter a | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:162:28:162:28 | a | a | E.cs:164:17:164:25 | ... == ... | this | +| E.cs:192:17:192:17 | access to parameter o | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:190:29:190:29 | o | o | E.cs:193:17:193:17 | access to parameter o | this | +| E.cs:201:13:201:13 | access to local variable o | Variable $@ may be null at this access because of $@ assignment. | E.cs:198:13:198:13 | o | o | E.cs:198:13:198:29 | String o = ... | this | +| E.cs:218:9:218:9 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:215:13:215:13 | x | x | E.cs:217:13:217:20 | ... = ... | this | +| E.cs:229:13:229:13 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:225:13:225:13 | x | x | E.cs:227:13:227:20 | ... = ... | this | +| E.cs:235:16:235:16 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:233:26:233:26 | i | i | E.cs:233:26:233:26 | i | this | +| E.cs:240:21:240:21 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:238:26:238:26 | i | i | E.cs:238:26:238:26 | i | this | +| E.cs:285:9:285:9 | access to local variable o | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:283:13:283:13 | o | o | E.cs:284:9:284:9 | access to local variable o | this | +| E.cs:302:9:302:9 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | E.cs:301:13:301:13 | s | s | E.cs:301:13:301:27 | String s = ... | this | +| E.cs:343:9:343:9 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:342:13:342:13 | x | x | E.cs:342:13:342:32 | String x = ... | this | +| E.cs:349:9:349:9 | access to local variable x | Variable $@ may be null at this access because of $@ assignment. | E.cs:348:17:348:17 | x | x | E.cs:348:17:348:36 | dynamic x = ... | this | +| E.cs:366:41:366:41 | access to parameter s | Variable $@ may be null at this access because the parameter has a null default value. | E.cs:366:28:366:28 | s | s | E.cs:366:32:366:35 | null | this | +| E.cs:375:20:375:20 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | E.cs:374:17:374:17 | s | s | E.cs:374:17:374:31 | String s = ... | this | +| E.cs:417:34:417:34 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:415:27:415:27 | i | i | E.cs:415:27:415:27 | i | this | +| E.cs:423:38:423:38 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:420:27:420:27 | i | i | E.cs:420:27:420:27 | i | this | +| E.cs:430:39:430:39 | access to parameter i | Variable $@ may be null at this access because it has a nullable type. | E.cs:427:27:427:27 | i | i | E.cs:427:27:427:27 | i | this | +| E.cs:444:13:444:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:23:437:31 | ... is ... | this | +| E.cs:459:13:459:13 | access to parameter s | Variable $@ may be null at this access as suggested by $@ null check. | E.cs:435:29:435:29 | s | s | E.cs:437:23:437:31 | ... is ... | this | +| GuardedString.cs:35:31:35:31 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | GuardedString.cs:7:16:7:16 | s | s | GuardedString.cs:7:16:7:32 | String s = ... | this | +| NullMaybeBad.cs:7:27:7:27 | access to parameter o | Variable $@ may be null at this access because of $@ null argument. | NullMaybeBad.cs:5:25:5:25 | o | o | NullMaybeBad.cs:13:17:13:20 | null | this | +| Params.cs:14:17:14:20 | access to parameter args | Variable $@ may be null at this access because of $@ null argument. | Params.cs:12:36:12:39 | args | args | Params.cs:20:12:20:15 | null | this | +| StringConcatenation.cs:16:17:16:17 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | StringConcatenation.cs:14:16:14:16 | s | s | StringConcatenation.cs:14:16:14:23 | String s = ... | this | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.cs b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.cs new file mode 100644 index 000000000000..48073a309fd7 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.cs @@ -0,0 +1,18 @@ +using System; +using System.Web; + +public class AddXFrameOptions : IHttpHandler +{ + + public void ProcessRequest(HttpContext ctx) + { + } + + public bool IsReusable + { + get + { + return true; + } + } +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.expected b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.expected new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.qlref b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.qlref new file mode 100644 index 000000000000..b8a963200e57 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/MissingXFrameOptions.qlref @@ -0,0 +1 @@ +Security Features/CWE-451/MissingXFrameOptions.ql diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/Web.config b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/Web.config new file mode 100644 index 000000000000..ce837c2b9815 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/Web.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/options b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/options new file mode 100644 index 000000000000..9d05f9bf06d4 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-451/MissingXFrameOptions/WebConfigAddedHeaderInLocation/options @@ -0,0 +1,3 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +semmle-extractor-options: ${testdir}/../../../../../resources/stubs/System.Web.cs diff --git a/csharp/ql/test/query-tests/standalone/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected b/csharp/ql/test/query-tests/standalone/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected index 25ed39bebb72..b00cfb3115ef 100644 --- a/csharp/ql/test/query-tests/standalone/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected +++ b/csharp/ql/test/query-tests/standalone/Bad Practices/Control-Flow/ConstantCondition/ConstantCondition.expected @@ -1,2 +1,2 @@ -| ConstantCondition.cs:15:13:15:26 | ... is ... | Condition always evaluates to 'false'. | -| ConstantCondition.cs:15:24:15:26 | access to type Int32 | Pattern never matches. | +| ConstantCondition.cs:15:13:15:26 | ... is ... | Condition always evaluates to 'false'. | ConstantCondition.cs:15:13:15:26 | ... is ... | dummy | +| ConstantCondition.cs:15:24:15:26 | access to type Int32 | Pattern never matches. | ConstantCondition.cs:15:24:15:26 | access to type Int32 | dummy | diff --git a/csharp/tools/tracing-config.lua b/csharp/tools/tracing-config.lua index a48a93c073c8..13ede12a237e 100644 --- a/csharp/tools/tracing-config.lua +++ b/csharp/tools/tracing-config.lua @@ -221,9 +221,9 @@ function RegisterExtractorPack(id) } local posixMatchers = { DotnetMatcherBuild, - CreatePatternMatcher({ '^mcs%.exe$', '^csc%.exe$' }, MatchCompilerName, + CreatePatternMatcher({ '^mcs%.exe$', '^csc%.exe$', '^csc$' }, MatchCompilerName, extractor, { - prepend = { '--compiler', '"${compiler}"' }, + prepend = { '--compiler', '${compiler}' }, order = ORDER_BEFORE }), MsBuildMatcher, diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-cpp.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-cpp.rst index e04cdac3deb3..2f2381f32ad5 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-cpp.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-cpp.rst @@ -314,7 +314,7 @@ Exercise 2: Write a query that finds all hard-coded strings used to create a ``h Exercise 3: Write a class that represents flow sources from ``getenv``. (`Answer <#exercise-3>`__) -Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``getenv`` to ``gethostbyname``. (`Answer <#exercise-4>`__) +Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``getenv`` to ``gethostbyname``. (`Answer <#exercise-4>`__ `Answer as a path query <#path-query-example>`__) Answers ------- @@ -411,6 +411,48 @@ Exercise 4 GetenvToGethostbynameFlow::flow(source, sink) select getenv, fc +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the answer to exercise 4 above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id getenv-to-gethostbyname + */ + + import cpp + import semmle.code.cpp.dataflow.new.DataFlow + + class GetenvSource extends DataFlow::Node { + GetenvSource() { this.asIndirectExpr(1).(FunctionCall).getTarget().hasGlobalName("getenv") } + } + + module GetenvToGethostbynameConfiguration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof GetenvSource } + + predicate isSink(DataFlow::Node sink) { + exists(FunctionCall fc | + sink.asIndirectExpr(1) = fc.getArgument(0) and + fc.getTarget().hasName("gethostbyname") + ) + } + } + + module GetenvToGethostbynameFlow = DataFlow::Global; + + import GetenvToGethostbynameFlow::PathGraph + + from GetenvToGethostbynameFlow::PathNode source, GetenvToGethostbynameFlow::PathNode sink + where GetenvToGethostbynameFlow::flowPath(source, sink) + select sink.getNode(), source, sink, "This file access uses data from $@.", + source, "user-controllable input." + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-csharp.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-csharp.rst index 7e60956a5a98..af196d314edd 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-csharp.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-csharp.rst @@ -287,7 +287,7 @@ Exercise 2: Find all hard-coded strings passed to ``System.Uri``, using global d Exercise 3: Define a class that represents flow sources from ``System.Environment.GetEnvironmentVariable``. (`Answer <#exercise-3>`__) -Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``System.Environment.GetEnvironmentVariable`` to ``System.Uri``. (`Answer <#exercise-4>`__) +Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``System.Environment.GetEnvironmentVariable`` to ``System.Uri``. (`Answer <#exercise-4>`__ `Answer as a path query <#path-query-example>`__) Extending library data flow --------------------------- @@ -537,6 +537,48 @@ This can be adapted from the ``SystemUriFlow`` class: } } +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the answer to exercise 4 above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id getenv-to-gethostbyname + */ + + import csharp + + class EnvironmentVariableFlowSource extends DataFlow::ExprNode { + EnvironmentVariableFlowSource() { + this.getExpr().(MethodCall).getTarget().hasQualifiedName("System.Environment.GetEnvironmentVariable") + } + } + + module EnvironmentToUriConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { + src instanceof EnvironmentVariableFlowSource + } + + predicate isSink(DataFlow::Node sink) { + exists(Call c | c.getTarget().(Constructor).getDeclaringType().hasQualifiedName("System.Uri") + and sink.asExpr()=c.getArgument(0)) + } + } + + module EnvironmentToUriFlow = DataFlow::Global; + + import EnvironmentToUriFlow::PathGraph + + from EnvironmentToUriFlow::PathNode src, EnvironmentToUriFlow::PathNode sink + where EnvironmentToUriFlow::flowPath(src, sink) + select src.getNode(), src, sink, "This environment variable constructs a 'System.Uri' $@.", sink, "here" + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-go.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-go.rst index 537a2308203f..3b71f28c0ce4 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-go.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-go.rst @@ -224,7 +224,7 @@ The resulting module has an identical signature to the one obtained from ``DataF Flow sources ~~~~~~~~~~~~ -The data flow library contains some predefined flow sources. The class ``RemoteFlowSource`` (defined in ``semmle.code.java.dataflow.FlowSources``) represents data flow sources that may be controlled by a remote user, which is useful for finding security problems. +The data flow library contains some predefined flow sources. The class ``RemoteFlowSource`` represents data flow sources that may be controlled by a remote user, which is useful for finding security problems. Examples ~~~~~~~~ @@ -252,7 +252,7 @@ Exercise 2: Write a query that finds all hard-coded strings used to create a ``u Exercise 3: Write a class that represents flow sources from ``os.Getenv(..)``. (`Answer <#exercise-3>`__) -Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``os.Getenv`` to ``url.URL``. (`Answer <#exercise-4>`__) +Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``os.Getenv`` to ``url.URL``. (`Answer <#exercise-4>`__ `Answer as a path query <#path-query-example>`__) Answers ------- @@ -312,7 +312,7 @@ Exercise 3 import go - class GetenvSource extends CallExpr { + class GetenvSource extends DataFlow::CallNode { GetenvSource() { exists(Function m | m = this.getTarget() | m.hasQualifiedName("os", "Getenv") @@ -327,7 +327,7 @@ Exercise 4 import go - class GetenvSource extends CallExpr { + class GetenvSource extends DataFlow::CallNode { GetenvSource() { exists(Function m | m = this.getTarget() | m.hasQualifiedName("os", "Getenv") @@ -350,7 +350,6 @@ Exercise 4 sink.asExpr() = call.getArgument(0) ) } - } } module GetenvToURLFlow = DataFlow::Global; @@ -359,6 +358,56 @@ Exercise 4 where GetenvToURLFlow::flow(src, sink) select src, "This environment variable constructs a URL $@.", sink, "here" +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the answer to exercise 4 above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id getenv-to-url + */ + + import go + + class GetenvSource extends DataFlow::CallNode { + GetenvSource() { + exists(Function m | m = this.getTarget() | + m.hasQualifiedName("os", "Getenv") + ) + } + } + + module GetenvToURLConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source instanceof GetenvSource + } + + predicate isSink(DataFlow::Node sink) { + exists(Function urlParse, CallExpr call | + ( + urlParse.hasQualifiedName("url", "Parse") or + urlParse.hasQualifiedName("url", "ParseRequestURI") + ) and + call.getTarget() = urlParse and + sink.asExpr() = call.getArgument(0) + ) + } + } + + module GetenvToURLFlow = DataFlow::Global; + + import GetenvToURLFlow::PathGraph + + from GetenvToURLFlow::PathNode src, GetenvToURLFlow::PathNode sink + where GetenvToURLFlow::flowPath(src, sink) + select src.getNode(), src, sink, "This environment variable constructs a URL $@.", sink, "here" + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst index bade378d3a07..6273c03e5d9b 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-java.rst @@ -262,7 +262,7 @@ Exercise 2: Write a query that finds all hard-coded strings used to create a ``j Exercise 3: Write a class that represents flow sources from ``java.lang.System.getenv(..)``. (`Answer <#exercise-3>`__) -Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``getenv`` to ``java.net.URL``. (`Answer <#exercise-4>`__) +Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from ``getenv`` to ``java.net.URL``. (`Answer <#exercise-4>`__ `Answer as a path query <#path-query-example>`__) Answers ------- @@ -361,6 +361,54 @@ Exercise 4 where GetenvToURLFlow::flow(src, sink) select src, "This environment variable constructs a URL $@.", sink, "here" +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the answer to exercise 4 above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id getenv-to-url + */ + + import java + import semmle.code.java.dataflow.DataFlow + + class GetenvSource extends DataFlow::ExprNode { + GetenvSource() { + exists(Method m | m = this.asExpr().(MethodCall).getMethod() | + m.hasName("getenv") and + m.getDeclaringType() instanceof TypeSystem + ) + } + } + + module GetenvToURLConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source instanceof GetenvSource + } + + predicate isSink(DataFlow::Node sink) { + exists(Call call | + sink.asExpr() = call.getArgument(0) and + call.getCallee().(Constructor).getDeclaringType().hasQualifiedName("java.net", "URL") + ) + } + } + + module GetenvToURLFlow = DataFlow::Global; + + import GetenvToURLFlow::PathGraph + + from GetenvToURLFlow::PathNode src, GetenvToURLFlow::PathNode sink + where GetenvToURLFlow::flowPath(src, sink) + select src.getNode(), src, sink, "This environment variable constructs a URL $@.", sink, "here" + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.rst index d6e6621e5789..a0e627060418 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.rst @@ -456,7 +456,7 @@ Exercise 3: Write a class which represents flow sources from the array elements Hint: array indices are properties with numeric names; you can use regular expression matching to check this. (`Answer <#exercise-3>`__) Exercise 4: Using the answers from 2 and 3, write a query which finds all global data flow paths from array elements of the result of a call to the ``tagName`` argument to the -``createElement`` function. (`Answer <#exercise-4>`__) +``createElement`` function. (`Answer <#exercise-4>`__ `Answer as a path query <#path-query-example>`__) Answers ------- @@ -541,6 +541,48 @@ Exercise 4 where HardCodedTagNameFlow::flow(source, sink) select source, sink +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the answer to exercise 4 above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id hard-coded-tag-name + */ + + import javascript + + class ArrayEntryCallResult extends DataFlow::Node { + ArrayEntryCallResult() { + exists(DataFlow::CallNode call, string index | + this = call.getAPropertyRead(index) and + index.regexpMatch("\\d+") + ) + } + } + + module HardCodedTagNameConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof ArrayEntryCallResult } + + predicate isSink(DataFlow::Node sink) { + sink = DataFlow::globalVarRef("document").getAMethodCall("createElement").getArgument(0) + } + } + + module HardCodedTagNameFlow = DataFlow::Global; + + import HardCodedTagNameFlow::PathGraph + + from HardCodedTagNameFlow::PathNode source, HardCodedTagNameFlow::PathNode sink + where HardCodedTagNameFlow::flowPath(source, sink) + select sink.getNode(), source, sink, "Hard-coded tag name $@.", source, "here" + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-python.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-python.rst index 4bce178d41f8..143c54e6fbd2 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-python.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-python.rst @@ -354,11 +354,50 @@ This data flow configuration tracks data flow from environment variables to open select fileOpen, "This call to 'os.open' uses data from $@.", environment, "call to 'os.getenv'" +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the network input example above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id file-system-access-from-remote-input + */ + + import python + import semmle.python.dataflow.new.DataFlow + import semmle.python.dataflow.new.TaintTracking + import semmle.python.dataflow.new.RemoteFlowSources + import semmle.python.Concepts + + module RemoteToFileConfiguration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source instanceof RemoteFlowSource + } + + predicate isSink(DataFlow::Node sink) { + sink = any(FileSystemAccess fa).getAPathArgument() + } + } + + module RemoteToFileFlow = TaintTracking::Global; + + import RemoteToFileFlow::PathGraph + + from RemoteToFileFlow::PathNode input, RemoteToFileFlow::PathNode fileAccess + where RemoteToFileFlow::flowPath(input, fileAccess) + select fileAccess.getNode(), input, fileAccess, "This file access uses data from $@.", + input, "user-controllable input." + +For more information, see "`Creating path queries `__". Further reading --------------- -- `Exploring data flow with path queries `__ in the GitHub documentation. +- `Creating path queries `__. .. include:: ../reusables/python-further-reading.rst diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-ruby.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-ruby.rst index 53d6dfa2d1cf..c0dd373f39be 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-ruby.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-ruby.rst @@ -372,6 +372,43 @@ The following global data-flow query finds calls to ``File.open`` where the file select fileOpen, "This call to 'File.open' uses data from $@.", environment, "an environment variable" +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the taint-tracking example above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id file-system-access-from-remote-input + */ + + import codeql.ruby.DataFlow + import codeql.ruby.TaintTracking + import codeql.ruby.Concepts + import codeql.ruby.dataflow.RemoteFlowSources + + module RemoteToFileConfiguration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + + predicate isSink(DataFlow::Node sink) { + sink = any(FileSystemAccess fa).getAPathArgument() + } + } + + module RemoteToFileFlow = TaintTracking::Global; + + import RemoteToFileFlow::PathGraph + + from RemoteToFileFlow::PathNode input, RemoteToFileFlow::PathNode fileAccess + where RemoteToFileFlow::flowPath(input, fileAccess) + select fileAccess.getNode(), input, fileAccess, "This file access uses data from $@.", + input, "user-controllable input." + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index 8aed9fc93266..7623e1f44656 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -231,6 +231,46 @@ The following global taint-tracking query finds places where a string literal is where ConstantPasswordFlow::flow(sourceNode, sinkNode) select sinkNode, "The value $@ is used as a constant password.", sourceNode, sourceNode.toString() +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the taint-tracking example above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id constant-password + */ + + import rust + import codeql.rust.dataflow.DataFlow + import codeql.rust.dataflow.TaintTracking + + module ConstantPasswordConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node.asExpr().getExpr() instanceof StringLiteralExpr } + + predicate isSink(DataFlow::Node node) { + // any argument going to a parameter called `password` + exists(Function f, CallExpr call, int index | + call.getArg(index) = node.asExpr().getExpr() and + call.getStaticTarget() = f and + f.getParam(index).getPat().(IdentPat).getName().getText() = "password" + ) + } + } + + module ConstantPasswordFlow = TaintTracking::Global; + + import ConstantPasswordFlow::PathGraph + + from ConstantPasswordFlow::PathNode sourceNode, ConstantPasswordFlow::PathNode sinkNode + where ConstantPasswordFlow::flowPath(sourceNode, sinkNode) + select sinkNode.getNode(), sourceNode, sinkNode, "The value $@ is used as a constant password.", sourceNode, sourceNode.toString() + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-swift.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-swift.rst index b41c82ca7efe..8bded333654a 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-swift.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-swift.rst @@ -278,6 +278,45 @@ The following global taint-tracking query finds places where a value from a remo where SqlInjectionFlow::flow(sourceNode, sinkNode) select sinkNode, "This query depends on a $@.", sourceNode, "user-provided value" +Path query example +~~~~~~~~~~~~~~~~~~ + +Here is the string literal example above, converted into a path query: + +.. code-block:: ql + + /** + * @kind path-problem + * @problem.severity warning + * @id sql-injection + */ + + import swift + import codeql.swift.dataflow.DataFlow + import codeql.swift.dataflow.TaintTracking + import codeql.swift.dataflow.FlowSources + + module SqlInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node instanceof FlowSource } + + predicate isSink(DataFlow::Node node) { + exists(CallExpr call | + call.getStaticTarget().(Method).hasQualifiedName("Connection", "execute(_:)") and + call.getArgument(0).getExpr() = node.asExpr() + ) + } + } + + module SqlInjectionFlow = TaintTracking::Global; + + import SqlInjectionFlow::PathGraph + + from SqlInjectionFlow::PathNode sourceNode, SqlInjectionFlow::PathNode sinkNode + where SqlInjectionFlow::flowPath(sourceNode, sinkNode) + select sinkNode.getNode(), sourceNode, sinkNode, "This query depends on a $@.", sourceNode, "user-provided value" + +For more information, see "`Creating path queries `__". + Further reading --------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.0.rst index 96826b256080..7b7cba95fd33 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.0.rst @@ -9,7 +9,7 @@ CodeQL 2.10.0 (2022-06-27) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.1.rst index b059afcfc9eb..17c0589c596b 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.1.rst @@ -9,7 +9,7 @@ CodeQL 2.10.1 (2022-07-19) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.2.rst index 37e094f74954..93794d214cef 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.2.rst @@ -9,7 +9,7 @@ CodeQL 2.10.2 (2022-08-02) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.3.rst index 75d3183d4dd4..f66721b9128c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.3.rst @@ -9,7 +9,7 @@ CodeQL 2.10.3 (2022-08-15) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.4.rst index c6d9c4c78052..7e15085db021 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.4.rst @@ -9,7 +9,7 @@ CodeQL 2.10.4 (2022-08-31) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.5.rst index 9c2373e358c9..72082e16d70b 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.10.5.rst @@ -9,7 +9,7 @@ CodeQL 2.10.5 (2022-09-13) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.0.rst index a9b32080979f..332d060068e6 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.0.rst @@ -9,7 +9,7 @@ CodeQL 2.11.0 (2022-09-28) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.1.rst index d7aff79a0782..3847694a0fe0 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.1.rst @@ -9,7 +9,7 @@ CodeQL 2.11.1 (2022-10-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.2.rst index 83083a9c3a99..9e0dd258b072 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.2.rst @@ -9,7 +9,7 @@ CodeQL 2.11.2 (2022-10-25) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.3.rst index 893d8b52ae19..fb3948cdfcef 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.3.rst @@ -9,7 +9,7 @@ CodeQL 2.11.3 (2022-11-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.4.rst index ab22a2455837..37b52835a7f3 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.4.rst @@ -9,7 +9,7 @@ CodeQL 2.11.4 (2022-11-24) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.5.rst index 1ccd87c81ad9..9a0f23f55c69 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.5.rst @@ -9,7 +9,7 @@ CodeQL 2.11.5 (2022-12-07) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.6.rst index cc4dabd21ac0..2455de41316e 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.11.6.rst @@ -9,7 +9,7 @@ CodeQL 2.11.6 (2022-12-13) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.0.rst index 0b7c47773d6e..0993702172f3 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.0.rst @@ -9,7 +9,7 @@ CodeQL 2.12.0 (2023-01-10) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.1.rst index c0dd4057e9e5..88d9a9d202fc 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.1.rst @@ -9,7 +9,7 @@ CodeQL 2.12.1 (2023-01-23) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.2.rst index 22df6d46a067..fc78c1bfb2b2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.2.rst @@ -9,7 +9,7 @@ CodeQL 2.12.2 (2023-02-07) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.3.rst index f32583017867..f954f4361501 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.3.rst @@ -9,7 +9,7 @@ CodeQL 2.12.3 (2023-02-23) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.4.rst index 8545a2f77ca3..9c84debe0a94 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.4.rst @@ -9,7 +9,7 @@ CodeQL 2.12.4 (2023-03-09) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.5.rst index 5a0c6ae4f929..a25613a96e6d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.5.rst @@ -9,7 +9,7 @@ CodeQL 2.12.5 (2023-03-21) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.6.rst index aa61cc37f8b6..cf542efebda2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.6.rst @@ -9,7 +9,7 @@ CodeQL 2.12.6 (2023-04-04) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.7.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.7.rst index f9c0b12d10f0..6fd4d8f416c8 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.7.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.12.7.rst @@ -9,7 +9,7 @@ CodeQL 2.12.7 (2023-04-18) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.0.rst index 046e0f548ca6..3d3bb5485983 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.0.rst @@ -9,7 +9,7 @@ CodeQL 2.13.0 (2023-04-20) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.1.rst index 3af28abf08b6..ba78f5fc2f46 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.1.rst @@ -9,7 +9,7 @@ CodeQL 2.13.1 (2023-05-03) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.3.rst index 1cff52445193..09c97c03ff68 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.3.rst @@ -9,7 +9,7 @@ CodeQL 2.13.3 (2023-05-31) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.4.rst index 6bc1dc9daecc..8443cea4738e 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.4.rst @@ -9,7 +9,7 @@ CodeQL 2.13.4 (2023-06-19) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.5.rst index f559a2d6154b..b0877954388d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.13.5.rst @@ -9,7 +9,7 @@ CodeQL 2.13.5 (2023-07-05) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.0.rst index 3583785a0825..9c2a459120a7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.0.rst @@ -9,7 +9,7 @@ CodeQL 2.14.0 (2023-07-13) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.1.rst index 736f48e5ddcb..bcdebcae4f7c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.1.rst @@ -9,7 +9,7 @@ CodeQL 2.14.1 (2023-07-27) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.2.rst index ccc388fe210c..82362f17567b 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.2.rst @@ -9,7 +9,7 @@ CodeQL 2.14.2 (2023-08-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.3.rst index 2707003615ba..fc6861d094c5 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.3.rst @@ -9,7 +9,7 @@ CodeQL 2.14.3 (2023-08-25) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.4.rst index 9ad1517025fb..7880af6540e3 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.4.rst @@ -9,7 +9,7 @@ CodeQL 2.14.4 (2023-09-12) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.5.rst index c56fced5e1d8..d3cc1ba634c7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.5.rst @@ -9,7 +9,7 @@ CodeQL 2.14.5 (2023-09-14) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.6.rst index a6e8643624c1..ef518ba829be 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.14.6.rst @@ -9,7 +9,7 @@ CodeQL 2.14.6 (2023-09-26) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.0.rst index 14635c0fb50b..320d322cf196 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.0.rst @@ -9,7 +9,7 @@ CodeQL 2.15.0 (2023-10-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.1.rst index b98fcd1cd3c2..d82569c71f7c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.1.rst @@ -9,7 +9,7 @@ CodeQL 2.15.1 (2023-10-19) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.2.rst index c542a4df350f..60baabb9e5a2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.2.rst @@ -9,7 +9,7 @@ CodeQL 2.15.2 (2023-11-13) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.3.rst index 1bcadd72b5a4..fc9e283ecfca 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.3.rst @@ -9,7 +9,7 @@ CodeQL 2.15.3 (2023-11-22) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.4.rst index f7cbcd802108..f72f1cb8c06c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.4.rst @@ -9,7 +9,7 @@ CodeQL 2.15.4 (2023-12-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.5.rst index 31977c615994..c674850e7cdc 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.15.5.rst @@ -9,7 +9,7 @@ CodeQL 2.15.5 (2023-12-20) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.0.rst index 127994f29994..c516ae0fb629 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.0.rst @@ -9,7 +9,7 @@ CodeQL 2.16.0 (2024-01-16) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst index cd328246d8ca..99a675dbe775 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.1.rst @@ -9,7 +9,7 @@ CodeQL 2.16.1 (2024-01-25) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.2.rst index db04b157756a..c7529d18cf44 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.2.rst @@ -9,7 +9,7 @@ CodeQL 2.16.2 (2024-02-12) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst index 016bf7583fb5..5071c80291c1 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.3.rst @@ -9,7 +9,7 @@ CodeQL 2.16.3 (2024-02-22) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst index a73ce5982fd7..f3200dfa5fa6 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.4.rst @@ -9,7 +9,7 @@ CodeQL 2.16.4 (2024-03-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.5.rst index cb602e126d1b..f416159c3eec 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.5.rst @@ -9,7 +9,7 @@ CodeQL 2.16.5 (2024-03-21) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.6.rst index dba880ceaaef..16c87249130d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.16.6.rst @@ -9,7 +9,7 @@ CodeQL 2.16.6 (2024-03-26) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.0.rst index 9551941ea389..51c181559201 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.0.rst @@ -9,7 +9,7 @@ CodeQL 2.17.0 (2024-04-04) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.1.rst index c162c3f95541..de95f2a7d8b2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.1.rst @@ -9,7 +9,7 @@ CodeQL 2.17.1 (2024-04-24) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.2.rst index 9fb2aee867b4..6f6fc6f24271 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.2.rst @@ -9,7 +9,7 @@ CodeQL 2.17.2 (2024-05-07) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.3.rst index 45286dd27236..345c66059a90 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.3.rst @@ -9,7 +9,7 @@ CodeQL 2.17.3 (2024-05-17) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.4.rst index e705d8fe17f9..9ae59714b905 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.4.rst @@ -9,7 +9,7 @@ CodeQL 2.17.4 (2024-06-03) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.5.rst index e86eb795b1ed..d32b5a327e7f 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.5.rst @@ -9,7 +9,7 @@ CodeQL 2.17.5 (2024-06-12) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.6.rst index 584d45889d53..74abb31897e8 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.6.rst @@ -9,7 +9,7 @@ CodeQL 2.17.6 (2024-06-27) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.0.rst index c299355c00e7..99764e480a57 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.0.rst @@ -9,7 +9,7 @@ CodeQL 2.18.0 (2024-07-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.1.rst index a13cd9cdc5da..5d4dd5179a14 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.1.rst @@ -9,7 +9,7 @@ CodeQL 2.18.1 (2024-07-25) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.2.rst index 3bc21179a89c..bc67ac410d4b 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.2.rst @@ -9,7 +9,7 @@ CodeQL 2.18.2 (2024-08-13) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.3.rst index 31ecd6e0ed7c..77792853900d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.3.rst @@ -9,7 +9,7 @@ CodeQL 2.18.3 (2024-08-28) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.4.rst index 14f7cb966478..185563147254 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.4.rst @@ -9,7 +9,7 @@ CodeQL 2.18.4 (2024-09-12) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.0.rst index 0184b8118176..ce5973268db6 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.0.rst @@ -9,7 +9,7 @@ CodeQL 2.19.0 (2024-09-18) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.1.rst index 352a229a4221..f2948d0db67c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.1.rst @@ -9,7 +9,7 @@ CodeQL 2.19.1 (2024-10-04) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.2.rst index b21bc2566a87..edc40712dc0a 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.2.rst @@ -9,7 +9,7 @@ CodeQL 2.19.2 (2024-10-21) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.3.rst index c078993aa3f1..183adc77e417 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.3.rst @@ -9,7 +9,7 @@ CodeQL 2.19.3 (2024-11-07) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst index 9235d63fe2cf..2135aa8f7598 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.19.4.rst @@ -9,7 +9,7 @@ CodeQL 2.19.4 (2024-12-02) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.0.rst index 70fed1e9cfda..1d1422d381cb 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.0.rst @@ -9,7 +9,7 @@ CodeQL 2.20.0 (2024-12-09) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.1.rst index 11f30e960864..5d3d2d99f9ea 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.1.rst @@ -9,7 +9,7 @@ CodeQL 2.20.1 (2025-01-09) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.2.rst index ed4d502ea2d8..c657bf0c48e4 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.2.rst @@ -9,7 +9,7 @@ CodeQL 2.20.2 (2025-01-22) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.3.rst index 053d11610a47..1fca15790f1d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.3.rst @@ -9,7 +9,7 @@ CodeQL 2.20.3 (2025-01-24) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst index c3012e020c78..673d4a55d591 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.4.rst @@ -9,7 +9,7 @@ CodeQL 2.20.4 (2025-02-06) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst index 855f25655ec6..d3264090af14 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.5.rst @@ -9,7 +9,7 @@ CodeQL 2.20.5 (2025-02-20) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst index 76c038bded29..841b637cc344 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.6.rst @@ -9,7 +9,7 @@ CodeQL 2.20.6 (2025-03-06) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.7.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.7.rst index fd6885b025e6..144382c97376 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.7.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.20.7.rst @@ -9,7 +9,7 @@ CodeQL 2.20.7 (2025-03-18) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst index b6396b2be4e2..a9a272088318 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.0.rst @@ -9,7 +9,7 @@ CodeQL 2.21.0 (2025-04-03) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst index 40587985d9d9..ada0a6102fcb 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.1.rst @@ -9,7 +9,7 @@ CodeQL 2.21.1 (2025-04-22) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst index 636cf2fe63d5..97d52abf744b 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.2.rst @@ -9,7 +9,7 @@ CodeQL 2.21.2 (2025-05-01) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst index d499f27dcb12..71a8e3a68240 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.3.rst @@ -9,7 +9,7 @@ CodeQL 2.21.3 (2025-05-15) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.4.rst index c21a9940b4b5..6fcbc0cd0ca7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.21.4.rst @@ -9,7 +9,7 @@ CodeQL 2.21.4 (2025-06-02) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.0.rst index d60b0e957694..4288b9c2e98a 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.0.rst @@ -9,7 +9,7 @@ CodeQL 2.22.0 (2025-06-11) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.1.rst index 0b051d5473fb..6aed611d5cf6 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.1.rst @@ -9,7 +9,7 @@ CodeQL 2.22.1 (2025-06-26) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.2.rst index 92c440a05afd..6164266e10ff 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.2.rst @@ -9,7 +9,7 @@ CodeQL 2.22.2 (2025-07-29) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.3.rst index 7a1d554855de..4f1d34ff2ddd 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.3.rst @@ -9,7 +9,7 @@ CodeQL 2.22.3 (2025-08-06) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.4.rst index 97dc83d41dab..1a592436a8fb 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.22.4.rst @@ -9,7 +9,7 @@ CodeQL 2.22.4 (2025-08-21) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- @@ -33,11 +33,6 @@ C/C++ * The :code:`cpp/short-global-name` query will no longer give alerts for instantiations of template variables, only for the template itself. * Fixed a false positive in :code:`cpp/overflow-buffer` when the type of the destination buffer is a reference to a class/struct type. -Golang -"""""" - -* Go 1.25 is now supported. - JavaScript/TypeScript """"""""""""""""""""" @@ -84,6 +79,11 @@ C/C++ * Improved dataflow through global variables in the new dataflow library (:code:`semmle.code.cpp.dataflow.new.DataFlow` and :code:`semmle.code.cpp.dataflow.new.TaintTracking`). Queries based on these libraries will produce more results on codebases with many global variables. * The global value numbering library (:code:`semmle.code.cpp.valuenumbering.GlobalValueNumbering` and :code:`semmle.code.cpp.ir.ValueNumbering`) has been improved so more expressions are assigned the same value number. +Golang +"""""" + +* Go 1.25 is now supported. + Java/Kotlin """"""""""" diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.0.rst index d87754d8391a..4091be0911e2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.0.rst @@ -9,7 +9,7 @@ CodeQL 2.23.0 (2025-09-04) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst index 1c4ac1996875..ff22a3f647cf 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.1.rst @@ -9,7 +9,7 @@ CodeQL 2.23.1 (2025-09-23) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.2.rst new file mode 100644 index 000000000000..246af4c3be17 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.2.rst @@ -0,0 +1,89 @@ +.. _codeql-cli-2.23.2: + +========================== +CodeQL 2.23.2 (2025-10-02) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.23.2 runs a total of 479 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). 1 security query has been added with this release. + +CodeQL CLI +---------- + +Bug Fixes +~~~~~~~~~ + +* The :code:`codeql generate query-help` command now prepends the query's name (taken from the :code:`.ql` file) as a level-one heading when processing markdown query help, for consistency with help generated from a :code:`.qhelp` file. + +New Features +~~~~~~~~~~~~ + +* CodeQL Go analysis now supports the "Git Source" type for `private package registries `__. This is in addition to the existing support for the "GOPROXY server" type. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* The modeling of null guards based on complex pattern expressions has been improved, which in turn improves the query :code:`cs/dereferenced-value-may-be-null` by removing false positives. +* The query :code:`cs/xmldoc/missing-summary` has been removed from the :code:`code-quality` suite, to align with other languages. + +Python +"""""" + +* The queries that check for unmatchable :code:`$` and :code:`^` in regular expressions did not account correctly for occurrences inside lookahead and lookbehind assertions. These occurrences are now handled correctly, eliminating this source of false positives. +* The :code:`py/inheritance/signature-mismatch` query has been modernized. It produces more precise results and more descriptive alert messages. +* The :code:`py/inheritance/incorrect-overriding-signature` query has been deprecated. Its results have been consolidated into the :code:`py/inheritance/signature-mismatch` query. + +New Queries +~~~~~~~~~~~ + +Rust +"""" + +* Added a new query, :code:`rust/non-https-url`, for detecting the use of non-HTTPS URLs that can be intercepted by third parties. + +Language Libraries +------------------ + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +JavaScript/TypeScript +""""""""""""""""""""" + +* Added modeling of :code:`GraphQLObjectType` resolver function parameters as remote sources. +* Support for the `graphql `__ library has been improved. Data flow from GraphQL query sources and variables to resolver function parameters is now tracked. +* Added support for the :code:`aws-sdk` and :code:`@aws-sdk/client-dynamodb`, :code:`@aws-sdk/client-athena`, :code:`@aws-sdk/client-s3`, and :code:`@aws-sdk/client-rds-data` packages. + +Python +"""""" + +* Data flow tracking through global variables now supports nested field access patterns such as :code:`global_var.obj.field`. This improves the precision of taint tracking analysis when data flows through complex global variable structures. + +New Features +~~~~~~~~~~~~ + +Ruby +"""" + +* Initial modeling for the Ruby Grape framework in :code:`Grape.qll` has been added to detect API endpoints, parameters, and headers within Grape API classes. + +Rust +"""" + +* The models-as-data format for sources now supports access paths of the form + :code:`Argument[i].Parameter[j]`. This denotes that the source passes tainted data to the :code:`j`\ th parameter of its :code:`i`\ th argument (which must be a function or a closure). diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.3.rst new file mode 100644 index 000000000000..8abbc879c3e4 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.3.rst @@ -0,0 +1,136 @@ +.. _codeql-cli-2.23.3: + +========================== +CodeQL 2.23.3 (2025-10-17) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.23.3 runs a total of 480 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). 1 security query has been added with this release. + +CodeQL CLI +---------- + +Breaking Changes +~~~~~~~~~~~~~~~~ + +* The :code:`--permissive` command line option has been removed from the C/C++ extractor, + and passing the option will make the extractor fail. The option was introduced to make the extractor accept the following invalid code, which is accepted by gcc with the :code:`-fpermissive` flag: + + .. code-block:: cpp + + void f(char*); + void g() { + const char* str = "string"; + f(str); + } + + The :code:`--permissive` option was removed, as under some circumstances it would break the extractor's ability to parse valid C++ code. When calling the extractor directly, + :code:`--permissive` should no longer be passed. The above code will fail to parse, and we recommend the code being made :code:`const`\ -correct. + +Bug Fixes +~~~~~~~~~ + +* Fixed a bug that made many :code:`codeql` subcommands fail with the message :code:`not in while, until, select, or repeat loop` on Linux or macOS systems where :code:`/bin/sh` is :code:`zsh`. + +Query Packs +----------- + +New Queries +~~~~~~~~~~~ + +Rust +"""" + +* Added a new query, :code:`rust/insecure-cookie`, to detect cookies created without the 'Secure' attribute. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +Python +"""""" + +* The Python extractor no longer crashes with an :code:`ImportError` when run using Python 3.14. + +Breaking Changes +~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The "Guards" libraries (:code:`semmle.code.cpp.controlflow.Guards` and :code:`semmle.code.cpp.controlflow.IRGuards`) have been totally rewritten to recognize many more guards. The API remains unchanged, but the :code:`GuardCondition` class now extends :code:`Element` instead of :code:`Expr`. + +Golang +"""""" + +* The member predicate :code:`writesField` on :code:`DataFlow::Write` now uses the post-update node for :code:`base` when that is the node being updated, which is in all cases except initializing a struct literal. A new member predicate :code:`writesFieldPreUpdate` has been added for cases where this behaviour is not desired. +* The member predicate :code:`writesElement` on :code:`DataFlow::Write` now uses the post-update node for :code:`base` when that is the node being updated, which is in all cases except initializing an array/slice/map literal. A new member predicate :code:`writesElementPreUpdate` has been added for cases where this behaviour is not desired. + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Golang +"""""" + +* The shape of the Go data-flow graph has changed. Previously for code like :code:`x := def(); use1(x); use2(x)`, there would be edges from the definition of :code:`x` to each use. Now there is an edge from the definition to the first use, then another from the first use to the second, and so on. This means that data-flow barriers work differently - flow will not reach any uses after the barrier node. Where this is not desired it may be necessary to add an additional flow step to propagate the flow forward. Additionally, when a variable may be subject to a side-effect, such as updating an array, passing a pointer to a function that might write through it or writing to a field of a struct, there is now a dedicated post-update node representing the variable after this side-effect has taken place. Previously post-update nodes were aliases for either a variable's definition, or were equal to the pre-update node. This led to backwards steps in the data-flow graph, which could cause false positives. For example, in the previous code there would be an edge from :code:`x` in :code:`use2(x)` back to the definition of :code:`x`. If we define our sources as any argument of :code:`use2` and our sinks as any argument of :code:`use1` then this would lead to a false positive path. Now there are distinct post-update nodes and no backwards edge to the definition, so we will not find this false positive path. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* The extraction of location information for parameters, fields, constructors, destructors and user operators has been optimized. Previously, location information was extracted multiple times for each bound generic. Now, only the location of the unbound generic declaration is extracted during the extraction phase, and the QL library explicitly reuses this location for all bound instances of the same generic. +* The extraction of location information for type parameters and tuples types has been optimized. Previously, location information was extracted multiple times for each type when it was declared across multiple files. Now, the extraction context is respected during the extraction phase, ensuring locations are only extracted within the appropriate context. This change should be transparent to end-users but may improve extraction performance in some cases. +* The extraction of location information for named types (classes, structs, etc.) has been optimized. Previously, location information was extracted multiple times for each type when it was declared across multiple files. Now, the extraction context is respected during the extraction phase, ensuring locations are only extracted within the appropriate context. This change should be transparent to end-users but may improve extraction performance in some cases. +* The extraction of the location for bound generic entities (methods, accessors, indexers, properties, and events) has been optimized. Previously, location information was extracted multiple times for each bound generic. Now, only the location of the unbound generic declaration is extracted during the extraction phase, and the QL library explicitly reuses this location for all bound instances of the same generic. + +Golang +"""""" + +* The query :code:`go/request-forgery` will no longer report alerts when the user input is of a simple type, like a number or a boolean. +* For the query :code:`go/unvalidated-url-redirection`, when untrusted data is assigned to the :code:`Host` field of a :code:`url.URL` struct, we consider the whole struct untrusted. We now also include the case when this happens during struct initialization, for example :code:`&url.URL{Host: untrustedData}`. +* :code:`go/unvalidated-url-redirection` and :code:`go/request-forgery` have a shared notion of a safe URL, which is known to not be malicious. Some URLs which were incorrectly considered safe are now correctly considered unsafe. This may lead to more alerts for those two queries. + +Java/Kotlin +""""""""""" + +* Fields of certain objects are considered tainted if the object is tainted. This holds, for example, for objects that occur directly as sources in the active threat model (for instance, a remote flow source). This has now been amended to also include array types, such that if an array like :code:`MyPojo[]` is a source, then fields of a tainted :code:`MyPojo` are now also considered tainted. + +Rust +"""" + +* Improve data flow through functions being passed as function pointers. + +Deprecated APIs +~~~~~~~~~~~~~~~ + +Golang +"""""" + +* The class :code:`SqlInjection::NumericOrBooleanSanitizer` has been deprecated. Use :code:`SimpleTypeSanitizer` from :code:`semmle.go.security.Sanitizers` instead. +* The member predicate :code:`writesComponent` on :code:`DataFlow::Write` has been deprecated. Instead, use :code:`writesFieldPreUpdate` and :code:`writesElementPreUpdate`, or their new versions :code:`writesField` and :code:`writesElement`. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* C/C++ :code:`build-mode: none` support is now generally available. + +Rust +"""" + +* Rust analysis is now Generally Available (GA). diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.1.rst index 58d7f61cba88..af61c689885d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.1.rst @@ -9,7 +9,7 @@ CodeQL 2.4.1 (2020-12-19) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.2.rst index 26cd430bd5f6..dcbd51e613a7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.2.rst @@ -9,7 +9,7 @@ CodeQL 2.4.2 (2021-01-22) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.3.rst index 7bd90f4e6218..6936a0a200e0 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.3.rst @@ -9,7 +9,7 @@ CodeQL 2.4.3 (2021-01-29) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.4.rst index 5b918dc90e85..8c0709928af6 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.4.rst @@ -9,7 +9,7 @@ CodeQL 2.4.4 (2021-02-12) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.5.rst index 9d4a5b329b12..9ef2182c9f56 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.5.rst @@ -9,7 +9,7 @@ CodeQL 2.4.5 (2021-03-08) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.6.rst index c5f1a57ea0df..ba551f3333d6 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.4.6.rst @@ -9,7 +9,7 @@ CodeQL 2.4.6 (2021-03-19) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.0.rst index 45b21c0d03c3..0e983e5cacb7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.0.rst @@ -9,7 +9,7 @@ CodeQL 2.5.0 (2021-03-26) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.1.rst index 7aa11611c713..8f259708fdcb 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.1.rst @@ -9,7 +9,7 @@ CodeQL 2.5.1 (2021-04-19) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.2.rst index dde165f5f3c1..09049680fae5 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.2.rst @@ -9,7 +9,7 @@ CodeQL 2.5.2 (2021-04-21) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.3.rst index 05717dacb041..518a699fbf37 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.3.rst @@ -9,7 +9,7 @@ CodeQL 2.5.3 (2021-04-30) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.4.rst index 85cb51020415..33a1ee1e802f 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.4.rst @@ -9,7 +9,7 @@ CodeQL 2.5.4 (2021-05-03) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.5.rst index 349d9c2ab4ca..02946e207fff 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.5.rst @@ -9,7 +9,7 @@ CodeQL 2.5.5 (2021-05-17) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.6.rst index 5d9b4fab3aa7..8f7444f3339e 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.6.rst @@ -9,7 +9,7 @@ CodeQL 2.5.6 (2021-06-22) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.7.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.7.rst index 31c0fcbc387b..a79252fdbe8f 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.7.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.7.rst @@ -9,7 +9,7 @@ CodeQL 2.5.7 (2021-07-02) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.8.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.8.rst index 753da44a257b..da7e793d1c6f 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.8.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.8.rst @@ -9,7 +9,7 @@ CodeQL 2.5.8 (2021-07-26) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.9.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.9.rst index e142a305026b..cc9120def9e3 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.9.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.5.9.rst @@ -9,7 +9,7 @@ CodeQL 2.5.9 (2021-08-09) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.0.rst index 494f9ed2d71f..6b7a81e5ac51 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.0.rst @@ -9,7 +9,7 @@ CodeQL 2.6.0 (2021-08-24) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.1.rst index 0ff5d4bd9f05..a9e030c403ac 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.1.rst @@ -9,7 +9,7 @@ CodeQL 2.6.1 (2021-09-07) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.2.rst index af7c4b7042b2..6a67b21f33c5 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.2.rst @@ -9,7 +9,7 @@ CodeQL 2.6.2 (2021-09-21) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.3.rst index e566b818a00c..d5c4e3e3f575 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.6.3.rst @@ -9,7 +9,7 @@ CodeQL 2.6.3 (2021-10-06) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.0.rst index dbbd36aea5e6..9ac5b7f3e92a 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.0.rst @@ -9,7 +9,7 @@ CodeQL 2.7.0 (2021-10-27) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.1.rst index f28740575f3d..09aead4a36e2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.1.rst @@ -9,7 +9,7 @@ CodeQL 2.7.1 (2021-11-15) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.2.rst index ecd7d53c3e01..c2c0d35179c9 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.2.rst @@ -9,7 +9,7 @@ CodeQL 2.7.2 (2021-11-22) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.3.rst index ffac75543cab..af2cac49d3f7 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.3.rst @@ -9,7 +9,7 @@ CodeQL 2.7.3 (2021-12-06) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.5.rst index d754aec07cbd..c3107ea0386e 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.5.rst @@ -9,7 +9,7 @@ CodeQL 2.7.5 (2022-01-17) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.6.rst index ef418261258f..6d9820c064d2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.6.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.7.6.rst @@ -9,7 +9,7 @@ CodeQL 2.7.6 (2022-01-24) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.0.rst index 03e16acf5d92..602465d13f60 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.0.rst @@ -9,7 +9,7 @@ CodeQL 2.8.0 (2022-02-04) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.1.rst index 184a488ca4a0..d25904b4028e 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.1.rst @@ -9,7 +9,7 @@ CodeQL 2.8.1 (2022-02-15) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.2.rst index 6c778328d9bf..1f7aba695559 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.2.rst @@ -9,7 +9,7 @@ CodeQL 2.8.2 (2022-02-28) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.3.rst index 0a5c75d06d66..9fcc89afbc91 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.3.rst @@ -9,7 +9,7 @@ CodeQL 2.8.3 (2022-03-14) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.4.rst index a9cb1ddde703..83766ab58bcf 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.4.rst @@ -9,7 +9,7 @@ CodeQL 2.8.4 (2022-03-29) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.5.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.5.rst index e9dcb93b10c5..9cd2e1b7a67c 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.5.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.8.5.rst @@ -9,7 +9,7 @@ CodeQL 2.8.5 (2022-04-07) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.0.rst index 3b2892453988..bf104cfb5d37 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.0.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.0.rst @@ -9,7 +9,7 @@ CodeQL 2.9.0 (2022-04-26) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.1.rst index 0a2cd31ba3b4..0e983c973d75 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.1.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.1.rst @@ -9,7 +9,7 @@ CodeQL 2.9.1 (2022-05-05) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.2.rst index ff7548ce259e..a3ae23941189 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.2.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.2.rst @@ -9,7 +9,7 @@ CodeQL 2.9.2 (2022-05-16) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.3.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.3.rst index fe8834674d50..c5f145658205 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.3.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.3.rst @@ -9,7 +9,7 @@ CodeQL 2.9.3 (2022-05-31) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.4.rst index 1cd748682c59..0bac2d62b6f1 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.4.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.9.4.rst @@ -9,7 +9,7 @@ CodeQL 2.9.4 (2022-06-20) :local: :backlinks: none -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. Security Coverage ----------------- diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index 41230fc72f1c..4b3e1f5bb982 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -4,13 +4,15 @@ CodeQL change logs ================== -This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. A list of queries for each suite and language `is available here `__. .. toctree:: :maxdepth: 1 + codeql-cli-2.23.3 + codeql-cli-2.23.2 codeql-cli-2.23.1 codeql-cli-2.23.0 codeql-cli-2.22.4 diff --git a/docs/codeql/codeql-overview/system-requirements.rst b/docs/codeql/codeql-overview/system-requirements.rst index cc46db60c35b..100b75445b2e 100644 --- a/docs/codeql/codeql-overview/system-requirements.rst +++ b/docs/codeql/codeql-overview/system-requirements.rst @@ -42,6 +42,10 @@ For Ruby extraction: - On Windows, the ``msvcp140.dll`` must be installed and available on the system. This can be installed by downloading the appropriate Microsoft Visual C++ Redistributable for Visual Studio. +For Rust extraction: + +- ``rustup`` and ``cargo`` must be installed. + For Java extraction: - There must be a ``java`` or ``java.exe`` executable available on the ``PATH``, and the ``JAVA_HOME`` environment variable must point to the corresponding JDK's home directory. diff --git a/docs/codeql/reusables/supported-frameworks.rst b/docs/codeql/reusables/supported-frameworks.rst index 8e00d32a7297..472e463cf79b 100644 --- a/docs/codeql/reusables/supported-frameworks.rst +++ b/docs/codeql/reusables/supported-frameworks.rst @@ -313,7 +313,6 @@ Rust built-in support Provided by the current versions of the CodeQL query pack ``codeql/rust-queries`` (`changelog `__, `source `__) and the CodeQL library pack ``codeql/rust-all`` (`changelog `__, `source `__). -All support is experimental. .. csv-table:: :header-rows: 1 @@ -337,6 +336,8 @@ All support is experimental. `log `__, Logging library `md5 `__, Utility library `memchr `__, Utility library + `mysql `__, Database + `mysql_async `__, Database `once_cell `__, Utility library `poem `__, Web framework `postgres `__, Database diff --git a/docs/codeql/writing-codeql-queries/creating-path-queries.rst b/docs/codeql/writing-codeql-queries/creating-path-queries.rst index 7e178f94b44f..2e439baa7f41 100644 --- a/docs/codeql/writing-codeql-queries/creating-path-queries.rst +++ b/docs/codeql/writing-codeql-queries/creating-path-queries.rst @@ -33,6 +33,7 @@ For more language-specific information on analyzing data flow, see: - ":ref:`Analyzing data flow in JavaScript/TypeScript `" - ":ref:`Analyzing data flow in Python `" - ":ref:`Analyzing data flow in Ruby `" +- ":ref:`Analyzing data flow in Rust `" - ":ref:`Analyzing data flow in Swift `" Path query examples @@ -59,7 +60,7 @@ You should use the following template: */ import - // For some languages (Java/C++/Python/Swift) you need to explicitly import the data flow library, such as + // For some languages (Java/C++/Python/Rust/Swift) you need to explicitly import the data flow library, such as // import semmle.code.java.dataflow.DataFlow or import codeql.swift.dataflow.DataFlow ... @@ -124,7 +125,7 @@ Declaring sources and sinks You must provide information about the ``source`` and ``sink`` in your path query. These are objects that correspond to the nodes of the paths that you are exploring. The name and the type of the ``source`` and the ``sink`` must be declared in the ``from`` statement of the query, and the types must be compatible with the nodes of the graph computed by the ``edges`` predicate. -If you are querying C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, or Ruby code (and you have used ``import MyFlow::PathGraph`` in your query), the definitions of the ``source`` and ``sink`` are accessed via the module resulting from the application of the ``Global<..>`` module in the data flow library. You should declare both of these objects in the ``from`` statement. +If you are querying C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, or Rust code (and you have used ``import MyFlow::PathGraph`` in your query), the definitions of the ``source`` and ``sink`` are accessed via the module resulting from the application of the ``Global<..>`` module in the data flow library. You should declare both of these objects in the ``from`` statement. For example: .. code-block:: ql @@ -145,7 +146,7 @@ The configuration module must be defined to include definitions of sources and s - ``isSource()`` defines where data may flow from. - ``isSink()`` defines where data may flow to. -For more information on using the configuration class in your analysis see the sections on global data flow in ":ref:`Analyzing data flow in C/C++ `," ":ref:`Analyzing data flow in C# `," and ":ref:`Analyzing data flow in Python `." +For more information on using the configuration class in your analysis see the sections on global data flow in ":ref:`Analyzing data flow in C/C++ `," ":ref:`Analyzing data flow in C# `," ":ref:`Analyzing data flow in Python `," and ":ref:`Analyzing data flow in Rust `." You can also create a configuration for different frameworks and environments by extending the ``Configuration`` class. For more information, see ":ref:`Types `" in the QL language reference. diff --git a/go/extractor/go.mod b/go/extractor/go.mod index 3369f28a9548..e8cdde572e17 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -9,8 +9,8 @@ toolchain go1.25.0 // when adding or removing dependencies, run // bazel mod tidy require ( - golang.org/x/mod v0.28.0 - golang.org/x/tools v0.37.0 + golang.org/x/mod v0.29.0 + golang.org/x/tools v0.38.0 ) require golang.org/x/sync v0.17.0 // indirect diff --git a/go/extractor/go.sum b/go/extractor/go.sum index 1fa55e6db7c0..9b34f09461c1 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -1,8 +1,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= -golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/tools v0.37.0 h1:DVSRzp7FwePZW356yEAChSdNcQo6Nsp+fex1SUW09lE= -golang.org/x/tools v0.37.0/go.mod h1:MBN5QPQtLMHVdvsbtarmTNukZDdgwdwlO5qGacAzF0w= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 331bb4c220e0..102463df544a 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.33 + +No user-facing changes. + ## 1.0.32 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.33.md b/go/ql/consistency-queries/change-notes/released/1.0.33.md new file mode 100644 index 000000000000..3a65838479f2 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.33.md @@ -0,0 +1,3 @@ +## 1.0.33 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index 7bc5c51ba7bf..914c722b5d98 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.32 +lastReleaseVersion: 1.0.33 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 70529ff4f909..e44457e45700 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.33-dev +version: 1.0.34-dev groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index adf218a99e44..71d6bfdc60f6 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,25 @@ +## 5.0.0 + +### Breaking Changes + +* The member predicate `writesField` on `DataFlow::Write` now uses the post-update node for `base` when that is the node being updated, which is in all cases except initializing a struct literal. A new member predicate `writesFieldPreUpdate` has been added for cases where this behaviour is not desired. +* The member predicate `writesElement` on `DataFlow::Write` now uses the post-update node for `base` when that is the node being updated, which is in all cases except initializing an array/slice/map literal. A new member predicate `writesElementPreUpdate` has been added for cases where this behaviour is not desired. + +### Deprecated APIs + +* The class `SqlInjection::NumericOrBooleanSanitizer` has been deprecated. Use `SimpleTypeSanitizer` from `semmle.go.security.Sanitizers` instead. +* The member predicate `writesComponent` on `DataFlow::Write` has been deprecated. Instead, use `writesFieldPreUpdate` and `writesElementPreUpdate`, or their new versions `writesField` and `writesElement`. + +### Major Analysis Improvements + +* The shape of the Go data-flow graph has changed. Previously for code like `x := def(); use1(x); use2(x)`, there would be edges from the definition of `x` to each use. Now there is an edge from the definition to the first use, then another from the first use to the second, and so on. This means that data-flow barriers work differently - flow will not reach any uses after the barrier node. Where this is not desired it may be necessary to add an additional flow step to propagate the flow forward. Additionally, when a variable may be subject to a side-effect, such as updating an array, passing a pointer to a function that might write through it or writing to a field of a struct, there is now a dedicated post-update node representing the variable after this side-effect has taken place. Previously post-update nodes were aliases for either a variable's definition, or were equal to the pre-update node. This led to backwards steps in the data-flow graph, which could cause false positives. For example, in the previous code there would be an edge from `x` in `use2(x)` back to the definition of `x`. If we define our sources as any argument of `use2` and our sinks as any argument of `use1` then this would lead to a false positive path. Now there are distinct post-update nodes and no backwards edge to the definition, so we will not find this false positive path. + +### Minor Analysis Improvements + +* The query `go/request-forgery` will no longer report alerts when the user input is of a simple type, like a number or a boolean. +* For the query `go/unvalidated-url-redirection`, when untrusted data is assigned to the `Host` field of a `url.URL` struct, we consider the whole struct untrusted. We now also include the case when this happens during struct initialization, for example `&url.URL{Host: untrustedData}`. +* `go/unvalidated-url-redirection` and `go/request-forgery` have a shared notion of a safe URL, which is known to not be malicious. Some URLs which were incorrectly considered safe are now correctly considered unsafe. This may lead to more alerts for those two queries. + ## 4.3.5 No user-facing changes. diff --git a/go/ql/lib/change-notes/2025-09-19-api-changes.md b/go/ql/lib/change-notes/2025-09-19-api-changes.md deleted file mode 100644 index 071ec2719b3f..000000000000 --- a/go/ql/lib/change-notes/2025-09-19-api-changes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: breaking ---- -* The member predicate `writesField` on `DataFlow::Write` now uses the post-update node for `base` when that is the node being updated, which is in all cases except initializing a struct literal. A new member predicate `writesFieldPreUpdate` has been added for cases where this behaviour is not desired. -* The member predicate `writesElement` on `DataFlow::Write` now uses the post-update node for `base` when that is the node being updated, which is in all cases except initializing an array/slice/map literal. A new member predicate `writesElementPreUpdate` has been added for cases where this behaviour is not desired. diff --git a/go/ql/lib/change-notes/2025-09-19-use-use-flow-proper-post-update-nodes.md b/go/ql/lib/change-notes/2025-09-19-use-use-flow-proper-post-update-nodes.md deleted file mode 100644 index 607f23dfb03e..000000000000 --- a/go/ql/lib/change-notes/2025-09-19-use-use-flow-proper-post-update-nodes.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* The shape of the Go data-flow graph has changed. Previously for code like `x := def(); use1(x); use2(x)`, there would be edges from the definition of `x` to each use. Now there is an edge from the definition to the first use, then another from the first use to the second, and so on. This means that data-flow barriers work differently - flow will not reach any uses after the barrier node. Where this is not desired it may be be necessary to add an additional flow step to propagate the flow forward. Additionally, when a variable may be subject to a side-effect, such as updating an array, passing a pointer to a function that might write through it or writing to a field of a struct, there is now a dedicated post-update node representing the variable after this side-effect has taken place. Previously post-update nodes were aliases for either a variable's definition, or were equal to the pre-update node. This led to backwards steps in the data-flow graph, which could cause false positives. For example, in the previous code there would be an edge from `x` in `use2(x)` back to the definition of `x`. If we define our sources as any argument of `use2` and our sinks as any argument of `use1` then this would lead to a false positive path. Now there are distinct post-update nodes and no backwards edge to the definition, so we will not find this false positive path. diff --git a/go/ql/lib/change-notes/2025-09-30-fewer-safe-urls.md b/go/ql/lib/change-notes/2025-09-30-fewer-safe-urls.md deleted file mode 100644 index 5eeee51c4a3c..000000000000 --- a/go/ql/lib/change-notes/2025-09-30-fewer-safe-urls.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* `go/unvalidated-url-redirection` and `go/request-forgery` have a shared notion of a safe URL, which is known to not be malicious. Some URLs which were incorrectly considered safe are now correctly considered unsafe. This may lead to more alerts for those two queries. diff --git a/go/ql/lib/change-notes/2025-10-02-unvalidated-url-redirection-struct-init-fix.md b/go/ql/lib/change-notes/2025-10-02-unvalidated-url-redirection-struct-init-fix.md deleted file mode 100644 index 9e5d5aa14a2f..000000000000 --- a/go/ql/lib/change-notes/2025-10-02-unvalidated-url-redirection-struct-init-fix.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* For the query `go/unvalidated-url-redirection`, when untrusted data is assigned to the `Host` field of a `url.URL` struct, we consider the whole struct untrusted. We now also include the case when this happens during struct initialization, for example `&url.URL{Host: untrustedData}`. diff --git a/go/ql/lib/change-notes/2025-10-02-writenode-writescomponent-deprecated.md b/go/ql/lib/change-notes/2025-10-02-writenode-writescomponent-deprecated.md deleted file mode 100644 index 834266e36b96..000000000000 --- a/go/ql/lib/change-notes/2025-10-02-writenode-writescomponent-deprecated.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The member predicate `writesComponent` on `DataFlow::Write` has been deprecated. Instead, use `writesFieldPreUpdate` and `writesElementPreUpdate`, or their new versions `writesField` and `writesElement`. diff --git a/go/ql/lib/change-notes/released/5.0.0.md b/go/ql/lib/change-notes/released/5.0.0.md new file mode 100644 index 000000000000..096e0b350bf6 --- /dev/null +++ b/go/ql/lib/change-notes/released/5.0.0.md @@ -0,0 +1,21 @@ +## 5.0.0 + +### Breaking Changes + +* The member predicate `writesField` on `DataFlow::Write` now uses the post-update node for `base` when that is the node being updated, which is in all cases except initializing a struct literal. A new member predicate `writesFieldPreUpdate` has been added for cases where this behaviour is not desired. +* The member predicate `writesElement` on `DataFlow::Write` now uses the post-update node for `base` when that is the node being updated, which is in all cases except initializing an array/slice/map literal. A new member predicate `writesElementPreUpdate` has been added for cases where this behaviour is not desired. + +### Deprecated APIs + +* The class `SqlInjection::NumericOrBooleanSanitizer` has been deprecated. Use `SimpleTypeSanitizer` from `semmle.go.security.Sanitizers` instead. +* The member predicate `writesComponent` on `DataFlow::Write` has been deprecated. Instead, use `writesFieldPreUpdate` and `writesElementPreUpdate`, or their new versions `writesField` and `writesElement`. + +### Major Analysis Improvements + +* The shape of the Go data-flow graph has changed. Previously for code like `x := def(); use1(x); use2(x)`, there would be edges from the definition of `x` to each use. Now there is an edge from the definition to the first use, then another from the first use to the second, and so on. This means that data-flow barriers work differently - flow will not reach any uses after the barrier node. Where this is not desired it may be necessary to add an additional flow step to propagate the flow forward. Additionally, when a variable may be subject to a side-effect, such as updating an array, passing a pointer to a function that might write through it or writing to a field of a struct, there is now a dedicated post-update node representing the variable after this side-effect has taken place. Previously post-update nodes were aliases for either a variable's definition, or were equal to the pre-update node. This led to backwards steps in the data-flow graph, which could cause false positives. For example, in the previous code there would be an edge from `x` in `use2(x)` back to the definition of `x`. If we define our sources as any argument of `use2` and our sinks as any argument of `use1` then this would lead to a false positive path. Now there are distinct post-update nodes and no backwards edge to the definition, so we will not find this false positive path. + +### Minor Analysis Improvements + +* The query `go/request-forgery` will no longer report alerts when the user input is of a simple type, like a number or a boolean. +* For the query `go/unvalidated-url-redirection`, when untrusted data is assigned to the `Host` field of a `url.URL` struct, we consider the whole struct untrusted. We now also include the case when this happens during struct initialization, for example `&url.URL{Host: untrustedData}`. +* `go/unvalidated-url-redirection` and `go/request-forgery` have a shared notion of a safe URL, which is known to not be malicious. Some URLs which were incorrectly considered safe are now correctly considered unsafe. This may lead to more alerts for those two queries. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index d6a085129424..c9e54136ca5c 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.3.5 +lastReleaseVersion: 5.0.0 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 20ace6482e44..bf2586d9089e 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 4.3.6-dev +version: 5.0.1-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll index 1298785b726c..82f9df4b5064 100644 --- a/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll +++ b/go/ql/lib/semmle/go/security/RequestForgeryCustomizations.qll @@ -9,6 +9,7 @@ import semmle.go.dataflow.barrierguardutil.RedirectCheckBarrierGuard import semmle.go.dataflow.barrierguardutil.RegexpCheck import semmle.go.dataflow.barrierguardutil.UrlCheck import semmle.go.dataflow.ExternalFlow +private import semmle.go.security.Sanitizers /** Provides classes and predicates for the request forgery query. */ module RequestForgery { @@ -114,6 +115,11 @@ module RequestForgery { * considered a barrier guard for `url`. */ class UrlCheckAsBarrierGuard extends UrlCheckBarrier, Sanitizer { } + + /** + * A simple-typed node, considered a sanitizer for request forgery. + */ + private class DefaultSanitizer extends Sanitizer instanceof SimpleTypeSanitizer { } } /** A sink for request forgery, considered as a sink for safe URL flow. */ diff --git a/go/ql/lib/semmle/go/security/Sanitizers.qll b/go/ql/lib/semmle/go/security/Sanitizers.qll new file mode 100644 index 000000000000..4391e12c25a0 --- /dev/null +++ b/go/ql/lib/semmle/go/security/Sanitizers.qll @@ -0,0 +1,16 @@ +/** + * Classes to represent sanitizers commonly used in dataflow and taint tracking + * configurations. + */ + +import go + +/** + * A node whose type is a simple type unlikely to carry taint, such as a + * numeric or boolean type. + */ +class SimpleTypeSanitizer extends DataFlow::Node { + SimpleTypeSanitizer() { + this.getType() instanceof NumericType or this.getType() instanceof BoolType + } +} diff --git a/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll b/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll index 0b2f96a92838..f26168ad1d77 100644 --- a/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll +++ b/go/ql/lib/semmle/go/security/SqlInjectionCustomizations.qll @@ -4,6 +4,7 @@ */ import go +private import semmle.go.security.Sanitizers /** * Provides extension points for customizing the taint tracking configuration for reasoning about @@ -39,12 +40,11 @@ module SqlInjection { /** A NoSql query, considered as a taint sink for SQL injection. */ class NoSqlQueryAsSink extends Sink instanceof NoSql::Query { } + /** DEPRECATED: Use `SimpleTypeSanitizer` from semmle.go.security.Sanitizers instead. */ + deprecated class NumericOrBooleanSanitizer = SimpleTypeSanitizer; + /** * A numeric- or boolean-typed node, considered a sanitizer for sql injection. */ - class NumericOrBooleanSanitizer extends Sanitizer { - NumericOrBooleanSanitizer() { - this.getType() instanceof NumericType or this.getType() instanceof BoolType - } - } + private class DefaultSanitizer extends Sanitizer instanceof SimpleTypeSanitizer { } } diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 65d6436fce3e..eb370a8cdddc 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.7 + +No user-facing changes. + ## 1.4.6 No user-facing changes. diff --git a/go/ql/src/change-notes/released/1.4.7.md b/go/ql/src/change-notes/released/1.4.7.md new file mode 100644 index 000000000000..4f064ad746f9 --- /dev/null +++ b/go/ql/src/change-notes/released/1.4.7.md @@ -0,0 +1,3 @@ +## 1.4.7 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 3b00bbce928c..163362bd6321 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.6 +lastReleaseVersion: 1.4.7 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index c85a94a90f58..3133d392d892 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.4.7-dev +version: 1.4.8-dev groups: - go - queries diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index 129613a3f1ab..15b0e179e983 100644 --- a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -1,18 +1,18 @@ #select | RequestForgery.go:11:15:11:66 | call to Get | RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | The $@ of this request depends on a $@. | RequestForgery.go:11:24:11:65 | ...+... | URL | RequestForgery.go:8:12:8:34 | call to FormValue | user-provided value | -| tst.go:18:2:18:18 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:18:11:18:17 | tainted | The $@ of this request depends on a $@. | tst.go:18:11:18:17 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:20:2:20:19 | call to Head | tst.go:10:13:10:35 | call to FormValue | tst.go:20:12:20:18 | tainted | The $@ of this request depends on a $@. | tst.go:20:12:20:18 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:22:2:22:38 | call to Post | tst.go:10:13:10:35 | call to FormValue | tst.go:22:12:22:18 | tainted | The $@ of this request depends on a $@. | tst.go:22:12:22:18 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:24:2:24:28 | call to PostForm | tst.go:10:13:10:35 | call to FormValue | tst.go:24:16:24:22 | tainted | The $@ of this request depends on a $@. | tst.go:24:16:24:22 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:28:2:28:15 | call to Do | tst.go:10:13:10:35 | call to FormValue | tst.go:27:35:27:41 | tainted | The $@ of this request depends on a $@. | tst.go:27:35:27:41 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:31:2:31:15 | call to Do | tst.go:10:13:10:35 | call to FormValue | tst.go:30:68:30:74 | tainted | The $@ of this request depends on a $@. | tst.go:30:68:30:74 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:33:2:33:20 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:33:13:33:19 | tainted | The $@ of this request depends on a $@. | tst.go:33:13:33:19 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:34:2:34:21 | call to Head | tst.go:10:13:10:35 | call to FormValue | tst.go:34:14:34:20 | tainted | The $@ of this request depends on a $@. | tst.go:34:14:34:20 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:35:2:35:40 | call to Post | tst.go:10:13:10:35 | call to FormValue | tst.go:35:14:35:20 | tainted | The $@ of this request depends on a $@. | tst.go:35:14:35:20 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:36:2:36:30 | call to PostForm | tst.go:10:13:10:35 | call to FormValue | tst.go:36:18:36:24 | tainted | The $@ of this request depends on a $@. | tst.go:36:18:36:24 | tainted | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:38:2:38:30 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:38:11:38:29 | ...+... | The $@ of this request depends on a $@. | tst.go:38:11:38:29 | ...+... | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:40:2:40:41 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:40:11:40:40 | ...+... | The $@ of this request depends on a $@. | tst.go:40:11:40:40 | ...+... | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | -| tst.go:48:2:48:21 | call to Get | tst.go:10:13:10:35 | call to FormValue | tst.go:48:11:48:20 | call to String | The $@ of this request depends on a $@. | tst.go:48:11:48:20 | call to String | URL | tst.go:10:13:10:35 | call to FormValue | user-provided value | +| tst.go:19:2:19:18 | call to Get | tst.go:11:13:11:35 | call to FormValue | tst.go:19:11:19:17 | tainted | The $@ of this request depends on a $@. | tst.go:19:11:19:17 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:21:2:21:19 | call to Head | tst.go:11:13:11:35 | call to FormValue | tst.go:21:12:21:18 | tainted | The $@ of this request depends on a $@. | tst.go:21:12:21:18 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:23:2:23:38 | call to Post | tst.go:11:13:11:35 | call to FormValue | tst.go:23:12:23:18 | tainted | The $@ of this request depends on a $@. | tst.go:23:12:23:18 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:25:2:25:28 | call to PostForm | tst.go:11:13:11:35 | call to FormValue | tst.go:25:16:25:22 | tainted | The $@ of this request depends on a $@. | tst.go:25:16:25:22 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:29:2:29:15 | call to Do | tst.go:11:13:11:35 | call to FormValue | tst.go:28:35:28:41 | tainted | The $@ of this request depends on a $@. | tst.go:28:35:28:41 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:32:2:32:15 | call to Do | tst.go:11:13:11:35 | call to FormValue | tst.go:31:68:31:74 | tainted | The $@ of this request depends on a $@. | tst.go:31:68:31:74 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:34:2:34:20 | call to Get | tst.go:11:13:11:35 | call to FormValue | tst.go:34:13:34:19 | tainted | The $@ of this request depends on a $@. | tst.go:34:13:34:19 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:35:2:35:21 | call to Head | tst.go:11:13:11:35 | call to FormValue | tst.go:35:14:35:20 | tainted | The $@ of this request depends on a $@. | tst.go:35:14:35:20 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:36:2:36:40 | call to Post | tst.go:11:13:11:35 | call to FormValue | tst.go:36:14:36:20 | tainted | The $@ of this request depends on a $@. | tst.go:36:14:36:20 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:37:2:37:30 | call to PostForm | tst.go:11:13:11:35 | call to FormValue | tst.go:37:18:37:24 | tainted | The $@ of this request depends on a $@. | tst.go:37:18:37:24 | tainted | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:39:2:39:30 | call to Get | tst.go:11:13:11:35 | call to FormValue | tst.go:39:11:39:29 | ...+... | The $@ of this request depends on a $@. | tst.go:39:11:39:29 | ...+... | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:41:2:41:41 | call to Get | tst.go:11:13:11:35 | call to FormValue | tst.go:41:11:41:40 | ...+... | The $@ of this request depends on a $@. | tst.go:41:11:41:40 | ...+... | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | +| tst.go:49:2:49:21 | call to Get | tst.go:11:13:11:35 | call to FormValue | tst.go:49:11:49:20 | call to String | The $@ of this request depends on a $@. | tst.go:49:11:49:20 | call to String | URL | tst.go:11:13:11:35 | call to FormValue | user-provided value | | websocket.go:65:12:65:53 | call to Dial | websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:65:27:65:40 | untrustedInput | WebSocket URL | websocket.go:60:21:60:31 | call to Referer | user-provided value | | websocket.go:79:13:79:40 | call to DialConfig | websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:78:36:78:49 | untrustedInput | WebSocket URL | websocket.go:74:21:74:31 | call to Referer | user-provided value | | websocket.go:91:3:91:50 | call to Dial | websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:91:31:91:44 | untrustedInput | WebSocket URL | websocket.go:88:21:88:31 | call to Referer | user-provided value | @@ -24,24 +24,24 @@ | websocket.go:204:7:204:29 | call to New | websocket.go:202:21:202:31 | call to Referer | websocket.go:204:15:204:28 | untrustedInput | The $@ of this request depends on a $@. | websocket.go:204:15:204:28 | untrustedInput | WebSocket URL | websocket.go:202:21:202:31 | call to Referer | user-provided value | edges | RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:18:11:18:17 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:20:12:20:18 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:22:12:22:18 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:24:16:24:22 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:27:35:27:41 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:30:68:30:74 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:33:13:33:19 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:34:14:34:20 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:35:14:35:20 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:36:18:36:24 | tainted | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:38:11:38:29 | ...+... | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:40:11:40:40 | ...+... | provenance | Src:MaD:1 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:47:11:47:18 | tainted2 | provenance | Src:MaD:1 | -| tst.go:47:2:47:2 | implicit dereference [postupdate] | tst.go:47:2:47:2 | u [postupdate] | provenance | | -| tst.go:47:2:47:2 | u [postupdate] | tst.go:48:11:48:11 | u | provenance | | -| tst.go:47:11:47:18 | tainted2 | tst.go:47:2:47:2 | implicit dereference [postupdate] | provenance | Config | -| tst.go:47:11:47:18 | tainted2 | tst.go:47:2:47:2 | u [postupdate] | provenance | Config | -| tst.go:48:11:48:11 | u | tst.go:48:11:48:20 | call to String | provenance | MaD:3 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:19:11:19:17 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:21:12:21:18 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:23:12:23:18 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:25:16:25:22 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:28:35:28:41 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:31:68:31:74 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:34:13:34:19 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:35:14:35:20 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:36:14:36:20 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:37:18:37:24 | tainted | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:39:11:39:29 | ...+... | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:41:11:41:40 | ...+... | provenance | Src:MaD:1 | +| tst.go:11:13:11:35 | call to FormValue | tst.go:48:11:48:18 | tainted2 | provenance | Src:MaD:1 | +| tst.go:48:2:48:2 | implicit dereference [postupdate] | tst.go:48:2:48:2 | u [postupdate] | provenance | | +| tst.go:48:2:48:2 | u [postupdate] | tst.go:49:11:49:11 | u | provenance | | +| tst.go:48:11:48:18 | tainted2 | tst.go:48:2:48:2 | implicit dereference [postupdate] | provenance | Config | +| tst.go:48:11:48:18 | tainted2 | tst.go:48:2:48:2 | u [postupdate] | provenance | Config | +| tst.go:49:11:49:11 | u | tst.go:49:11:49:20 | call to String | provenance | MaD:3 | | websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | provenance | Src:MaD:2 | | websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | provenance | Src:MaD:2 | | websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | provenance | Src:MaD:2 | @@ -58,24 +58,24 @@ models nodes | RequestForgery.go:8:12:8:34 | call to FormValue | semmle.label | call to FormValue | | RequestForgery.go:11:24:11:65 | ...+... | semmle.label | ...+... | -| tst.go:10:13:10:35 | call to FormValue | semmle.label | call to FormValue | -| tst.go:18:11:18:17 | tainted | semmle.label | tainted | -| tst.go:20:12:20:18 | tainted | semmle.label | tainted | -| tst.go:22:12:22:18 | tainted | semmle.label | tainted | -| tst.go:24:16:24:22 | tainted | semmle.label | tainted | -| tst.go:27:35:27:41 | tainted | semmle.label | tainted | -| tst.go:30:68:30:74 | tainted | semmle.label | tainted | -| tst.go:33:13:33:19 | tainted | semmle.label | tainted | -| tst.go:34:14:34:20 | tainted | semmle.label | tainted | +| tst.go:11:13:11:35 | call to FormValue | semmle.label | call to FormValue | +| tst.go:19:11:19:17 | tainted | semmle.label | tainted | +| tst.go:21:12:21:18 | tainted | semmle.label | tainted | +| tst.go:23:12:23:18 | tainted | semmle.label | tainted | +| tst.go:25:16:25:22 | tainted | semmle.label | tainted | +| tst.go:28:35:28:41 | tainted | semmle.label | tainted | +| tst.go:31:68:31:74 | tainted | semmle.label | tainted | +| tst.go:34:13:34:19 | tainted | semmle.label | tainted | | tst.go:35:14:35:20 | tainted | semmle.label | tainted | -| tst.go:36:18:36:24 | tainted | semmle.label | tainted | -| tst.go:38:11:38:29 | ...+... | semmle.label | ...+... | -| tst.go:40:11:40:40 | ...+... | semmle.label | ...+... | -| tst.go:47:2:47:2 | implicit dereference [postupdate] | semmle.label | implicit dereference [postupdate] | -| tst.go:47:2:47:2 | u [postupdate] | semmle.label | u [postupdate] | -| tst.go:47:11:47:18 | tainted2 | semmle.label | tainted2 | -| tst.go:48:11:48:11 | u | semmle.label | u | -| tst.go:48:11:48:20 | call to String | semmle.label | call to String | +| tst.go:36:14:36:20 | tainted | semmle.label | tainted | +| tst.go:37:18:37:24 | tainted | semmle.label | tainted | +| tst.go:39:11:39:29 | ...+... | semmle.label | ...+... | +| tst.go:41:11:41:40 | ...+... | semmle.label | ...+... | +| tst.go:48:2:48:2 | implicit dereference [postupdate] | semmle.label | implicit dereference [postupdate] | +| tst.go:48:2:48:2 | u [postupdate] | semmle.label | u [postupdate] | +| tst.go:48:11:48:18 | tainted2 | semmle.label | tainted2 | +| tst.go:49:11:49:11 | u | semmle.label | u | +| tst.go:49:11:49:20 | call to String | semmle.label | call to String | | websocket.go:60:21:60:31 | call to Referer | semmle.label | call to Referer | | websocket.go:65:27:65:40 | untrustedInput | semmle.label | untrustedInput | | websocket.go:74:21:74:31 | call to Referer | semmle.label | call to Referer | diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.yml b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.yml new file mode 100644 index 000000000000..1fc92a07144b --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/go-all + extensible: sourceModel + data: + - ["main", "", False, "intSource", "", "", "ReturnValue", "remote", "manual"] diff --git a/go/ql/test/query-tests/Security/CWE-918/tst.go b/go/ql/test/query-tests/Security/CWE-918/tst.go index 02f65507abd5..e237f5f30e75 100644 --- a/go/ql/test/query-tests/Security/CWE-918/tst.go +++ b/go/ql/test/query-tests/Security/CWE-918/tst.go @@ -2,6 +2,7 @@ package main import ( "context" + "fmt" "net/http" "net/url" ) @@ -46,8 +47,16 @@ func handler2(w http.ResponseWriter, req *http.Request) { u, _ := url.Parse("http://example.com/relative-path") u.Host = tainted2 http.Get(u.String()) // $ Alert + + // Simple types are considered sanitized. + url := fmt.Sprintf("%s/%d", "some-url", intSource()) + http.Get("http://" + url) } func main() { } + +func intSource() int64 { + return 0 +} diff --git a/java/ql/integration-tests/java/buildless-dependency-different-repository/test.py b/java/ql/integration-tests/java/buildless-dependency-different-repository/test.py index 8a5efabf941a..a74fd05be8ff 100644 --- a/java/ql/integration-tests/java/buildless-dependency-different-repository/test.py +++ b/java/ql/integration-tests/java/buildless-dependency-different-repository/test.py @@ -1,12 +1,29 @@ import subprocess import logging +import time +import socket + + +def wait_for_port(port, process, timeout=100): + start = time.time() + while time.time() - start < timeout: + # Check if process died + if process.poll() is not None: + raise RuntimeError(f"Server process exited with code {process.returncode}") + try: + with socket.create_connection(("localhost", port), timeout=1): + return True + except (socket.timeout, ConnectionRefusedError, OSError): + time.sleep(0.2) + raise RuntimeError(f"Port {port} not ready within {timeout}s") def test(codeql, java): - # Each of these serves the "repo" and "repo2" directories on http://localhost:924[89] - repo_server_process = subprocess.Popen(["python3", "-m", "http.server", "9428", "-b", "localhost"], cwd="repo") - repo_server_process2 = subprocess.Popen(["python3", "-m", "http.server", "9429", "-b", "localhost"], cwd="repo2") + repo_server_process = subprocess.Popen(["python3", "-m", "http.server", "9428", "-b", "localhost"], cwd="repo", stderr=subprocess.PIPE, stdout=subprocess.PIPE) + repo_server_process2 = subprocess.Popen(["python3", "-m", "http.server", "9429", "-b", "localhost"], cwd="repo2", stderr=subprocess.PIPE, stdout=subprocess.PIPE) try: + wait_for_port(9428, repo_server_process) + wait_for_port(9429, repo_server_process2) codeql.database.create( extractor_option="buildless=true", _env={"CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS_CLASSPATH_FROM_BUILD_FILES": "true"}, diff --git a/java/ql/integration-tests/java/maven-wrapper-missing-properties/mvnw b/java/ql/integration-tests/java/maven-wrapper-missing-properties/mvnw new file mode 100755 index 000000000000..b7f064624f89 --- /dev/null +++ b/java/ql/integration-tests/java/maven-wrapper-missing-properties/mvnw @@ -0,0 +1,287 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.1.1 +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME + else + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + printf '%s' "$(cd "$basedir"; pwd)" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=$(find_maven_basedir "$(dirname $0)") +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $wrapperUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + QUIET="--quiet" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" + else + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + elif command -v curl > /dev/null; then + QUIET="--silent" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L + else + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaSource=`cygpath --path --windows "$javaSource"` + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/java/ql/integration-tests/java/maven-wrapper-missing-properties/mvnw.cmd b/java/ql/integration-tests/java/maven-wrapper-missing-properties/mvnw.cmd new file mode 100644 index 000000000000..474c9d6b74cd --- /dev/null +++ b/java/ql/integration-tests/java/maven-wrapper-missing-properties/mvnw.cmd @@ -0,0 +1,187 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.1.1 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/java/ql/integration-tests/java/maven-wrapper-missing-properties/pom.xml b/java/ql/integration-tests/java/maven-wrapper-missing-properties/pom.xml new file mode 100644 index 000000000000..17dfd04484fd --- /dev/null +++ b/java/ql/integration-tests/java/maven-wrapper-missing-properties/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.example + maven-wrapper-missing-properties-test + 1.0-SNAPSHOT + jar + + + 11 + 11 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + + diff --git a/java/ql/integration-tests/java/maven-wrapper-missing-properties/source_archive.expected b/java/ql/integration-tests/java/maven-wrapper-missing-properties/source_archive.expected new file mode 100644 index 000000000000..6ea990c4d1b2 --- /dev/null +++ b/java/ql/integration-tests/java/maven-wrapper-missing-properties/source_archive.expected @@ -0,0 +1,4 @@ +.mvn/wrapper/maven-wrapper.properties +pom.xml +src/main/java/com/example/Hello.java +target/maven-archiver/pom.properties diff --git a/java/ql/integration-tests/java/maven-wrapper-missing-properties/src/main/java/com/example/Hello.java b/java/ql/integration-tests/java/maven-wrapper-missing-properties/src/main/java/com/example/Hello.java new file mode 100644 index 000000000000..0d2931004a02 --- /dev/null +++ b/java/ql/integration-tests/java/maven-wrapper-missing-properties/src/main/java/com/example/Hello.java @@ -0,0 +1,7 @@ +package com.example; + +public class Hello { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} diff --git a/java/ql/integration-tests/java/maven-wrapper-missing-properties/test.py b/java/ql/integration-tests/java/maven-wrapper-missing-properties/test.py new file mode 100644 index 000000000000..ef93712d8790 --- /dev/null +++ b/java/ql/integration-tests/java/maven-wrapper-missing-properties/test.py @@ -0,0 +1,2 @@ +def test(codeql, java): + codeql.database.create(build_mode="autobuild") diff --git a/java/ql/integration-tests/java/query-suite/java-code-scanning.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-scanning.qls.expected index afa6cebba311..dd67b7df413b 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-scanning.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-scanning.qls.expected @@ -21,6 +21,7 @@ ql/java/ql/src/Security/CWE/CWE-094/JexlInjection.ql ql/java/ql/src/Security/CWE/CWE-094/MvelInjection.ql ql/java/ql/src/Security/CWE/CWE-094/SpelInjection.ql ql/java/ql/src/Security/CWE/CWE-094/TemplateInjection.ql +ql/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql ql/java/ql/src/Security/CWE/CWE-1104/MavenPomDependsOnBintray.ql ql/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql ql/java/ql/src/Security/CWE/CWE-113/ResponseSplitting.ql diff --git a/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected index f5470c463c30..7e4401bcce9d 100644 --- a/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-security-and-quality.qls.expected @@ -127,6 +127,7 @@ ql/java/ql/src/Security/CWE/CWE-094/JexlInjection.ql ql/java/ql/src/Security/CWE/CWE-094/MvelInjection.ql ql/java/ql/src/Security/CWE/CWE-094/SpelInjection.ql ql/java/ql/src/Security/CWE/CWE-094/TemplateInjection.ql +ql/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql ql/java/ql/src/Security/CWE/CWE-1104/MavenPomDependsOnBintray.ql ql/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql ql/java/ql/src/Security/CWE/CWE-113/ResponseSplitting.ql diff --git a/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected index a3ebc029d287..b2981db13c2b 100644 --- a/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-security-extended.qls.expected @@ -30,6 +30,7 @@ ql/java/ql/src/Security/CWE/CWE-094/JexlInjection.ql ql/java/ql/src/Security/CWE/CWE-094/MvelInjection.ql ql/java/ql/src/Security/CWE/CWE-094/SpelInjection.ql ql/java/ql/src/Security/CWE/CWE-094/TemplateInjection.ql +ql/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql ql/java/ql/src/Security/CWE/CWE-1104/MavenPomDependsOnBintray.ql ql/java/ql/src/Security/CWE/CWE-113/NettyResponseSplitting.ql ql/java/ql/src/Security/CWE/CWE-113/ResponseSplitting.ql diff --git a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected index d1b6428ae227..8045226ace43 100644 --- a/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected +++ b/java/ql/integration-tests/java/query-suite/not_included_in_qls.expected @@ -190,7 +190,6 @@ ql/java/ql/src/experimental/Security/CWE/CWE-094/ScriptInjection.ql ql/java/ql/src/experimental/Security/CWE/CWE-094/SpringImplicitViewManipulation.ql ql/java/ql/src/experimental/Security/CWE/CWE-094/SpringViewManipulation.ql ql/java/ql/src/experimental/Security/CWE/CWE-1004/InsecureTomcatConfig.ql -ql/java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql ql/java/ql/src/experimental/Security/CWE/CWE-200/InsecureWebResourceResponse.ql ql/java/ql/src/experimental/Security/CWE/CWE-200/SensitiveAndroidFileLeak.ql ql/java/ql/src/experimental/Security/CWE/CWE-208/PossibleTimingAttackAgainstSignature.ql @@ -229,14 +228,25 @@ ql/java/ql/src/experimental/Security/CWE/CWE-665/InsecureRmiJmxEnvironmentConfig ql/java/ql/src/experimental/Security/CWE/CWE-755/NFEAndroidDoS.ql ql/java/ql/src/experimental/Security/CWE/CWE-759/HashWithoutSalt.ql ql/java/ql/src/experimental/Security/CWE/CWE-939/IncorrectURLVerification.ql -ql/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql -ql/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql -ql/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql -ql/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql +ql/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptThenMac.ql +ql/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptToMac.ql +ql/java/ql/src/experimental/quantum/Examples/BadMacOrderMacOnEncryptPlaintext.ql ql/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql +ql/java/ql/src/experimental/quantum/Examples/InsecureIVorNonceSource.ql +ql/java/ql/src/experimental/quantum/Examples/NonAESGCMCipher.ql +ql/java/ql/src/experimental/quantum/Examples/ReusedNonce.ql ql/java/ql/src/experimental/quantum/Examples/TestAESGCMNonce.ql ql/java/ql/src/experimental/quantum/Examples/TestCipher.ql ql/java/ql/src/experimental/quantum/Examples/TestHash.ql +ql/java/ql/src/experimental/quantum/Examples/UnknownHash.ql +ql/java/ql/src/experimental/quantum/Examples/UnknownIVorNonceSource.ql +ql/java/ql/src/experimental/quantum/Examples/UnknownKDFIterationCount.ql +ql/java/ql/src/experimental/quantum/Examples/WeakAsymmetricKeyGenSize.ql +ql/java/ql/src/experimental/quantum/Examples/WeakBlockModes.ql +ql/java/ql/src/experimental/quantum/Examples/WeakHash.ql +ql/java/ql/src/experimental/quantum/Examples/WeakKDFIterationCount.ql +ql/java/ql/src/experimental/quantum/Examples/WeakKDFKeySize.ql +ql/java/ql/src/experimental/quantum/Examples/WeakSymmetricCipher.ql ql/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricAlgorithm.ql ql/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricCipherAlgorithm.ql ql/java/ql/src/experimental/quantum/InventorySlices/KnownAsymmetricOperationAlgorithm.ql @@ -261,10 +271,6 @@ ql/java/ql/src/external/MostlyDuplicateMethod.ql ql/java/ql/src/external/MostlySimilarFile.ql ql/java/ql/src/filters/ClassifyFiles.ql ql/java/ql/src/meta/frameworks/Coverage.ql -ql/java/ql/src/meta/ssa/AmbiguousToString.ql -ql/java/ql/src/meta/ssa/TooFewPhiInputs.ql -ql/java/ql/src/meta/ssa/UncertainDefWithoutPrior.ql -ql/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql ql/java/ql/src/utils/modelconverter/ExtractNeutrals.ql ql/java/ql/src/utils/modelconverter/ExtractSinks.ql ql/java/ql/src/utils/modelconverter/ExtractSources.ql diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 0e74414917b6..5d6fcbde3360 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.2 + +### Minor Analysis Improvements + +* Fields of certain objects are considered tainted if the object is tainted. This holds, for example, for objects that occur directly as sources in the active threat model (for instance, a remote flow source). This has now been amended to also include array types, such that if an array like `MyPojo[]` is a source, then fields of a tainted `MyPojo` are now also considered tainted. + ## 7.7.1 No user-facing changes. diff --git a/java/ql/lib/change-notes/2025-10-07-array-entrypointtype.md b/java/ql/lib/change-notes/released/7.7.2.md similarity index 89% rename from java/ql/lib/change-notes/2025-10-07-array-entrypointtype.md rename to java/ql/lib/change-notes/released/7.7.2.md index 45b898b6b2a6..43d4f94b816f 100644 --- a/java/ql/lib/change-notes/2025-10-07-array-entrypointtype.md +++ b/java/ql/lib/change-notes/released/7.7.2.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 7.7.2 + +### Minor Analysis Improvements + * Fields of certain objects are considered tainted if the object is tainted. This holds, for example, for objects that occur directly as sources in the active threat model (for instance, a remote flow source). This has now been amended to also include array types, such that if an array like `MyPojo[]` is a source, then fields of a tainted `MyPojo` are now also considered tainted. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index c94dbb3cd65d..25c09b25d217 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.7.1 +lastReleaseVersion: 7.7.2 diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll index 8b27409410a3..c0ddd1ae7fa4 100644 --- a/java/ql/lib/experimental/quantum/JCA.qll +++ b/java/ql/lib/experimental/quantum/JCA.qll @@ -20,23 +20,16 @@ module JCAModel { abstract class SignatureAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { } + abstract class MacAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { } + // TODO: Verify that the PBEWith% case works correctly bindingset[algo] predicate cipher_names(string algo) { algo.toUpperCase() .matches([ "AES", "AESWrap", "AESWrapPad", "ARCFOUR", "Blowfish", "ChaCha20", "ChaCha20-Poly1305", - "DES", "DESede", "DESedeWrap", "ECIES", "PBEWith%", "RC2", "RC4", "RC5", "RSA" - ].toUpperCase()) - } - - // TODO: Verify that the CFB% case works correctly - bindingset[mode] - predicate cipher_modes(string mode) { - mode.toUpperCase() - .matches([ - "NONE", "CBC", "CCM", "CFB", "CFB%", "CTR", "CTS", "ECB", "GCM", "KW", "KWP", "OFB", - "OFB%", "PCBC" + "DES", "DESede", "DESedeWrap", "ECIES", "PBEWith%", "RC2", "RC4", "RC5", "RSA", + "Skipjack", "Idea" ].toUpperCase()) } @@ -52,11 +45,7 @@ module JCAModel { } bindingset[hash] - predicate hash_names(string hash) { - hash.toUpperCase() - .matches(["SHA-%", "SHA3-%", "BLAKE2b%", "BLAKE2s%", "MD5", "RIPEMD160", "Whirlpool"] - .toUpperCase()) - } + predicate hash_names(string hash) { exists(hash_name_to_type_known(hash, _)) } bindingset[kdf] predicate kdf_names(string kdf) { @@ -98,7 +87,7 @@ module JCAModel { name.toUpperCase() .matches([ "HMAC%", "AESCMAC", "DESCMAC", "GMAC", "Poly1305", "SipHash", "BLAKE2BMAC", - "HMACRIPEMD160" + "HMACRIPEMD160", "%CMAC" ].toUpperCase()) } @@ -110,7 +99,8 @@ module JCAModel { predicate signature_names(string name) { name.toUpperCase().splitAt("WITH", 1).matches(["RSA%", "ECDSA%", "DSA%"]) or - name.toUpperCase().matches(["RSASSA-PSS", "ED25519", "ED448", "EDDSA", "ML-DSA%", "HSS/LMS"]) + name.toUpperCase() + .matches(["RSASSA-PSS", "ED25519", "ED448", "EDDSA", "ML-DSA%", "HSS/LMS", "DSA"]) } bindingset[name] @@ -131,41 +121,47 @@ module JCAModel { // TODO: add additional } - bindingset[name] - Crypto::HashType hash_name_to_type_known(string name, int digestLength) { - name in ["SHA-1", "SHA1"] and result instanceof Crypto::SHA1 and digestLength = 160 - or - name in ["SHA-256", "SHA-384", "SHA-512", "SHA256", "SHA384", "SHA512"] and - result instanceof Crypto::SHA2 and - digestLength = name.replaceAll("-", "").splitAt("SHA", 1).toInt() - or - name in ["SHA3-224", "SHA3-256", "SHA3-384", "SHA3-512", "SHA3256", "SHA3384", "SHA3512"] and - result instanceof Crypto::SHA3 and - digestLength = name.replaceAll("-", "").splitAt("SHA3", 1).toInt() - or - ( - name.matches("BLAKE2b%") and - result instanceof Crypto::BLAKE2B + bindingset[nameRaw] + Crypto::HashType hash_name_to_type_known(string nameRaw, int digestLength) { + exists(string name | name = nameRaw.toUpperCase() | + name in ["SHA-1", "SHA1"] and result instanceof Crypto::SHA1 and digestLength = 160 + or + name in ["SHA-256", "SHA-224", "SHA-384", "SHA-512", "SHA224", "SHA256", "SHA384", "SHA512"] and + result instanceof Crypto::SHA2 and + digestLength = name.replaceAll("-", "").splitAt("SHA", 1).toInt() + or + name in ["SHA-512/224", "SHA-512/256", "SHA512/224", "SHA512/256"] and + result instanceof Crypto::SHA2 and + digestLength = name.replaceAll("-", "").splitAt("SHA-512/", 1).toInt() + or + name in ["SHA3-224", "SHA3-256", "SHA3-384", "SHA3-512", "SHA3256", "SHA3384", "SHA3512"] and + result instanceof Crypto::SHA3 and + digestLength = name.replaceAll("-", "").splitAt("SHA3", 1).toInt() or - name = "BLAKE2s" and result instanceof Crypto::BLAKE2S - ) and - ( - if exists(name.indexOf("-")) - then name.splitAt("-", 1).toInt() = digestLength - else digestLength = 512 + ( + name.toUpperCase().matches("BLAKE2B%") and + result instanceof Crypto::BLAKE2B + or + name.toUpperCase() = "BLAKE2S" and result instanceof Crypto::BLAKE2S + ) and + ( + if exists(name.indexOf("-")) + then name.splitAt("-", 1).toInt() = digestLength + else digestLength = 512 + ) + or + name = "MD5" and + result instanceof Crypto::MD5 and + digestLength = 128 + or + name = "RIPEMD160" and + result instanceof Crypto::RIPEMD160 and + digestLength = 160 + or + name = "WHIRLPOOL" and + result instanceof Crypto::WHIRLPOOL and + digestLength = 512 // TODO: verify ) - or - name = "MD5" and - result instanceof Crypto::MD5 and - digestLength = 128 - or - name = "RIPEMD160" and - result instanceof Crypto::RIPEMD160 and - digestLength = 160 - or - name = "Whirlpool" and - result instanceof Crypto::WHIRLPOOL and - digestLength = 512 // TODO: verify } bindingset[name] @@ -185,6 +181,14 @@ module JCAModel { type = KeyOpAlg::SIV() and name = "SIV" or type = KeyOpAlg::OCB() and name = "OCB" + or + type = KeyOpAlg::CFB() and name = "CFB" + or + type = KeyOpAlg::OFB() and name = "OFB" + or + type = KeyOpAlg::PCBC() and name = "PCBC" + or + type = KeyOpAlg::KWP() and name = "KWP" } bindingset[name] @@ -193,7 +197,8 @@ module JCAModel { upper.matches("AES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::AES()) or - upper = "DES" and + // NOTE: there is DES and DESede + upper.matches("DES%") and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DES()) or upper = "TRIPLEDES" and @@ -208,6 +213,9 @@ module JCAModel { upper = "CHACHA20" and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::CHACHA20()) or + upper = "RC2" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC2()) + or upper = "RC4" and type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC4()) or @@ -216,19 +224,25 @@ module JCAModel { or upper = "RSA" and type = KeyOpAlg::TAsymmetricCipher(KeyOpAlg::RSA()) + or + upper = "SKIPJACK" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::SKIPJACK()) + or + upper = "BLOWFISH" and + type = KeyOpAlg::TSymmetricCipher(KeyOpAlg::BLOWFISH()) ) } bindingset[name] predicate key_agreement_name_to_type_known(Crypto::TKeyAgreementType type, string name) { type = Crypto::DH() and - name.toUpperCase() in ["DH", "XDH"] + name.toUpperCase() = "DH" or type = Crypto::EDH() and name.toUpperCase() = "EDH" or type = Crypto::ECDH() and - name.toUpperCase() in ["ECDH", "X25519", "X448"] + name.toUpperCase() in ["ECDH", "X25519", "X448", "XDH"] or type = Crypto::OtherKeyAgreementType() and name.toUpperCase().matches("ML-KEM%") @@ -257,6 +271,8 @@ module JCAModel { name.toUpperCase().matches("ML-DSA%") and type = KeyOpAlg::TSignature(KeyOpAlg::DSA()) or name.toUpperCase() = "HSS/LMS" and type = KeyOpAlg::TSignature(KeyOpAlg::HSS_LMS()) + or + name.toUpperCase() = "DSA" and type = KeyOpAlg::TSignature(KeyOpAlg::DSA()) } bindingset[name] @@ -265,9 +281,9 @@ module JCAModel { } /** - * A `StringLiteral` in the `"ALG/MODE/PADDING"` or `"ALG"` format + * A `JavaConstant` in the `"ALG/MODE/PADDING"` or `"ALG"` format */ - class CipherStringLiteral extends StringLiteral { + class CipherStringLiteral extends JavaConstant { CipherStringLiteral() { cipher_names(this.getValue().splitAt("/")) } string getAlgorithmName() { result = this.getValue().splitAt("/", 0) } @@ -426,7 +442,7 @@ module JCAModel { override string getRawHashAlgorithmName() { result = super.getPadding() } - override Crypto::THashType getHashFamily() { result = hash_name_to_type_known(hashName, _) } + override Crypto::THashType getHashType() { result = hash_name_to_type_known(hashName, _) } override int getFixedDigestLength() { exists(hash_name_to_type_known(hashName, result)) } } @@ -696,6 +712,8 @@ module JCAModel { abstract DataFlow::Node getInputNode(); } + // TODO: for all parametert specs, I think they can be set through the constructor + // and through setter methods class IvParameterSpecInstance extends NonceParameterInstantiation { IvParameterSpecInstance() { super.getConstructedType().hasQualifiedName("javax.crypto.spec", "IvParameterSpec") @@ -836,7 +854,7 @@ module JCAModel { * Flow from a known hash algorithm name to a `MessageDigest.getInstance(sink)` call. */ module KnownHashAlgorithmLiteralToMessageDigestConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { hash_names(src.asExpr().(StringLiteral).getValue()) } + predicate isSource(DataFlow::Node src) { hash_names(src.asExpr().(JavaConstant).getValue()) } predicate isSink(DataFlow::Node sink) { exists(HashAlgorithmValueConsumer consumer | sink = consumer.getInputNode()) @@ -846,7 +864,7 @@ module JCAModel { module KnownHashAlgorithmLiteralToMessageDigestFlow = DataFlow::Global; - class KnownHashAlgorithm extends Crypto::HashAlgorithmInstance instanceof StringLiteral { + class KnownHashAlgorithm extends Crypto::HashAlgorithmInstance instanceof JavaConstant { HashAlgorithmValueConsumer consumer; KnownHashAlgorithm() { @@ -859,7 +877,7 @@ module JCAModel { override string getRawHashAlgorithmName() { result = super.getValue() } - override Crypto::THashType getHashFamily() { + override Crypto::THashType getHashType() { result = hash_name_to_type_known(this.getRawHashAlgorithmName(), _) } @@ -1019,7 +1037,8 @@ module JCAModel { } class KeyGenerationAlgorithmValueConsumer extends CipherAlgorithmValueConsumer, - KeyAgreementAlgorithmValueConsumer, EllipticCurveAlgorithmValueConsumer instanceof Expr + KeyAgreementAlgorithmValueConsumer, EllipticCurveAlgorithmValueConsumer, + SignatureAlgorithmValueConsumer instanceof Expr { KeyGeneratorGetInstanceCall instantiationCall; @@ -1095,21 +1114,6 @@ module JCAModel { } } - /** - * An instance of `java.security.SecureRandom.nextBytes(byte[])` call. - * This is already generally modeled for Java in CodeQL, but - * we model it again as part of the crypto API model to have a cohesive model. - */ - class JavaSecuritySecureRandom extends Crypto::RandomNumberGenerationInstance instanceof Call { - JavaSecuritySecureRandom() { - this.getCallee().hasQualifiedName("java.security", "SecureRandom", "nextBytes") - } - - override Crypto::DataFlowNode getOutputNode() { result.asExpr() = this.(Call).getArgument(0) } - - override string getGeneratorName() { result = this.(Call).getCallee().getName() } - } - class KeyGeneratorGenerateCall extends Crypto::KeyGenerationOperationInstance instanceof MethodCall { Crypto::KeyArtifactType type; @@ -1206,7 +1210,7 @@ module JCAModel { } module KDFAlgorithmStringToGetInstanceConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { kdf_names(src.asExpr().(StringLiteral).getValue()) } + predicate isSource(DataFlow::Node src) { kdf_names(src.asExpr().(JavaConstant).getValue()) } predicate isSink(DataFlow::Node sink) { exists(SecretKeyFactoryGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) @@ -1247,7 +1251,7 @@ module JCAModel { predicate isIntermediate() { none() } } - class KdfAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof StringLiteral + class KdfAlgorithmStringLiteral extends Crypto::KeyDerivationAlgorithmInstance instanceof JavaConstant { SecretKeyFactoryKDFAlgorithmValueConsumer consumer; @@ -1268,7 +1272,7 @@ module JCAModel { class Pbkdf2WithHmac_KeyOperationAlgorithmStringLiteral extends Crypto::KeyOperationAlgorithmInstance instanceof KdfAlgorithmStringLiteral { Pbkdf2WithHmac_KeyOperationAlgorithmStringLiteral() { - this.(StringLiteral).getValue().toUpperCase().matches("PBKDF2WithHmac%".toUpperCase()) + this.(JavaConstant).getValue().toUpperCase().matches("PBKDF2WithHmac%".toUpperCase()) } override Crypto::KeyOpAlg::AlgorithmType getAlgorithmType() { @@ -1289,7 +1293,7 @@ module JCAModel { override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { none() } - override string getRawAlgorithmName() { result = this.(StringLiteral).getValue() } + override string getRawAlgorithmName() { result = this.(JavaConstant).getValue() } } class Pbkdf2WithHmac_HashAlgorithmStringLiteral extends Crypto::HashAlgorithmInstance instanceof Pbkdf2WithHmac_KeyOperationAlgorithmStringLiteral @@ -1297,12 +1301,12 @@ module JCAModel { string hashName; Pbkdf2WithHmac_HashAlgorithmStringLiteral() { - hashName = this.(StringLiteral).getValue().splitAt("WithHmac", 1) + hashName = this.(JavaConstant).getValue().splitAt("WithHmac", 1) } - override string getRawHashAlgorithmName() { result = this.(StringLiteral).getValue() } + override string getRawHashAlgorithmName() { result = this.(JavaConstant).getValue() } - override Crypto::THashType getHashFamily() { result = hash_name_to_type_known(hashName, _) } + override Crypto::THashType getHashType() { result = hash_name_to_type_known(hashName, _) } override int getFixedDigestLength() { exists(hash_name_to_type_known(hashName, result)) } } @@ -1414,7 +1418,7 @@ module JCAModel { GetInstanceInitUseFlowAnalysis; - class KeyAgreementStringLiteral extends StringLiteral { + class KeyAgreementStringLiteral extends JavaConstant { KeyAgreementStringLiteral() { key_agreement_names(this.getValue()) } } @@ -1532,7 +1536,7 @@ module JCAModel { */ module MacKnownAlgorithmToConsumerConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { mac_names(src.asExpr().(StringLiteral).getValue()) } + predicate isSource(DataFlow::Node src) { mac_names(src.asExpr().(JavaConstant).getValue()) } predicate isSink(DataFlow::Node sink) { exists(MacGetInstanceCall call | sink.asExpr() = call.getAlgorithmArg()) @@ -1566,7 +1570,7 @@ module JCAModel { module MacInitCallToMacOperationFlow = DataFlow::Global; - class KnownMacAlgorithm extends Crypto::KeyOperationAlgorithmInstance instanceof StringLiteral { + class KnownMacAlgorithm extends Crypto::KeyOperationAlgorithmInstance instanceof JavaConstant { MacGetInstanceAlgorithmValueConsumer consumer; KnownMacAlgorithm() { @@ -1582,7 +1586,7 @@ module JCAModel { if super.getValue().toUpperCase().matches("HMAC%") then result = KeyOpAlg::TMac(KeyOpAlg::HMAC()) else - if super.getValue().toUpperCase().matches("CMAC%") + if super.getValue().toUpperCase().matches("%CMAC%") then result = KeyOpAlg::TMac(KeyOpAlg::CMAC()) else result = KeyOpAlg::TMac(KeyOpAlg::OtherMacAlgorithmType()) } @@ -1602,6 +1606,54 @@ module JCAModel { override Crypto::PaddingAlgorithmInstance getPaddingAlgorithm() { none() } } + class KnownHmacAlgorithmInstance extends Crypto::HmacAlgorithmInstance instanceof KnownMacAlgorithm + { + override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { + result = this.(KnownMacAlgorithm).getConsumer() + } + + override int getKeySizeFixed() { + // already defined by parent key operation algorithm, but extending an instance + // still requires we override this method + result = super.getKeySizeFixed() + } + + override Crypto::ConsumerInputDataFlowNode getKeySizeConsumer() { + // already defined by parent key operation algorithm, but extending an instance + // still requires we override this method + result = super.getKeySizeConsumer() + } + + override string getRawAlgorithmName() { + // already defined by parent key operation algorithm, but extending an instance + // still requires we override this method + result = super.getRawAlgorithmName() + } + + override Crypto::KeyOpAlg::AlgorithmType getAlgorithmType() { + result = KeyOpAlg::TMac(KeyOpAlg::HMAC()) + } + } + + class KnownMacHashAlgorithm extends Crypto::HashAlgorithmInstance instanceof KnownMacAlgorithm, + JavaConstant + { + Crypto::THashType hashType; + int digestLength; + + KnownMacHashAlgorithm() { + super.getValue().toUpperCase().matches("HMAC%") and + hashType = + hash_name_to_type_known(super.getValue().toUpperCase().splitAt("HMAC", 1), digestLength) + } + + override string getRawHashAlgorithmName() { result = super.getValue() } + + override Crypto::THashType getHashType() { result = hashType } + + override int getFixedDigestLength() { result = digestLength } + } + class MacGetInstanceCall extends MethodCall { MacGetInstanceCall() { this.getCallee().hasQualifiedName("javax.crypto", "Mac", "getInstance") } @@ -1631,7 +1683,9 @@ module JCAModel { } } - class MacGetInstanceAlgorithmValueConsumer extends Crypto::AlgorithmValueConsumer { + class MacGetInstanceAlgorithmValueConsumer extends MacAlgorithmValueConsumer, + HashAlgorithmValueConsumer + { MacGetInstanceAlgorithmValueConsumer() { this = any(MacGetInstanceCall c).getAlgorithmArg() } override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this } @@ -1641,7 +1695,7 @@ module JCAModel { } } - class MacOperationCall extends Crypto::MacOperationInstance instanceof MethodCall { + class MacOperationCall extends MethodCall { Expr output; MacOperationCall() { @@ -1651,34 +1705,65 @@ module JCAModel { or super.getMethod().hasStringSignature("doFinal(byte[], int)") and this.getArgument(0) = output + or + super.getMethod().hasStringSignature("update(byte[])") and this = output ) } - override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { - exists(MacGetInstanceCall instantiation | - instantiation.getOperation() = this and result = instantiation.getAlgorithmArg() - ) + predicate isIntermediate() { super.getMethod().getName() = "update" } + + Expr getOutput() { result = output } + + Expr getInput() { + super.getMethod().hasStringSignature("doFinal(byte[])") and result = this.getArgument(0) + or + super.getMethod().hasStringSignature("update(byte[])") and result = this.getArgument(0) } + } - override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { - exists(MacGetInstanceCall instantiation, MacInitCall initCall | - instantiation.getOperation() = this and - initCall.getOperation() = this and - instantiation.getInitCall() = initCall and - result.asExpr() = initCall.getKeyArg() - ) + module MacFlowAnalysisImpl = + GetInstanceInitUseFlowAnalysis; + + class MacOperationInstance extends Crypto::MacOperationInstance instanceof MacOperationCall { + MacOperationInstance() { not super.isIntermediate() } + + MacGetInstanceCall getInstantiationCall() { + result = MacFlowAnalysisImpl::getInstantiationFromUse(this, _, _) } + MacInitCall getInitCall() { result = MacFlowAnalysisImpl::getInitFromUse(this, _, _) } + override Crypto::ConsumerInputDataFlowNode getInputConsumer() { - result.asExpr() = super.getArgument(0) and - super.getMethod().getParameterType(0).hasName("byte[]") + result.asExpr() = super.getInput() or + result.asExpr() = MacFlowAnalysisImpl::getAnIntermediateUseFromFinalUse(this, _, _).getInput() } - override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { result.asExpr() = output } + override Crypto::AlgorithmValueConsumer getAnAlgorithmValueConsumer() { + result = this.getInstantiationCall().getAlgorithmArg() + } - override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { none() } + override Crypto::ConsumerInputDataFlowNode getKeyConsumer() { + result.asExpr() = this.getInitCall().getKeyArg() + } + + override Crypto::ArtifactOutputDataFlowNode getOutputArtifact() { + result.asExpr() = super.getOutput() or + result.asExpr() = + MacFlowAnalysisImpl::getAnIntermediateUseFromFinalUse(this, _, _).getOutput() + } - override predicate hasHashAlgorithmConsumer() { none() } + override Crypto::AlgorithmValueConsumer getHashAlgorithmValueConsumer() { + result = this.getInstantiationCall().getAlgorithmArg() + } + + override predicate hasHashAlgorithmConsumer() { + // TODO: do we consider that these operations have no hash and that it is only associated to the mac algorithm node? + // in JCA that seems to be correct, but would removing the hash consumer here break things generally? + this.getHashAlgorithmValueConsumer() + .getAKnownAlgorithmSource() + .(Crypto::KeyOperationAlgorithmInstance) + .getAlgorithmType() = KeyOpAlg::TMac(KeyOpAlg::HMAC()) + } override Crypto::KeyOperationSubtype getKeyOperationSubtype() { result instanceof Crypto::TMacMode @@ -1722,7 +1807,7 @@ module JCAModel { } } - class SignatureStringLiteral extends StringLiteral { + class SignatureStringLiteral extends JavaConstant { SignatureStringLiteral() { signature_names(this.getValue()) } } @@ -1765,12 +1850,12 @@ module JCAModel { int digestLength; SignatureHashAlgorithmInstance() { - hashType = signature_name_to_hash_type_known(this.(StringLiteral).getValue(), digestLength) + hashType = signature_name_to_hash_type_known(this.(JavaConstant).getValue(), digestLength) } - override string getRawHashAlgorithmName() { result = this.(StringLiteral).getValue() } + override string getRawHashAlgorithmName() { result = this.(JavaConstant).getValue() } - override Crypto::THashType getHashFamily() { result = hashType } + override Crypto::THashType getHashType() { result = hashType } override int getFixedDigestLength() { result = digestLength } } @@ -1786,7 +1871,7 @@ module JCAModel { } } - private class SignatureOperationCall extends MethodCall { + class SignatureOperationCall extends MethodCall { SignatureOperationCall() { this.getMethod().hasQualifiedName("java.security", "Signature", ["update", "sign", "verify"]) } @@ -1891,7 +1976,7 @@ module JCAModel { module EllipticCurveStringToConsumerFlow = DataFlow::Global; - class EllipticCurveStringLiteral extends StringLiteral { + class EllipticCurveStringLiteral extends JavaConstant { EllipticCurveStringLiteral() { elliptic_curve_names(this.getValue()) } } @@ -1905,7 +1990,7 @@ module JCAModel { override string getRawEllipticCurveName() { result = super.getValue() } - override Crypto::EllipticCurveFamilyType getEllipticCurveFamilyType() { + override Crypto::EllipticCurveType getEllipticCurveType() { if Crypto::ellipticCurveNameToKnownKeySizeAndFamilyMapping(this.getRawEllipticCurveName(), _, _) then diff --git a/java/ql/lib/experimental/quantum/Language.qll b/java/ql/lib/experimental/quantum/Language.qll index e203d2a15873..bcc8b62ca87f 100644 --- a/java/ql/lib/experimental/quantum/Language.qll +++ b/java/ql/lib/experimental/quantum/Language.qll @@ -30,7 +30,7 @@ module CryptoInput implements InputSig { class UnknownLocation = UnknownDefaultLocation; string locationToFileBaseNameAndLineNumberString(Location location) { - result = location.getFile().getBaseName() + ":" + location.getStartLine() + result = location.toString() } LocatableElement dfn_to_element(DataFlow::Node node) { @@ -55,7 +55,18 @@ final class DefaultRemoteFlowSource = RemoteFlowSource; private class GenericUnreferencedParameterSource extends Crypto::GenericUnreferencedParameterSource { GenericUnreferencedParameterSource() { - exists(Parameter p | this = p and not exists(p.getAnArgument())) + exists(Parameter p | + this = p and + not exists(p.getAnArgument()) + // or + // // TODO: this is test code which causes regression in unit tests, but will + // // find sources where ordinarily a source might be missing + // // If all calls to a function occur in a test file, ignore those calls + // // and consider the parameter to the function a potential source as well. + // forall(Call testCall | testCall.getCallee() = p.getCallable() | + // testCall.getFile().getBaseName().toUpperCase().matches("%TEST%") + // ) + ) } override predicate flowsTo(Crypto::FlowAwareElement other) { @@ -93,8 +104,54 @@ private class GenericRemoteDataSource extends Crypto::GenericRemoteDataSource { override string getAdditionalDescription() { result = this.toString() } } -private class ConstantDataSource extends Crypto::GenericConstantSourceInstance instanceof Literal { - ConstantDataSource() { +import semmle.code.java.frameworks.Properties +private import semmle.code.configfiles.ConfigFiles + +/** + * A class to represent constants in Java code, either literals or + * values retrieved from properties files. + * Java CodeQL does not consider the values of known properties to be literals, + * hence we need to model both literals and property calls. + */ +class JavaConstant extends Expr { + string value; + + JavaConstant() { + // If arg 0 in a getProperty call, consider it a literal only if + // we haven't resolved it to a known property value, otherwise + // use the resolved config value. + // If getProperty is used, always assume the default value is potentially used. + // CAVEAT/ASSUMPTION: this assumes the literal is immediately known at arg0 + // of a getProperty call. + // also if the properties file is reloaded in a way where the reloaded file + // wouldn't have the property but the original does, we would erroneously + // consider the literal to be mapped to that property value. + exists(ConfigPair p, PropertiesGetPropertyMethodCall c | + c.getArgument(0).(Literal).getValue() = p.getNameElement().getName() and + value = p.getValueElement().getValue() and + this = c + ) + or + // in this case, the property value is not known, use the literal property name as the value + exists(PropertiesGetPropertyMethodCall c | + value = c.getArgument(0).(Literal).getValue() and + not exists(ConfigPair p | + c.getArgument(0).(Literal).getValue() = p.getNameElement().getName() + ) and + this = c + ) + or + // in this case, there is not propery getter, we just have a literal + not exists(PropertiesGetPropertyMethodCall c | c.getArgument(0) = this) and + value = this.(Literal).getValue() + } + + string getValue() { result = value } +} + +private class ConstantDataSourceLiteral extends Crypto::GenericConstantSourceInstance instanceof JavaConstant +{ + ConstantDataSourceLiteral() { // TODO: this is an API specific workaround for JCA, as 'EC' is a constant that may be used // where typical algorithms are specified, but EC specifically means set up a // default curve container, that will later be specified explicitly (or if not a default) @@ -112,6 +169,20 @@ private class ConstantDataSource extends Crypto::GenericConstantSourceInstance i override string getAdditionalDescription() { result = this.toString() } } +private class ConstantDataSourceArrayInitializer extends Crypto::GenericConstantSourceInstance instanceof ArrayInit +{ + ConstantDataSourceArrayInitializer() { this.getAnInit() instanceof Literal } + + override DataFlow::Node getOutputNode() { result.asExpr() = this } + + override predicate flowsTo(Crypto::FlowAwareElement other) { + // TODO: separate config to avoid blowing up data-flow analysis + GenericDataSourceFlow::flow(this.getOutputNode(), other.getInputNode()) + } + + override string getAdditionalDescription() { result = this.toString() } +} + /** * An instance of random number generation, modeled as the expression * tied to an output node (i.e., the result of the source of randomness) @@ -215,7 +286,7 @@ module ArtifactFlowConfig implements DataFlow::ConfigSig { module GenericDataSourceFlow = TaintTracking::Global; -module ArtifactFlow = DataFlow::Global; +module ArtifactFlow = TaintTracking::Global; // Import library-specific modeling import JCA diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index dabb65e61cef..7f8860bc6324 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.7.2-dev +version: 7.7.3-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/lib/semmle/code/java/controlflow/ControlFlow.qll b/java/ql/lib/semmle/code/java/controlflow/ControlFlowReachability.qll similarity index 79% rename from java/ql/lib/semmle/code/java/controlflow/ControlFlow.qll rename to java/ql/lib/semmle/code/java/controlflow/ControlFlowReachability.qll index 3d2a8d7fdd1f..9fe6b9b0b1df 100644 --- a/java/ql/lib/semmle/code/java/controlflow/ControlFlow.qll +++ b/java/ql/lib/semmle/code/java/controlflow/ControlFlowReachability.qll @@ -5,7 +5,7 @@ overlay[local?] module; import java -private import codeql.controlflow.ControlFlow +private import codeql.controlflow.ControlFlowReachability private import semmle.code.java.dataflow.SSA as SSA private import semmle.code.java.controlflow.Guards as Guards @@ -31,16 +31,16 @@ private module ControlFlowInput implements InputSig; +module ControlFlowReachability = Make; diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index ac46a2a25b72..7bc53226b814 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -415,21 +415,21 @@ private module LogicInput_v1 implements GuardsImpl::LogicInputSig { GuardsInput::Expr getARead() { result = this.getAUse() } } - class SsaWriteDefinition extends SsaDefinition instanceof BaseSsaUpdate { - GuardsInput::Expr getDefinition() { + class SsaExplicitWrite extends SsaDefinition instanceof BaseSsaUpdate { + GuardsInput::Expr getValue() { super.getDefiningExpr().(VariableAssign).getSource() = result or super.getDefiningExpr().(AssignOp) = result } } - class SsaPhiNode extends SsaDefinition instanceof BaseSsaPhiNode { + class SsaPhiDefinition extends SsaDefinition instanceof BaseSsaPhiNode { predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { super.hasInputFromBlock(inp, bb) } } - predicate parameterDefinition(Parameter p, SsaDefinition def) { - def.(BaseSsaImplicitInit).isParameterDefinition(p) + class SsaParameterInit extends SsaDefinition instanceof BaseSsaImplicitInit { + Parameter getParameter() { super.isParameterDefinition(result) } } predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; @@ -446,21 +446,21 @@ private module LogicInput_v2 implements GuardsImpl::LogicInputSig { GuardsInput::Expr getARead() { result = this.getAUse() } } - class SsaWriteDefinition extends SsaDefinition instanceof SSA::SsaExplicitUpdate { - GuardsInput::Expr getDefinition() { + class SsaExplicitWrite extends SsaDefinition instanceof SSA::SsaExplicitUpdate { + GuardsInput::Expr getValue() { super.getDefiningExpr().(VariableAssign).getSource() = result or super.getDefiningExpr().(AssignOp) = result } } - class SsaPhiNode extends SsaDefinition instanceof SSA::SsaPhiNode { + class SsaPhiDefinition extends SsaDefinition instanceof SSA::SsaPhiNode { predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { super.hasInputFromBlock(inp, bb) } } - predicate parameterDefinition(Parameter p, SsaDefinition def) { - def.(SSA::SsaImplicitInit).isParameterDefinition(p) + class SsaParameterInit extends SsaDefinition instanceof SSA::SsaImplicitInit { + Parameter getParameter() { super.isParameterDefinition(result) } } predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; diff --git a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll index 8728af2c0db2..c9f5ad4f7812 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll @@ -16,7 +16,7 @@ private import IntegerGuards private import NullGuards private import semmle.code.java.Collections private import semmle.code.java.controlflow.internal.Preconditions -private import semmle.code.java.controlflow.ControlFlow as Cf +private import semmle.code.java.controlflow.ControlFlowReachability /** Gets an expression that may be `null`. */ Expr nullExpr() { result = nullExpr(_) } @@ -248,7 +248,7 @@ private predicate impossibleEdge(BasicBlock bb1, BasicBlock bb2) { ) } -private module NullnessConfig implements Cf::ControlFlow::ConfigSig { +private module NullnessConfig implements ControlFlowReachability::ConfigSig { predicate source(ControlFlowNode node, SsaVariable def) { varMaybeNull(def, node, _, _) } predicate sink(ControlFlowNode node, SsaVariable def) { varDereference(def, _) = node } @@ -260,7 +260,7 @@ private module NullnessConfig implements Cf::ControlFlow::ConfigSig { predicate uncertainFlow() { none() } } -private module NullnessFlow = Cf::ControlFlow::Flow; +private module NullnessFlow = ControlFlowReachability::Flow; /** * Holds if the dereference of `v` at `va` might be `null`. diff --git a/java/ql/lib/semmle/code/java/dataflow/SSA.qll b/java/ql/lib/semmle/code/java/dataflow/SSA.qll index 962f38e80ea6..40da9a4e94d1 100644 --- a/java/ql/lib/semmle/code/java/dataflow/SSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/SSA.qll @@ -336,6 +336,9 @@ class SsaPhiNode extends SsaVariable instanceof PhiNode { /** Gets an input to the phi node defining the SSA variable. */ SsaVariable getAPhiInput() { this.hasInputFromBlock(result, _) } + /** Gets an input to the phi node defining the SSA variable. */ + SsaVariable getAnInput() { this.hasInputFromBlock(result, _) } + /** Holds if `inp` is an input to the phi node along the edge originating in `bb`. */ predicate hasInputFromBlock(SsaVariable inp, BasicBlock bb) { phiHasInputFromBlock(this, inp, bb) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll index e50581c7e14c..5a818d18b850 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll @@ -366,6 +366,9 @@ class BaseSsaPhiNode extends BaseSsaVariable instanceof Impl::PhiNode { /** Gets an input to the phi node defining the SSA variable. */ BaseSsaVariable getAPhiInput() { this.hasInputFromBlock(result, _) } + /** Gets an input to the phi node defining the SSA variable. */ + BaseSsaVariable getAnInput() { this.hasInputFromBlock(result, _) } + /** Holds if `inp` is an input to the phi node along the edge originating in `bb`. */ predicate hasInputFromBlock(BaseSsaVariable inp, BasicBlock bb) { phiHasInputFromBlock(this, inp, bb) diff --git a/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll b/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll index 4f9e39b23f2d..0c1f14c902b6 100644 --- a/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll +++ b/java/ql/lib/semmle/code/java/security/BrokenCryptoAlgorithmQuery.qll @@ -12,6 +12,7 @@ private class ShortStringLiteral extends StringLiteral { /** * A string literal that may refer to a broken or risky cryptographic algorithm. */ +overlay[local?] class BrokenAlgoLiteral extends ShortStringLiteral { BrokenAlgoLiteral() { this.getValue().regexpMatch(getInsecureAlgorithmRegex()) and diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index 5eb35c05cd47..dc15ad943bc7 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -164,3 +164,24 @@ private class HostComparisonSanitizer extends RequestForgerySanitizer { this = DataFlow::BarrierGuard::getABarrierNode() } } + +/** + * A qualifier in a call to a `.matches()` method that is a sanitizer for URL redirects. + * + * Matches any method call where the method is named `matches`. + */ +private predicate isMatchesSanitizer(Guard guard, Expr e, boolean branch) { + guard = + any(MethodCall method | + method.getMethod().getName() = "matches" and + e = method.getQualifier() and + branch = true + ) +} + +/** + * A qualifier in a call to `.matches()` that is a sanitizer for URL redirects. + */ +private class MatchesSanitizer extends RequestForgerySanitizer { + MatchesSanitizer() { this = DataFlow::BarrierGuard::getABarrierNode() } +} diff --git a/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll b/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll index 282133ec5c67..a03775990541 100644 --- a/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll +++ b/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll @@ -33,6 +33,7 @@ private class StaticByteArrayCreation extends ArrayCreationExpr { } /** An expression that updates `array`. */ +overlay[local?] private class ArrayUpdate extends Expr { Expr array; diff --git a/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll b/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll index 7234b4c788f5..895e824b3dbd 100644 --- a/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UrlForwardQuery.qll @@ -69,6 +69,7 @@ private class FollowsBarrierPrefix extends UrlForwardBarrier { FollowsBarrierPrefix() { this.asExpr() = any(BarrierPrefix fp).getAnAppendedExpression() } } +overlay[local?] private class BarrierPrefix extends InterestingPrefix { int offset; diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 1e6df88fc31d..06133dffeba8 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.8.2 + +No user-facing changes. + ## 1.8.1 No user-facing changes. diff --git a/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql b/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql index 28ae63bfd363..4bbeefaee6e0 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql @@ -19,7 +19,7 @@ predicate isConstantExp(Expr e) { // A literal is constant. e instanceof Literal or - e instanceof TypeAccess and not e.(TypeAccess).getType() instanceof ErrorType + e instanceof TypeAccess or e instanceof ArrayTypeAccess or @@ -53,6 +53,7 @@ predicate isConstantExp(Expr e) { from Expr e where isConstantExp(e) and + not e.(TypeAccess).getType() instanceof ErrorType and exists(Expr child | e.getAChildExpr() = child | not isConstantExp(child) and not child instanceof Annotation diff --git a/java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.java b/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.java similarity index 100% rename from java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.java rename to java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.java diff --git a/java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.qhelp b/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.qhelp similarity index 58% rename from java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.qhelp rename to java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.qhelp index ee3e8a4181a9..71e016510e26 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.qhelp +++ b/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.qhelp @@ -2,11 +2,13 @@ -

Cross-Site Scripting (XSS) is categorized as one of the OWASP Top 10 Security Vulnerabilities. The HttpOnly flag directs compatible browsers to prevent client-side script from accessing cookies. Including the HttpOnly flag in the Set-Cookie HTTP response header for a sensitive cookie helps mitigate the risk associated with XSS where an attacker's script code attempts to read the contents of a cookie and exfiltrate information obtained.

+

Cookies without the HttpOnly flag set are accessible to client-side scripts (such as JavaScript) running in the same origin. +In case of a Cross-Site Scripting (XSS) vulnerability, the cookie can be stolen by a malicious script. +If a sensitive cookie does not need to be accessed directly by client-side scripts, the HttpOnly flag should be set.

-

Use the HttpOnly flag when generating a cookie containing sensitive information to help mitigate the risk of client side script accessing the protected cookie.

+

Use the HttpOnly flag when generating a cookie containing sensitive information to help mitigate the risk of client-side scripts accessing the protected cookie.

@@ -23,5 +25,6 @@ OWASP: HttpOnly +
  • MDN: Set-Cookie HttpOnly.
  • diff --git a/java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql b/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql similarity index 67% rename from java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql rename to java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql index fa5237d32bb9..494e851a5333 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql +++ b/java/ql/src/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql @@ -1,13 +1,13 @@ /** * @name Sensitive cookies without the HttpOnly response header set - * @description Sensitive cookies without the 'HttpOnly' flag set leaves session cookies vulnerable to + * @description A sensitive cookie without the 'HttpOnly' flag set may be vulnerable to * an XSS attack. * @kind path-problem * @problem.severity warning - * @precision medium + * @precision high + * @security-severity 5.0 * @id java/sensitive-cookie-not-httponly * @tags security - * experimental * external/cwe/cwe-1004 */ @@ -15,16 +15,15 @@ * Sketch of the structure of this query: we track cookie names that appear to be sensitive * (e.g. `session` or `token`) to a `ServletResponse.addHeader(...)` or `.addCookie(...)` * method that does not set the `httpOnly` flag. Subsidiary configurations - * `MatchesHttpOnlyConfiguration` and `SetHttpOnlyInCookieConfiguration` are used to establish + * `MatchesHttpOnlyToRawHeaderConfig` and `SetHttpOnlyInCookieConfig` are used to establish * when the `httpOnly` flag is likely to have been set, before configuration - * `MissingHttpOnlyConfiguration` establishes that a non-`httpOnly` cookie has a sensitive-seeming name. + * `MissingHttpOnlyConfig` establishes that a non-`httpOnly` cookie has a sensitive-seeming name. */ import java import semmle.code.java.dataflow.FlowSteps import semmle.code.java.frameworks.Servlets import semmle.code.java.dataflow.TaintTracking -import MissingHttpOnlyFlow::PathGraph /** Gets a regular expression for matching common names of sensitive cookies. */ string getSensitiveCookieNameRegex() { result = "(?i).*(auth|session|token|key|credential).*" } @@ -50,8 +49,8 @@ class SensitiveCookieNameExpr extends Expr { } /** A method call that sets a `Set-Cookie` header. */ -class SetCookieMethodCall extends MethodCall { - SetCookieMethodCall() { +class SetCookieRawHeaderMethodCall extends MethodCall { + SetCookieRawHeaderMethodCall() { ( this.getMethod() instanceof ResponseAddHeaderMethod or this.getMethod() instanceof ResponseSetHeaderMethod @@ -62,19 +61,19 @@ class SetCookieMethodCall extends MethodCall { /** * A taint configuration tracking flow from the text `httponly` to argument 1 of - * `SetCookieMethodCall`. + * `SetCookieRawHeaderMethodCall`. */ -module MatchesHttpOnlyConfig implements DataFlow::ConfigSig { +module MatchesHttpOnlyToRawHeaderConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().(CompileTimeConstantExpr).getStringValue().toLowerCase().matches("%httponly%") } predicate isSink(DataFlow::Node sink) { - sink.asExpr() = any(SetCookieMethodCall ma).getArgument(1) + sink.asExpr() = any(SetCookieRawHeaderMethodCall ma).getArgument(1) } } -module MatchesHttpOnlyFlow = TaintTracking::Global; +module MatchesHttpOnlyToRawHeaderFlow = TaintTracking::Global; /** A class descended from `javax.servlet.http.Cookie`. */ class CookieClass extends RefType { @@ -103,29 +102,11 @@ predicate removesCookie(MethodCall ma) { } /** - * Holds if the MethodCall `ma` is a test method call indicated by: - * a) in a test directory such as `src/test/java` - * b) in a test package whose name has the word `test` - * c) in a test class whose name has the word `test` - * d) in a test class implementing a test framework such as JUnit or TestNG + * A taint configuration tracking the flow of a cookie that has had the + * `HttpOnly` flag set, or has been removed, to a `ServletResponse.addCookie` + * call. */ -predicate isTestMethod(MethodCall ma) { - exists(Method m | - m = ma.getEnclosingCallable() and - ( - m.getDeclaringType().getName().toLowerCase().matches("%test%") or // Simple check to exclude test classes to reduce FPs - m.getDeclaringType().getPackage().getName().toLowerCase().matches("%test%") or // Simple check to exclude classes in test packages to reduce FPs - exists(m.getLocation().getFile().getAbsolutePath().indexOf("/src/test/java")) or // Match test directory structure of build tools like maven - m instanceof TestMethod // Test method of a test case implementing a test framework such as JUnit or TestNG - ) - ) -} - -/** - * A taint configuration tracking flow of a method that sets the `HttpOnly` flag, - * or one that removes a cookie, to a `ServletResponse.addCookie` call. - */ -module SetHttpOnlyOrRemovesCookieConfig implements DataFlow::ConfigSig { +module SetHttpOnlyOrRemovesCookieToAddCookieConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr() = any(MethodCall ma | setsCookieHttpOnly(ma) or removesCookie(ma)).getQualifier() @@ -137,25 +118,25 @@ module SetHttpOnlyOrRemovesCookieConfig implements DataFlow::ConfigSig { } } -module SetHttpOnlyOrRemovesCookieFlow = TaintTracking::Global; +module SetHttpOnlyOrRemovesCookieToAddCookieFlow = + TaintTracking::Global; /** - * A cookie that is added to an HTTP response and which doesn't have `httpOnly` set, used as a sink - * in `MissingHttpOnlyConfiguration`. + * A cookie that is added to an HTTP response and which doesn't have `HttpOnly` set, used as a sink + * in `MissingHttpOnlyConfig`. */ -class CookieResponseSink extends DataFlow::ExprNode { - CookieResponseSink() { +class CookieResponseWithoutHttpOnlySink extends DataFlow::ExprNode { + CookieResponseWithoutHttpOnlySink() { exists(MethodCall ma | ( ma.getMethod() instanceof ResponseAddCookieMethod and this.getExpr() = ma.getArgument(0) and - not SetHttpOnlyOrRemovesCookieFlow::flowTo(this) + not SetHttpOnlyOrRemovesCookieToAddCookieFlow::flowTo(this) or - ma instanceof SetCookieMethodCall and + ma instanceof SetCookieRawHeaderMethodCall and this.getExpr() = ma.getArgument(1) and - not MatchesHttpOnlyFlow::flowTo(this) // response.addHeader("Set-Cookie", "token=" +authId + ";HttpOnly;Secure") - ) and - not isTestMethod(ma) // Test class or method + not MatchesHttpOnlyToRawHeaderFlow::flowTo(this) // response.addHeader("Set-Cookie", "token=" +authId + ";HttpOnly;Secure") + ) ) } } @@ -178,15 +159,21 @@ predicate setsHttpOnlyInNewCookie(ClassInstanceExpr cie) { /** * A taint configuration tracking flow from a sensitive cookie without the `HttpOnly` flag - * set to its HTTP response. + * set to an HTTP response. + * + * Tracks string literals containing sensitive names (`SensitiveCookieNameExpr`), to an `addCookie` call (as a `Cookie` object) + * or an `addHeader` call (as a string) (`CookieResponseWithoutHttpOnlySink`). + * + * Passes through `Cookie` constructors and `toString` calls. */ module MissingHttpOnlyConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr() instanceof SensitiveCookieNameExpr } - predicate isSink(DataFlow::Node sink) { sink instanceof CookieResponseSink } + predicate isSink(DataFlow::Node sink) { sink instanceof CookieResponseWithoutHttpOnlySink } predicate isBarrier(DataFlow::Node node) { // JAX-RS's `new NewCookie("session-access-key", accessKey, "/", null, null, 0, true, true)` and similar + // Cookie constructors that set the `HttpOnly` flag are considered barriers to the flow of sensitive names. setsHttpOnlyInNewCookie(node.asExpr()) } @@ -212,13 +199,8 @@ module MissingHttpOnlyConfig implements DataFlow::ConfigSig { module MissingHttpOnlyFlow = TaintTracking::Global; -deprecated query predicate problems( - DataFlow::Node sinkNode, MissingHttpOnlyFlow::PathNode source, MissingHttpOnlyFlow::PathNode sink, - string message1, DataFlow::Node sourceNode, string message2 -) { - MissingHttpOnlyFlow::flowPath(source, sink) and - sinkNode = sink.getNode() and - message1 = "$@ doesn't have the HttpOnly flag set." and - sourceNode = source.getNode() and - message2 = "This sensitive cookie" -} +import MissingHttpOnlyFlow::PathGraph + +from MissingHttpOnlyFlow::PathNode source, MissingHttpOnlyFlow::PathNode sink +where MissingHttpOnlyFlow::flowPath(source, sink) +select sink, source, sink, "$@ doesn't have the HttpOnly flag set.", source, "This sensitive cookie" diff --git a/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp b/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp index 1d8e8db6798c..35b37b9f814d 100644 --- a/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp +++ b/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.qhelp @@ -3,11 +3,15 @@ "qhelp.dtd"> -

    Using broken or weak cryptographic algorithms can leave data vulnerable to being decrypted.

    - -

    Many cryptographic algorithms provided by cryptography libraries are known to be weak, or -flawed. Using such an algorithm means that an attacker may be able to easily decrypt the encrypted -data.

    +

    Using broken or weak cryptographic algorithms may compromise security guarantees such as confidentiality, integrity, and authenticity.

    + +

    Many cryptographic algorithms are known to be weak or flawed. The security guarantees of a system often rely on the underlying cryptography, so using a weak algorithm can have severe consequences. For example: +

    +
      +
    • If a weak encryption algorithm is used, an attacker may be able to decrypt sensitive data.
    • +
    • If a weak hashing algorithm is used to protect data integrity, an attacker may be able to craft a malicious input that has the same hash as a benign one.
    • +
    • If a weak algorithm is used for digital signatures, an attacker may be able to forge signatures and impersonate legitimate users.
    • +
    diff --git a/java/ql/src/change-notes/2025-10-02-http-only-cookie-promote.md b/java/ql/src/change-notes/2025-10-02-http-only-cookie-promote.md new file mode 100644 index 000000000000..ee9fe7527bd5 --- /dev/null +++ b/java/ql/src/change-notes/2025-10-02-http-only-cookie-promote.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* The `java/sensitive-cookie-not-httponly` query has been promoted from experimental to the main query pack. \ No newline at end of file diff --git a/java/ql/src/change-notes/2025-10-24-request-forgery-matches-sanitizer.md b/java/ql/src/change-notes/2025-10-24-request-forgery-matches-sanitizer.md new file mode 100644 index 000000000000..a38c43dd7305 --- /dev/null +++ b/java/ql/src/change-notes/2025-10-24-request-forgery-matches-sanitizer.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to `String.matches` are now treated as sanitizers for the `java/ssrf` query. \ No newline at end of file diff --git a/java/ql/src/change-notes/released/1.8.2.md b/java/ql/src/change-notes/released/1.8.2.md new file mode 100644 index 000000000000..12e641fd7205 --- /dev/null +++ b/java/ql/src/change-notes/released/1.8.2.md @@ -0,0 +1,3 @@ +## 1.8.2 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 28a7c123ae84..559af8348bb0 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.8.1 +lastReleaseVersion: 1.8.2 diff --git a/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql b/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql deleted file mode 100644 index f00621d4d2b6..000000000000 --- a/java/ql/src/experimental/quantum/Analysis/InsecureNonceSource.ql +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @name Insecure nonce at a cipher operation - * @id java/quantum/insecure-nonce - * @description A nonce is generated from a source that is not secure. This can lead to - * vulnerabilities such as replay attacks or key recovery. - * @kind problem - * @problem.severity error - * @precision high - * @tags quantum - * experimental - */ - -import experimental.quantum.Language - -predicate isInsecureNonceSource(Crypto::NonceArtifactNode n, Crypto::NodeBase src) { - src = n.getSourceNode() and - not src.asElement() instanceof SecureRandomnessInstance -} - -from Crypto::KeyOperationNode op, Crypto::NodeBase src -where isInsecureNonceSource(op.getANonce(), src) -select op, "Operation uses insecure nonce source $@", src, src.toString() diff --git a/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql b/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql deleted file mode 100644 index 2dd5b0b006be..000000000000 --- a/java/ql/src/experimental/quantum/Analysis/KnownWeakKDFIterationCount.ql +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @name Weak known key derivation function iteration count - * @description Detects key derivation operations with a known weak iteration count. - * @id java/quantum/weak-kdf-iteration-count - * @kind problem - * @problem.severity error - * @precision high - * @tags quantum - * experimental - */ - -import java -import experimental.quantum.Language - -from Crypto::KeyDerivationOperationNode op, Literal l -where - op.getIterationCount().asElement() = l and - l.getValue().toInt() < 100000 -select op, "Key derivation operation configures iteration count below 100k: $@", l, - l.getValue().toString() diff --git a/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql b/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql deleted file mode 100644 index ed2872bb67e1..000000000000 --- a/java/ql/src/experimental/quantum/Analysis/ReusedNonce.ql +++ /dev/null @@ -1,17 +0,0 @@ -/** - * @name Reuse of cryptographic nonce - * @description Reuse of nonce in cryptographic operations can lead to vulnerabilities. - * @id java/quantum/reused-nonce - * @kind problem - * @problem.severity error - * @precision medium - * @tags quantum - * experimental - */ - -import java -import ArtifactReuse - -from Crypto::NonceArtifactNode nonce1, Crypto::NonceArtifactNode nonce2 -where isArtifactReuse(nonce1, nonce2) -select nonce1, "Reuse with nonce $@", nonce2, nonce2.toString() diff --git a/java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll b/java/ql/src/experimental/quantum/Examples/ArtifactReuse.qll similarity index 50% rename from java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll rename to java/ql/src/experimental/quantum/Examples/ArtifactReuse.qll index 0e28d9ffe5e3..776510b52ad1 100644 --- a/java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll +++ b/java/ql/src/experimental/quantum/Examples/ArtifactReuse.qll @@ -8,7 +8,7 @@ import experimental.quantum.Language * NOTE: TODO: need to handle call by refernece for now. Need to re-evaluate (see notes below) * Such functions may be 'wrappers' for some derived value. */ -private module WrapperConfig implements DataFlow::ConfigSig { +private module ArtifactGeneratingWrapperConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr() instanceof Call and // not handling references yet, I think we want to flat say references are only ok @@ -28,25 +28,41 @@ private module WrapperConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(Crypto::ArtifactNode i).asElement() } } -module WrapperFlow = DataFlow::Global; +module ArtifactGeneratingWrapperFlow = TaintTracking::Global; /** * Using a set approach to determine if reuse of an artifact exists. * This predicate produces a set of 'wrappers' that flow to the artifact node. * This set can be compared with the set to another artifact node to determine if they are the same. */ -private DataFlow::Node getWrapperSet(Crypto::NonceArtifactNode a) { - WrapperFlow::flow(result, DataFlow::exprNode(a.asElement())) +private DataFlow::Node getGeneratingWrapperSet(Crypto::NonceArtifactNode a) { + ArtifactGeneratingWrapperFlow::flow(result, DataFlow::exprNode(a.asElement())) or result.asExpr() = a.getSourceElement() } +private predicate ancestorOfArtifact( + Crypto::ArtifactNode a, Callable enclosingCallable, ControlFlow::Node midOrTarget +) { + a.asElement().(Expr).getEnclosingCallable() = enclosingCallable and + ( + midOrTarget.asExpr() = a.asElement() or + midOrTarget.asExpr().(Call).getCallee().calls*(a.asElement().(Expr).getEnclosingCallable()) + ) +} + /** * Two different artifact nodes are considered reuse if any of the following conditions are met: * 1. The source for artifact `a` and artifact `b` are the same and the source is a literal. * 2. The source for artifact `a` and artifact `b` are not the same and the source is a literal of the same value. - * 3. For all 'wrappers' that return the source of artifact `a`, and that wrapper also exists for artifact `b`. - * 4. For all 'wrappers' that return the source of artifact `b`, and that wrapper also exists for artifact `a`. + * 3. For all 'wrappers' that return the source of artifact `a`, and each wrapper also exists for artifact `b`. + * 4. For all 'wrappers' that return the source of artifact `b`, and each wrapper also exists for artifact `a`. + * + * The above conditions determine that the use of the IV is from the same source, but the use may + * be on separate code paths that do not occur sequentially. We must therefore also find a common callable ancestor + * for both uses, and in that ancestor, there must be control flow from the call or use of one to the call or use of the other. + * Note that if no shared ancestor callable exists, it means the flow is more nuanced and ignore the shared ancestor + * use flow. */ predicate isArtifactReuse(Crypto::ArtifactNode a, Crypto::ArtifactNode b) { a != b and @@ -55,12 +71,32 @@ predicate isArtifactReuse(Crypto::ArtifactNode a, Crypto::ArtifactNode b) { or a.getSourceElement().(Literal).getValue() = b.getSourceElement().(Literal).getValue() or - forex(DataFlow::Node e | e = getWrapperSet(a) | - exists(DataFlow::Node e2 | e2 = getWrapperSet(b) | e = e2) + forex(DataFlow::Node e | e = getGeneratingWrapperSet(a) | + exists(DataFlow::Node e2 | e2 = getGeneratingWrapperSet(b) | e = e2) ) or - forex(DataFlow::Node e | e = getWrapperSet(b) | - exists(DataFlow::Node e2 | e2 = getWrapperSet(a) | e = e2) + forex(DataFlow::Node e | e = getGeneratingWrapperSet(b) | + exists(DataFlow::Node e2 | e2 = getGeneratingWrapperSet(a) | e = e2) + ) + ) and + // If there is a common parent, there is control flow between the two uses in the parent + // TODO: this logic needs to be examined/revisited to ensure it is correct + ( + exists(Callable commonParent | + ancestorOfArtifact(a, commonParent, _) and + ancestorOfArtifact(b, commonParent, _) + ) + implies + exists(Callable commonParent, ControlFlow::Node aMid, ControlFlow::Node bMid | + ancestorOfArtifact(a, commonParent, aMid) and + ancestorOfArtifact(b, commonParent, bMid) and + a instanceof Crypto::NonceArtifactNode and + b instanceof Crypto::NonceArtifactNode and + ( + aMid.getASuccessor*() = bMid + or + bMid.getASuccessor*() = aMid + ) ) ) } diff --git a/java/ql/src/experimental/quantum/Examples/BadMacOrder.qll b/java/ql/src/experimental/quantum/Examples/BadMacOrder.qll new file mode 100644 index 000000000000..6d944661621b --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/BadMacOrder.qll @@ -0,0 +1,336 @@ +import java +import experimental.quantum.Language +import codeql.util.Option + +/** + * Holds when the src node is the output artifact of a decrypt operation + * that flows to the input artifact of a mac operation. + */ +predicate isDecryptToMacFlow(ArtifactFlow::PathNode src, ArtifactFlow::PathNode sink) { + // Simply flow from decrypt output to a mac input + ArtifactFlow::flowPath(src, sink) and + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getKeyOperationSubtype() = Crypto::TDecryptMode() and + cipherOp.getAnOutputArtifact().asElement() = src.getNode().asExpr() + ) and + exists(Crypto::MacOperationNode macOp | + macOp.getAnInputArtifact().asElement() = sink.getNode().asExpr() + ) +} + +/** + * Experimental interface for graph generation, supply the + * node to determine if a issue exists, and if so + * the graph can add a property on the node. + */ +predicate isDecryptToMacNode(Crypto::ArtifactNode node) { + exists(ArtifactFlow::PathNode src | + isDecryptToMacFlow(src, _) and + node.asElement() = src.getNode().asExpr() + ) +} + +predicate isDecryptThenMacFlow(DecryptThenMacFlow::PathNode src, DecryptThenMacFlow::PathNode sink) { + DecryptThenMacFlow::flowPath(src, sink) +} + +/** + * Holds when the src node is used as plaintext input to both + * an encryption operation and a mac operation, via the + * argument represented by InterimArg. + */ +predicate isPlaintextInEncryptionAndMac( + PlaintextUseAsMacAndCipherInputFlow::PathNode src, + PlaintextUseAsMacAndCipherInputFlow::PathNode sink, EncryptOrMacCallArg arg +) { + PlaintextUseAsMacAndCipherInputFlow::flowPath(src, sink) and + arg = sink.getState().asSome() and + // the above pathing adds flow steps that may not have consideration for the calling context + // TODO: this is something we want to look into to improving, but for now + // we can filter bad flows with one additional flow check, that the source goes to both + // src and sink through a generic flow + // note that the flow path above ensures src gets to the interim arg, so we just need to + // verify the source to sink. + // TODO: having to copy the generic data flow config into a use-use variant + // should we fix this at the language level to allow use use more intuitively? + // Seems to be a common issue. + GenericDataSourceFlowUseUseFlow::flow(src.getNode(), sink.getNode()) +} + +/** + * A copy of GenericDataSourceFlow but with use-use flows enabled by removing the barrier out + */ +module GenericDataSourceFlowUseUseConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericSourceInstance i).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + sink = any(Crypto::FlowAwareElement other).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module GenericDataSourceFlowUseUseFlow = TaintTracking::Global; + +module WrapperArgFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + // Start from a parameter and not a call to avoid flow going out of + // the call. We want to flow down a call, so start from a parameter + // and barrier flows through returns + exists(Method m | m.getParameter(_) = source.asParameter()) + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getAnInputArtifact().asElement() = sink.asExpr() + ) + or + exists(Crypto::MacOperationNode macOp | macOp.getAnInputArtifact().asElement() = sink.asExpr()) + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isBarrierOut(DataFlow::Node node) { + // stop all flow out of a call return + // TODO: this might be too strict and remove taint flow, need to reassess + node.asExpr() instanceof Call or + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module WrapperArgFlow = TaintTracking::Global; + +predicate encryptWrapperArg(DataFlow::Node n, DataFlow::Node sink) { + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getKeyOperationSubtype() = Crypto::TEncryptMode() and + cipherOp.getAnInputArtifact().asElement() = sink.asExpr() + ) and + ( + exists(Parameter p, DataFlow::Node src | + p = src.asParameter() and + WrapperArgFlow::flow(src, sink) and + n.asExpr() = p.getAnArgument() + ) + or + n = sink // the call the target operation is considered a wrapper arg to itself + ) +} + +predicate decryptWrapperArg(DataFlow::Node n, DataFlow::Node sink) { + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getKeyOperationSubtype() = Crypto::TDecryptMode() and + cipherOp.getAnInputArtifact().asElement() = sink.asExpr() + ) and + ( + exists(Parameter p, DataFlow::Node src | + p = src.asParameter() and + WrapperArgFlow::flow(src, sink) and + n.asExpr() = p.getAnArgument() + ) + or + n = sink // the call the target operation is considered a wrapper arg to itself + ) +} + +predicate macWrapperArg(DataFlow::Node n, DataFlow::Node sink) { + exists(Crypto::MacOperationNode macOp | macOp.getAnInputArtifact().asElement() = sink.asExpr()) and + ( + exists(Parameter p, DataFlow::Node src | + p = src.asParameter() and + WrapperArgFlow::flow(src, sink) and + n.asExpr() = p.getAnArgument() + ) + or + n = sink // the call the target operation is considered a wrapper arg to itself + ) +} + +module ArgToEncryptOrMacConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { exists(Call c | c.getAnArgument() = source.asExpr()) } + + predicate isSink(DataFlow::Node sink) { encryptOrMacSink(sink) } + + // Don't go in to a known out node, this will prevent the plaintext + // from tracing out of cipher operations for example, we just want to trace + // the plaintext to uses. + // NOTE: we are not using a barrier out on input nodes, because + // that would remove 'use-use' flows, which we need + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module ArgToEncryptOrMacFlow = TaintTracking::Global; + +/** + * Target sinks for this query are either encryption operations or mac operation message inputs + */ +predicate encryptOrMacSink(DataFlow::Node n) { + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getKeyOperationSubtype() = Crypto::TEncryptMode() and + cipherOp.getAnInputArtifact().asElement() = n.asExpr() + ) + or + exists(Crypto::MacOperationNode macOp | macOp.getAnInputArtifact().asElement() = n.asExpr()) +} + +/** + * Target sinks for decryption operations + */ +predicate decryptSink(DataFlow::Node n) { + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getKeyOperationSubtype() = Crypto::TDecryptMode() and + cipherOp.getAnInputArtifact().asElement() = n.asExpr() + ) +} + +class EncryptOrMacCallArg extends DataFlow::Node { + boolean isEncryption; + + EncryptOrMacCallArg() { + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getKeyOperationSubtype() = Crypto::TEncryptMode() and + cipherOp.getAnInputArtifact().asElement() = this.asExpr() + ) and + isEncryption = true + or + exists(Crypto::MacOperationNode macOp | macOp.getAnInputArtifact().asElement() = this.asExpr()) and + isEncryption = false + } + + predicate isEncryption() { isEncryption = true } + + predicate isMac() { isEncryption = false } +} + +module PlaintextUseAsMacAndCipherInputConfig implements DataFlow::StateConfigSig { + class FlowState = Option::Option; + + // TODO: can we approximate a message source better? + predicate isSource(DataFlow::Node source, FlowState state) { + // TODO: can we find the 'closest' parameter to the sinks? + // i.e., use a generic source if we have it, but also isolate the + // lowest level in the flow to the closest parameter node in the call graph? + exists(Crypto::GenericSourceNode other | + other.asElement() = CryptoInput::dfn_to_element(source) + ) and + state.isNone() + } + + predicate isSink(DataFlow::Node sink, FlowState state) { + sink.(EncryptOrMacCallArg).isMac() and state.asSome().isEncryption() + or + sink.(EncryptOrMacCallArg).isEncryption() and state.asSome().isMac() + } + + predicate isBarrierOut(DataFlow::Node node, FlowState state) { + // Stop at the first sink for now + isSink(node, state) + } + + // Don't go in to a known out node, this will prevent the plaintext + // from tracing out of cipher operations for example, we just want to trace + // the plaintext to uses. + // NOTE: we are not using a barrier out on input nodes, because + // that would remove 'use-use' flows, which we need + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } + + predicate isAdditionalFlowStep( + DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 + ) { + // TODO: should we consider isSome cases? + state1.isNone() and + ( + encryptWrapperArg(node2, node1) + or + macWrapperArg(node2, node1) + ) and + state2.asSome() = node1 + } +} + +module PlaintextUseAsMacAndCipherInputFlow = + TaintTracking::GlobalWithState; + +module DecryptThenMacConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Crypto::CipherOperationNode cipherOp | + cipherOp.getKeyOperationSubtype() = Crypto::TDecryptMode() and + cipherOp.getAnInputArtifact().asElement() = source.asExpr() + ) + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::MacOperationNode macOp | macOp.getAnInputArtifact().asElement() = sink.asExpr()) + } + + // Don't go in to a known out node, prevents + // from tracing out of an operation + // NOTE: we are not using a barrier out on input nodes, because + // that would remove 'use-use' flows, which we need + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + or + decryptWrapperArg(node2, node1) + } +} + +module DecryptThenMacFlow = TaintTracking::Global; diff --git a/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptThenMac.ql b/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptThenMac.ql new file mode 100644 index 000000000000..21b0be29ed50 --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptThenMac.ql @@ -0,0 +1,19 @@ +/** + * @name Bad MAC order: decrypt then mac + * @description Decryption on cipher text, then MAC on cipher text, is incorrect order + * @id java/quantum/examples/bad-mac-order-decrypt-then-mac + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import BadMacOrder +import DecryptThenMacFlow::PathGraph + +from DecryptThenMacFlow::PathNode src, DecryptThenMacFlow::PathNode sink +where isDecryptThenMacFlow(src, sink) +select sink, src, sink, + "Incorrect decryption and MAC order: " + + "Decryption of cipher text occurs before validation of MAC on cipher text." diff --git a/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptToMac.ql b/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptToMac.ql new file mode 100644 index 000000000000..fb9d8795b4d1 --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/BadMacOrderDecryptToMac.ql @@ -0,0 +1,18 @@ +/** + * @name Bad MAC order: decrypt to mac + * @description MAC should be on a cipher, not a raw message + * @id java/quantum/examples/bad-mac-order-decrypt-to-mac + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import ArtifactFlow::PathGraph +import BadMacOrder + +from ArtifactFlow::PathNode src, ArtifactFlow::PathNode sink +where isDecryptToMacFlow(src, sink) +select sink, src, sink, + "Incorrect decryption and MAC order: decryption output plaintext flows to MAC message input." diff --git a/java/ql/src/experimental/quantum/Examples/BadMacOrderMacOnEncryptPlaintext.ql b/java/ql/src/experimental/quantum/Examples/BadMacOrderMacOnEncryptPlaintext.ql new file mode 100644 index 000000000000..7644167c589a --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/BadMacOrderMacOnEncryptPlaintext.ql @@ -0,0 +1,21 @@ +/** + * @name Bad MAC order: Mac and Encryption share the same plaintext + * @description MAC should be on a cipher, not a raw message + * @id java/quantum/examples/bad-mac-order-encrypt-plaintext-also-in-mac + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import BadMacOrder +import PlaintextUseAsMacAndCipherInputFlow::PathGraph + +from + PlaintextUseAsMacAndCipherInputFlow::PathNode src, + PlaintextUseAsMacAndCipherInputFlow::PathNode sink, EncryptOrMacCallArg arg +where isPlaintextInEncryptionAndMac(src, sink, arg) +select sink, src, sink, + "Incorrect MAC usage: Encryption plaintext also used for MAC. Flow shows plaintext to final use through intermediate mac or encryption operation here $@", + arg.asExpr(), arg.asExpr().toString() diff --git a/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql b/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql index 1aee95152328..b449f118bc34 100644 --- a/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql +++ b/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql @@ -4,7 +4,6 @@ * @kind problem * @problem.severity warning * @security-severity 7.5 - * @precision high * @id java/weak-cryptographic-algorithm-new-model * @tags security * external/cwe/cwe-327 diff --git a/java/ql/src/experimental/quantum/Examples/InsecureIVorNonceSource.ql b/java/ql/src/experimental/quantum/Examples/InsecureIVorNonceSource.ql new file mode 100644 index 000000000000..1c35d50a2d92 --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/InsecureIVorNonceSource.ql @@ -0,0 +1,88 @@ +/** + * @name Insecure nonce/iv (static value or weak random source) + * @id java/quantum/examples/insecure-iv-or-nonce + * @description A nonce/iv is generated from a source that is not secure. This can lead to + * vulnerabilities such as replay attacks or key recovery. Insecure generation + * is any static nonce, or any known insecure source for a nonce/iv if + * the value is used for an encryption operation (decryption operations are ignored + * as the nonce/iv would be provided alongside the ciphertext). + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import experimental.quantum.Language + +module NonceSrcFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericSourceInstance i).getOutputNode() or + source = any(Crypto::ArtifactInstance artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::NonceArtifactNode nonce | sink.asExpr() = nonce.asElement()) + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module NonceSrcFlow = TaintTracking::Global; + +import NonceSrcFlow::PathGraph + +from + Crypto::NonceArtifactNode nonce, Crypto::NodeBase src, Crypto::NodeBase op, string msg, + NonceSrcFlow::PathNode srcNode, NonceSrcFlow::PathNode sinkNode +where + nonce.getSourceNode() = src and + // NOTE: null nonces should be handled seaparately, often used for default values prior to initialization + // failure to initialize should, in practice, lead to a NullPointerException, which is a separate concern + // however there may be APIs where NULL uses a default nonce or action. + not src.asElement() instanceof NullLiteral and + ( + // Case 1: Any constant nonce/iv is bad, regardless of how it is used + src.asElement() instanceof Crypto::GenericConstantSourceInstance and + op = nonce and // binding op but not using it + msg = "Nonce or IV uses constant source $@" + or + // Case 2: The nonce has a non-random source and there is no known operation for the nonce + // assume it is used for encryption + not src.asElement() instanceof SecureRandomnessInstance and + not src.asElement() instanceof Crypto::GenericConstantSourceInstance and + not exists(Crypto::CipherOperationNode o | o.getANonce() = nonce) and + op = nonce and // binding op, but not using it + msg = + "Nonce or IV uses insecure source $@ with no observed nonce usage (assuming could be for encryption)." + or + // Case 3: The nonce has a non-random source and is used in an encryption operation + not src.asElement() instanceof SecureRandomnessInstance and + not src.asElement() instanceof Crypto::GenericConstantSourceInstance and + op.(Crypto::CipherOperationNode).getANonce() = nonce and + ( + op.(Crypto::CipherOperationNode).getKeyOperationSubtype() instanceof Crypto::TEncryptMode + or + op.(Crypto::CipherOperationNode).getKeyOperationSubtype() instanceof Crypto::TWrapMode + ) and + msg = "Nonce or IV uses insecure source $@ at encryption operation $@" + ) and + srcNode.getNode().asExpr() = src.asElement() and + sinkNode.getNode().asExpr() = nonce.asElement() and + NonceSrcFlow::flowPath(srcNode, sinkNode) +select sinkNode, srcNode, sinkNode, msg, src, src.toString(), op, op.toString() diff --git a/java/ql/src/experimental/quantum/Examples/NonAESGCMCipher.ql b/java/ql/src/experimental/quantum/Examples/NonAESGCMCipher.ql new file mode 100644 index 000000000000..affe7917cf29 --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/NonAESGCMCipher.ql @@ -0,0 +1,24 @@ +/** + * @name Cipher not AES-GCM mode + * @id java/quantum/examples/non-aes-gcm + * @description An AES cipher is in use without GCM + * @kind problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import experimental.quantum.Language + +class NonAESGCMAlgorithmNode extends Crypto::KeyOperationAlgorithmNode { + NonAESGCMAlgorithmNode() { + this.getAlgorithmType() = Crypto::KeyOpAlg::TSymmetricCipher(Crypto::KeyOpAlg::AES()) and + this.getModeOfOperation().getModeType() != Crypto::KeyOpAlg::GCM() + } +} + +from Crypto::KeyOperationNode op, Crypto::KeyOperationOutputNode codeNode +where + op.getAKnownAlgorithm() instanceof NonAESGCMAlgorithmNode and + codeNode = op.getAnOutputArtifact() +select op, "Non-AES-GCM instance." diff --git a/java/ql/src/experimental/quantum/Examples/ReusedNonce.ql b/java/ql/src/experimental/quantum/Examples/ReusedNonce.ql new file mode 100644 index 000000000000..54eddd8fc06c --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/ReusedNonce.ql @@ -0,0 +1,88 @@ +/** + * @name Reuse of cryptographic nonce + * @description Reuse of nonce in cryptographic operations can lead to vulnerabilities. + * @id java/quantum/examples/reused-nonce + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import ArtifactReuse + +module NonceSrcFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericSourceInstance i).getOutputNode() or + source = any(Crypto::ArtifactInstance artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::NonceArtifactNode nonce | sink.asExpr() = nonce.asElement()) + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module NonceSrcFlow = TaintTracking::Global; + +import NonceSrcFlow::PathGraph + +from + Crypto::NonceArtifactNode nonce1, Crypto::NonceArtifactNode nonce2, Crypto::NodeBase src, + NonceSrcFlow::PathNode srcNode, NonceSrcFlow::PathNode sinkNode +where + isArtifactReuse(nonce1, nonce2) and + // NOTE: in general we may not know a source, but see possible reuse, + // we are not detecting these cases here (only where the source is the same). + src = nonce1.getSourceNode() and + src = nonce2.getSourceNode() and + // Null literals are typically used for initialization, and if two 'nulls' + // are reused, it is likely an uninitialization path that would result in a NullPointerException. + not src.asElement() instanceof NullLiteral and + // if the nonce is used in an encryption and decryption, ignore that reuse + not exists(Crypto::CipherOperationNode op1, Crypto::CipherOperationNode op2 | + op1 != op2 and + op1.getANonce() = nonce1 and + op2.getANonce() = nonce2 and + ( + ( + op1.getKeyOperationSubtype() instanceof Crypto::TEncryptMode or + op1.getKeyOperationSubtype() instanceof Crypto::TWrapMode + ) and + ( + op2.getKeyOperationSubtype() instanceof Crypto::TDecryptMode or + op2.getKeyOperationSubtype() instanceof Crypto::TUnwrapMode + ) + or + ( + op2.getKeyOperationSubtype() instanceof Crypto::TEncryptMode or + op2.getKeyOperationSubtype() instanceof Crypto::TWrapMode + ) and + ( + op1.getKeyOperationSubtype() instanceof Crypto::TDecryptMode or + op1.getKeyOperationSubtype() instanceof Crypto::TUnwrapMode + ) + ) + ) and + srcNode.getNode().asExpr() = src.asElement() and + sinkNode.getNode().asExpr() = nonce1.asElement() and + NonceSrcFlow::flowPath(srcNode, sinkNode) +select sinkNode, srcNode, sinkNode, "Nonce source is reused, see alternate sink $@", nonce2, + nonce2.toString() diff --git a/java/ql/src/experimental/quantum/Examples/UnknownHash.ql b/java/ql/src/experimental/quantum/Examples/UnknownHash.ql new file mode 100644 index 000000000000..32d8fa3b753f --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/UnknownHash.ql @@ -0,0 +1,19 @@ +/** + * @name Unknown hashes + * @description Finds uses of cryptographic hashing algorithms of unknown type. + * @id java/quantum/examples/unknown-hash + * @kind problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import experimental.quantum.Language + +from Crypto::HashAlgorithmNode alg +where + not exists(alg.getHashType()) + or + alg.getHashType() = Crypto::OtherHashType() +select alg, "Use of unknown hash algorithm." diff --git a/java/ql/src/experimental/quantum/Examples/UnknownIVorNonceSource.ql b/java/ql/src/experimental/quantum/Examples/UnknownIVorNonceSource.ql new file mode 100644 index 000000000000..3537fca594ae --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/UnknownIVorNonceSource.ql @@ -0,0 +1,35 @@ +/** + * @name Unknown nonce/iv source + * @id java/quantum/examples/unknown-iv-or-nonce-source + * @description A nonce/iv is generated from a source that is not secure. Failure to initialize + * an IV or nonce properly can lead to vulnerabilities such as replay attacks or key recovery. + * IV may be unknown at a decryption operation (IV would be provided alongside the ciphertext). + * These cases are ignored. + * @kind problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import experimental.quantum.Language + +from Crypto::NonceArtifactNode nonce, Crypto::NodeBase op, string msg +where + not exists(nonce.getSourceNode()) and + ( + // Nonce not associated with any known cipher operation, assume unknown as insecure + not exists(Crypto::CipherOperationNode o | o.getANonce() = nonce) and + op = nonce and + msg = + "Unknown IV/Nonce initialization source with no observed nonce usage (assuming could be for encryption)." + or + // Nonce associated cipher operation where the mode is not explicitly encryption + op.(Crypto::CipherOperationNode).getANonce() = nonce and + ( + op.(Crypto::CipherOperationNode).getKeyOperationSubtype() instanceof Crypto::TEncryptMode + or + op.(Crypto::CipherOperationNode).getKeyOperationSubtype() instanceof Crypto::TWrapMode + ) and + msg = "Unknown IV/Nonce initialization source at encryption operation $@" + ) +select nonce, msg, op, op.toString() diff --git a/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql b/java/ql/src/experimental/quantum/Examples/UnknownKDFIterationCount.ql similarity index 87% rename from java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql rename to java/ql/src/experimental/quantum/Examples/UnknownKDFIterationCount.ql index 21bca11cc1af..3f8f1306a1d3 100644 --- a/java/ql/src/experimental/quantum/Analysis/UnknownKDFIterationCount.ql +++ b/java/ql/src/experimental/quantum/Examples/UnknownKDFIterationCount.ql @@ -1,10 +1,9 @@ /** * @name Unknown key derivation function iteration count * @description Detects key derivation operations with an unknown iteration count. - * @id java/quantum/unknown-kdf-iteration-count + * @id java/quantum/examples/unknown-kdf-iteration-count * @kind problem - * @precision medium - * @severity warning + * @problem.severity error * @tags quantum * experimental */ diff --git a/java/ql/src/experimental/quantum/Examples/WeakAsymmetricKeyGenSize.ql b/java/ql/src/experimental/quantum/Examples/WeakAsymmetricKeyGenSize.ql new file mode 100644 index 000000000000..ee81e7bd6d0a --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakAsymmetricKeyGenSize.ql @@ -0,0 +1,69 @@ +/** + * @name Weak Asymmetric Key Size + * @id java/quantum/examples/weak-asymmetric-key-gen-size + * @description An asymmetric key of known size is less than 2048 bits for any non-elliptic curve key operation. + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import experimental.quantum.Language + +module KeySizeFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericSourceInstance i).getOutputNode() or + source = any(Crypto::ArtifactInstance artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::KeyCreationOperationNode kgen | + sink = kgen.getKeySizeConsumer().getConsumer().getInputNode() + ) + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module KeySizeFlow = TaintTracking::Global; + +import KeySizeFlow::PathGraph + +from + Crypto::KeyCreationOperationNode keygen, int keySize, Crypto::AlgorithmNode alg, + KeySizeFlow::PathNode srcNode, KeySizeFlow::PathNode sinkNode +where + // ASSUMPTION/NOTE: if the key size is set on a key creation, but the key creation itself is not observed + // (i.e., the size is initialized but the operation not observed) currently we will not + // detect the size. A key creation operation currently must be observed. + keygen.getAKeySizeSource().asElement().(Literal).getValue().toInt() = keySize and + // NOTE: if algorithm is not known (doesn't bind) we need a separate query + // Also note the algorithm may also be re-specified at a use of the key + alg = keygen.getAKnownAlgorithm() and + not alg instanceof Crypto::EllipticCurveNode and // Elliptic curve sizes are handled separately and are more tied directly to the algorithm + not alg.(Crypto::KeyAgreementAlgorithmNode).getKeyAgreementType() = Crypto::ECDH() and // ECDH key sizes should be handled with elliptic curves + alg instanceof Crypto::AsymmetricAlgorithmNode and + keySize < 2048 and + srcNode.getNode().asExpr() = keygen.getAKeySizeSource().asElement() and + sinkNode.getNode() = keygen.getKeySizeConsumer().getConsumer().getInputNode() and + KeySizeFlow::flowPath(srcNode, sinkNode) +select sinkNode, srcNode, sinkNode, + "Use of weak asymmetric key size (" + keySize.toString() + " bits) for algorithm $@", alg, + alg.getAlgorithmName() diff --git a/java/ql/src/experimental/quantum/Examples/WeakBlockModes.ql b/java/ql/src/experimental/quantum/Examples/WeakBlockModes.ql new file mode 100644 index 000000000000..c5fb224ea1f5 --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakBlockModes.ql @@ -0,0 +1,32 @@ +/** + * @name Weak AES Block mode + * @id java/quantum/examples/weak-block-modes + * @description An AES cipher is in use with an insecure block mode + * @kind problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import experimental.quantum.Language + +class WeakAESBlockModeAlgNode extends Crypto::KeyOperationAlgorithmNode { + Crypto::ModeOfOperationAlgorithmNode mode; + + WeakAESBlockModeAlgNode() { + this.getAlgorithmType() = Crypto::KeyOpAlg::TSymmetricCipher(Crypto::KeyOpAlg::AES()) and + mode = super.getModeOfOperation() and + ( + mode.getModeType() = Crypto::KeyOpAlg::ECB() or + mode.getModeType() = Crypto::KeyOpAlg::CFB() or + mode.getModeType() = Crypto::KeyOpAlg::OFB() or + mode.getModeType() = Crypto::KeyOpAlg::CTR() + ) + } + + Crypto::ModeOfOperationAlgorithmNode getMode() { result = mode } +} + +from WeakAESBlockModeAlgNode alg +select alg, "Weak AES block mode instance $@.", alg.getMode(), alg.getMode().toString() diff --git a/java/ql/src/experimental/quantum/Examples/WeakHash.ql b/java/ql/src/experimental/quantum/Examples/WeakHash.ql new file mode 100644 index 000000000000..cb61c2f860aa --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakHash.ql @@ -0,0 +1,16 @@ +/** + * @name Weak hashes + * @description Finds uses of cryptographic hashing algorithms that are unapproved or otherwise weak. + * @id java/quantum/examples/weak-hash + * @kind problem + * @problem.severity error + * @tags external/cwe/cwe-327 + * quantum + * experimental + */ + +import WeakHash + +from Crypto::HashAlgorithmNode alg, Crypto::HashType htype, string msg +where isUnapprovedHash(alg, htype, msg) +select alg, msg diff --git a/java/ql/src/experimental/quantum/Examples/WeakHash.qll b/java/ql/src/experimental/quantum/Examples/WeakHash.qll new file mode 100644 index 000000000000..add6cc870aed --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakHash.qll @@ -0,0 +1,23 @@ +import experimental.quantum.Language + +predicate isUnapprovedHash(Crypto::HashAlgorithmNode alg, Crypto::HashType htype, string msg) { + htype = alg.getHashType() and + ( + (htype != Crypto::SHA2() and htype != Crypto::SHA3()) and + msg = "Use of unapproved hash algorithm or API: " + htype.toString() + "." + or + (htype = Crypto::SHA2() or htype = Crypto::SHA3()) and + not exists(alg.getDigestLength()) and + msg = + "Use of approved hash algorithm or API type " + htype.toString() + " but unknown digest size." + or + exists(int digestLength | + digestLength = alg.getDigestLength() and + (htype = Crypto::SHA2() or htype = Crypto::SHA3()) and + digestLength < 256 and + msg = + "Use of approved hash algorithm or API type " + htype.toString() + " but weak digest size (" + + digestLength + ")." + ) + ) +} diff --git a/java/ql/src/experimental/quantum/Examples/WeakKDFIterationCount.ql b/java/ql/src/experimental/quantum/Examples/WeakKDFIterationCount.ql new file mode 100644 index 000000000000..98f97335eaeb --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakKDFIterationCount.ql @@ -0,0 +1,59 @@ +/** + * @name Weak known key derivation function iteration count + * @description Detects key derivation operations with a known weak iteration count. + * @id java/quantum/examples/weak-kdf-iteration-count + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import experimental.quantum.Language + +module IterationCountConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericSourceInstance i).getOutputNode() or + source = any(Crypto::ArtifactInstance artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::KeyDerivationOperationInstance kdev | + sink = kdev.getIterationCountConsumer().getConsumer().getInputNode() + ) + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module IterationCountFlow = TaintTracking::Global; + +import IterationCountFlow::PathGraph + +from + Crypto::KeyDerivationOperationNode op, Literal l, IterationCountFlow::PathNode srcNode, + IterationCountFlow::PathNode sinkNode +where + op.getIterationCount().asElement() = l and + l.getValue().toInt() < 100000 and + srcNode.getNode().asExpr() = l and + sinkNode.getNode() = op.getIterationCountConsumer().getConsumer().getInputNode() and + IterationCountFlow::flowPath(srcNode, sinkNode) +select sinkNode, srcNode, sinkNode, + "Key derivation operation configures iteration count below 100k: $@", l, l.getValue().toString() diff --git a/java/ql/src/experimental/quantum/Examples/WeakKDFKeySize.ql b/java/ql/src/experimental/quantum/Examples/WeakKDFKeySize.ql new file mode 100644 index 000000000000..3d0be43392f2 --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakKDFKeySize.ql @@ -0,0 +1,59 @@ +/** + * @name Weak known key derivation function output length + * @description Detects key derivation operations with a known weak output length + * @id java/quantum/examples/weak-kdf-key-size + * @kind path-problem + * @problem.severity error + * @tags quantum + * experimental + */ + +import java +import experimental.quantum.Language + +module KeySizeConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source = any(Crypto::GenericSourceInstance i).getOutputNode() or + source = any(Crypto::ArtifactInstance artifact).getOutputNode() + } + + predicate isSink(DataFlow::Node sink) { + exists(Crypto::KeyDerivationOperationInstance kdev | + sink = kdev.getKeySizeConsumer().getConsumer().getInputNode() + ) + } + + predicate isBarrierOut(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getInputNode() + } + + predicate isBarrierIn(DataFlow::Node node) { + node = any(Crypto::FlowAwareElement element).getOutputNode() + } + + predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { + node1.(AdditionalFlowInputStep).getOutput() = node2 + or + exists(MethodCall m | + m.getMethod().hasQualifiedName("java.lang", "String", "getBytes") and + node1.asExpr() = m.getQualifier() and + node2.asExpr() = m + ) + } +} + +module KeySizeFlow = TaintTracking::Global; + +import KeySizeFlow::PathGraph + +from + Crypto::KeyDerivationOperationNode op, Literal l, KeySizeFlow::PathNode srcNode, + KeySizeFlow::PathNode sinkNode +where + op.getOutputKeySize().asElement() = l and + l.getValue().toInt() < 256 and + srcNode.getNode().asExpr() = l and + sinkNode.getNode() = op.getKeySizeConsumer().getConsumer().getInputNode() and + KeySizeFlow::flowPath(srcNode, sinkNode) +select sinkNode, srcNode, sinkNode, + "Key derivation operation configures output key length below 256: $@", l, l.getValue().toString() diff --git a/java/ql/src/experimental/quantum/Examples/WeakSymmetricCipher.ql b/java/ql/src/experimental/quantum/Examples/WeakSymmetricCipher.ql new file mode 100644 index 000000000000..fe08599b6603 --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakSymmetricCipher.ql @@ -0,0 +1,16 @@ +/** + * @name Weak symmetric ciphers + * @description Finds uses of cryptographic symmetric cipher algorithms that are unapproved or otherwise weak. + * @id java/quantum/examples/weak-ciphers + * @kind problem + * @problem.severity error + * @tags external/cwe/cwe-327 + * quantum + * experimental + */ + +import WeakSymmetricCipher + +from Crypto::KeyOperationAlgorithmNode alg, string msg +where isUnapprovedSymmetricCipher(alg, msg) +select alg, msg diff --git a/java/ql/src/experimental/quantum/Examples/WeakSymmetricCipher.qll b/java/ql/src/experimental/quantum/Examples/WeakSymmetricCipher.qll new file mode 100644 index 000000000000..29493b24071d --- /dev/null +++ b/java/ql/src/experimental/quantum/Examples/WeakSymmetricCipher.qll @@ -0,0 +1,25 @@ +import experimental.quantum.Language +import Crypto::KeyOpAlg as KeyOpAlg + +/** + * Holds when the given symmetric cipher algorithm is unapproved or weak. + */ +predicate isUnapprovedSymmetricCipher(Crypto::KeyOperationAlgorithmNode alg, string msg) { + exists(KeyOpAlg::AlgorithmType algType | + algType = alg.getAlgorithmType() and + msg = "Use of unapproved symmetric cipher algorithm or API: " + algType.toString() + "." and + algType != KeyOpAlg::TSymmetricCipher(KeyOpAlg::AES()) and + algType instanceof KeyOpAlg::TSymmetricCipher + ) + // NOTE: an org could decide to disallow very specific algorithms as well, shown below + // ( + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DES()) or + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::TRIPLE_DES()) or + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::DOUBLE_DES()) or + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC2()) or + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::RC4()) or + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::IDEA()) or + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::BLOWFISH()) or + // algType = KeyOpAlg::TSymmetricCipher(KeyOpAlg::SKIPJACK()) + // ) +} diff --git a/java/ql/src/meta/ssa/AmbiguousToString.ql b/java/ql/src/meta/ssa/AmbiguousToString.ql deleted file mode 100644 index 817685cf6097..000000000000 --- a/java/ql/src/meta/ssa/AmbiguousToString.ql +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @name An SSA variable without a unique 'toString()' - * @description An ambiguous 'toString()' indicates overlap in the defining - * sub-classes of 'SsaVariable'. - * @kind problem - * @problem.severity error - * @id java/consistency/non-unique-ssa-tostring - * @tags consistency - */ - -import java -import semmle.code.java.dataflow.SSA - -predicate noToString(SsaVariable v) { not exists(v.toString()) } - -predicate multipleToString(SsaVariable v) { 1 < count(v.toString()) } - -from SsaVariable ssa, ControlFlowNode n, Variable v, string problem -where - ( - noToString(ssa) and problem = "SSA variable without 'toString()' for " - or - multipleToString(ssa) and problem = "SSA variable with multiple 'toString()' results for " - ) and - n = ssa.getCfgNode() and - v = ssa.getSourceVariable().getVariable() -select n, problem + v diff --git a/java/ql/src/meta/ssa/TooFewPhiInputs.ql b/java/ql/src/meta/ssa/TooFewPhiInputs.ql deleted file mode 100644 index 3bf75a91856c..000000000000 --- a/java/ql/src/meta/ssa/TooFewPhiInputs.ql +++ /dev/null @@ -1,17 +0,0 @@ -/** - * @name A phi node without two or more inputs - * @description A phi node should have at least two inputs. - * @kind problem - * @problem.severity error - * @id java/consistency/too-few-phi-inputs - * @tags consistency - */ - -import java -import semmle.code.java.dataflow.SSA - -from SsaPhiNode phi, int inputs -where - inputs = count(SsaVariable v | v = phi.getAPhiInput()) and - inputs < 2 -select phi, "Phi node for " + phi.getSourceVariable() + " has only " + inputs + " inputs." diff --git a/java/ql/src/meta/ssa/UncertainDefWithoutPrior.ql b/java/ql/src/meta/ssa/UncertainDefWithoutPrior.ql deleted file mode 100644 index 1979c218ac2a..000000000000 --- a/java/ql/src/meta/ssa/UncertainDefWithoutPrior.ql +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @name An uncertain SSA update without a prior definition - * @description An uncertain SSA update may retain its previous value - * and should therefore have a prior definition. - * @kind problem - * @problem.severity error - * @id java/consistency/uncertain-ssa-update-without-prior-def - * @tags consistency - */ - -import java -import semmle.code.java.dataflow.SSA - -predicate live(SsaVariable v) { - exists(v.getAUse()) - or - exists(SsaPhiNode phi | live(phi) and phi.getAPhiInput() = v) - or - exists(SsaUncertainImplicitUpdate upd | live(upd) and upd.getPriorDef() = v) -} - -from SsaUncertainImplicitUpdate upd -where - live(upd) and - not exists(upd.getPriorDef()) -select upd, "No prior definition of " + upd diff --git a/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql b/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql deleted file mode 100644 index 76f6ee37fb1c..000000000000 --- a/java/ql/src/meta/ssa/UseWithoutUniqueSsaVariable.ql +++ /dev/null @@ -1,52 +0,0 @@ -/** - * @name A variable use without a unique SSA variable - * @description Every variable use that is sufficiently trackable - * should have a unique associated SSA variable. - * @kind problem - * @problem.severity error - * @id java/consistency/use-without-unique-ssa-variable - * @tags consistency - */ - -import java -import semmle.code.java.dataflow.SSA - -class SsaConvertibleReadAccess extends VarRead { - SsaConvertibleReadAccess() { - this.getEnclosingCallable().getBody().getBasicBlock().getASuccessor*() = this.getBasicBlock() and - ( - not exists(this.getQualifier()) - or - this.getVariable() instanceof LocalScopeVariable - or - this.getVariable().(Field).isStatic() - or - exists(Expr q | q = this.getQualifier() | - q instanceof ThisAccess or - q instanceof SuperAccess or - q instanceof SsaConvertibleReadAccess - ) - ) - } -} - -predicate accessWithoutSourceVariable(SsaConvertibleReadAccess va) { - not exists(SsaSourceVariable v | v.getAnAccess() = va) -} - -predicate readAccessWithoutSsaVariable(SsaConvertibleReadAccess va) { - not exists(SsaVariable v | v.getAUse() = va) -} - -predicate readAccessWithAmbiguousSsaVariable(SsaConvertibleReadAccess va) { - 1 < strictcount(SsaVariable v | v.getAUse() = va) -} - -from SsaConvertibleReadAccess va, string problem -where - accessWithoutSourceVariable(va) and problem = "No source variable" - or - readAccessWithoutSsaVariable(va) and problem = "No SSA variable" - or - readAccessWithAmbiguousSsaVariable(va) and problem = "Multiple SSA variables" -select va, problem diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index b1ee0395fb2e..faf088b7a4a4 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.8.2-dev +version: 1.8.3-dev groups: - java - queries diff --git a/java/ql/test/experimental/library-tests/quantum/node_edges.expected b/java/ql/test/experimental/library-tests/quantum/node_edges.expected index 94e4d2bf0561..905304ac7715 100644 --- a/java/ql/test/experimental/library-tests/quantum/node_edges.expected +++ b/java/ql/test/experimental/library-tests/quantum/node_edges.expected @@ -29,7 +29,6 @@ | jca/AesWrapAndPBEWith.java:109:27:109:54 | KeyDerivation | Output | jca/AesWrapAndPBEWith.java:109:27:109:54 | Key | | jca/AesWrapAndPBEWith.java:109:27:109:54 | KeyDerivation | Salt | jca/AesWrapAndPBEWith.java:107:66:107:69 | Salt | | jca/AesWrapAndPBEWith.java:123:42:123:63 | Message | Source | jca/AesWrapAndPBEWith.java:200:55:200:69 | Parameter | -| jca/AesWrapAndPBEWith.java:123:66:123:69 | Salt | Source | jca/AesWrapAndPBEWith.java:122:9:122:42 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:123:66:123:69 | Salt | Source | jca/AesWrapAndPBEWith.java:122:38:122:41 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:124:65:124:86 | HMACAlgorithm | H | jca/AesWrapAndPBEWith.java:124:65:124:86 | HashAlgorithm | | jca/AesWrapAndPBEWith.java:124:65:124:86 | KeyDerivationAlgorithm | PRF | jca/AesWrapAndPBEWith.java:124:65:124:86 | HMACAlgorithm | @@ -38,7 +37,6 @@ | jca/AesWrapAndPBEWith.java:125:27:125:54 | KeyDerivation | Output | jca/AesWrapAndPBEWith.java:125:27:125:54 | Key | | jca/AesWrapAndPBEWith.java:125:27:125:54 | KeyDerivation | Salt | jca/AesWrapAndPBEWith.java:123:66:123:69 | Salt | | jca/AesWrapAndPBEWith.java:141:42:141:63 | Message | Source | jca/AesWrapAndPBEWith.java:200:55:200:69 | Parameter | -| jca/AesWrapAndPBEWith.java:141:66:141:69 | Salt | Source | jca/AesWrapAndPBEWith.java:140:9:140:42 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:141:66:141:69 | Salt | Source | jca/AesWrapAndPBEWith.java:140:38:140:41 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:143:28:143:55 | KeyDerivation | Algorithm | jca/AesWrapAndPBEWith.java:142:65:142:98 | KeyDerivationAlgorithm | | jca/AesWrapAndPBEWith.java:143:28:143:55 | KeyDerivation | Input | jca/AesWrapAndPBEWith.java:141:42:141:63 | Message | @@ -46,8 +44,7 @@ | jca/AesWrapAndPBEWith.java:143:28:143:55 | KeyDerivation | Salt | jca/AesWrapAndPBEWith.java:141:66:141:69 | Salt | | jca/AesWrapAndPBEWith.java:146:44:146:65 | KeyOperationAlgorithm | Mode | jca/AesWrapAndPBEWith.java:146:44:146:65 | ModeOfOperation | | jca/AesWrapAndPBEWith.java:146:44:146:65 | KeyOperationAlgorithm | Padding | jca/AesWrapAndPBEWith.java:146:44:146:65 | PaddingAlgorithm | -| jca/AesWrapAndPBEWith.java:150:42:150:47 | Key | Source | jca/AesWrapAndPBEWith.java:150:42:150:47 | Key | -| jca/AesWrapAndPBEWith.java:150:50:150:55 | Nonce | Source | jca/AesWrapAndPBEWith.java:148:9:148:40 | RandomNumberGeneration | +| jca/AesWrapAndPBEWith.java:150:42:150:47 | Key | Source | jca/AesWrapAndPBEWith.java:143:28:143:55 | Key | | jca/AesWrapAndPBEWith.java:150:50:150:55 | Nonce | Source | jca/AesWrapAndPBEWith.java:148:38:148:39 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:151:29:151:64 | EncryptOperation | Algorithm | jca/AesWrapAndPBEWith.java:146:44:146:65 | KeyOperationAlgorithm | | jca/AesWrapAndPBEWith.java:151:29:151:64 | EncryptOperation | Input | jca/AesWrapAndPBEWith.java:151:44:151:63 | Message | @@ -56,7 +53,6 @@ | jca/AesWrapAndPBEWith.java:151:29:151:64 | EncryptOperation | Output | jca/AesWrapAndPBEWith.java:151:29:151:64 | KeyOperationOutput | | jca/AesWrapAndPBEWith.java:151:44:151:63 | Message | Source | jca/AesWrapAndPBEWith.java:200:72:200:87 | Parameter | | jca/AesWrapAndPBEWith.java:168:42:168:63 | Message | Source | jca/AesWrapAndPBEWith.java:200:55:200:69 | Parameter | -| jca/AesWrapAndPBEWith.java:168:66:168:69 | Salt | Source | jca/AesWrapAndPBEWith.java:167:9:167:42 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:168:66:168:69 | Salt | Source | jca/AesWrapAndPBEWith.java:167:38:167:41 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:170:28:170:55 | KeyDerivation | Algorithm | jca/AesWrapAndPBEWith.java:169:65:169:96 | KeyDerivationAlgorithm | | jca/AesWrapAndPBEWith.java:170:28:170:55 | KeyDerivation | Input | jca/AesWrapAndPBEWith.java:168:42:168:63 | Message | @@ -64,8 +60,7 @@ | jca/AesWrapAndPBEWith.java:170:28:170:55 | KeyDerivation | Salt | jca/AesWrapAndPBEWith.java:168:66:168:69 | Salt | | jca/AesWrapAndPBEWith.java:173:44:173:65 | KeyOperationAlgorithm | Mode | jca/AesWrapAndPBEWith.java:173:44:173:65 | ModeOfOperation | | jca/AesWrapAndPBEWith.java:173:44:173:65 | KeyOperationAlgorithm | Padding | jca/AesWrapAndPBEWith.java:173:44:173:65 | PaddingAlgorithm | -| jca/AesWrapAndPBEWith.java:177:42:177:47 | Key | Source | jca/AesWrapAndPBEWith.java:177:42:177:47 | Key | -| jca/AesWrapAndPBEWith.java:177:50:177:55 | Nonce | Source | jca/AesWrapAndPBEWith.java:175:9:175:40 | RandomNumberGeneration | +| jca/AesWrapAndPBEWith.java:177:42:177:47 | Key | Source | jca/AesWrapAndPBEWith.java:170:28:170:55 | Key | | jca/AesWrapAndPBEWith.java:177:50:177:55 | Nonce | Source | jca/AesWrapAndPBEWith.java:175:38:175:39 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:178:29:178:64 | EncryptOperation | Algorithm | jca/AesWrapAndPBEWith.java:173:44:173:65 | KeyOperationAlgorithm | | jca/AesWrapAndPBEWith.java:178:29:178:64 | EncryptOperation | Input | jca/AesWrapAndPBEWith.java:178:44:178:63 | Message | @@ -112,7 +107,6 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | KeyOperationAlgorithm | Mode | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | ModeOfOperation | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | KeyOperationAlgorithm | Padding | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | PaddingAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:173:45:173:50 | Key | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:173:45:173:50 | Key | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:173:53:173:81 | Nonce | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:9:171:40 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:173:53:173:81 | Nonce | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:38:171:39 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:174:29:174:56 | EncryptOperation | Algorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | KeyOperationAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:174:29:174:56 | EncryptOperation | Input | jca/AsymmetricEncryptionMacHybridCryptosystem.java:174:47:174:55 | Message | @@ -142,7 +136,6 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | KeyOperationAlgorithm | Mode | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | ModeOfOperation | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | KeyOperationAlgorithm | Padding | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | PaddingAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:222:42:222:47 | Key | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:222:42:222:47 | Key | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:222:50:222:78 | Nonce | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:9:220:40 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:222:50:222:78 | Nonce | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:38:220:39 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:223:29:223:53 | EncryptOperation | Algorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | KeyOperationAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:223:29:223:53 | EncryptOperation | Input | jca/AsymmetricEncryptionMacHybridCryptosystem.java:223:44:223:52 | Message | @@ -160,34 +153,35 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | EncryptOperation | Nonce | jca/AsymmetricEncryptionMacHybridCryptosystem.java:245:50:245:83 | Nonce | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | EncryptOperation | Output | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | KeyOperationOutput | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:44:246:52 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:271:58:271:73 | Parameter | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | Mode | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | Padding | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | Key | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | Key | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | Algorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | HashAlgorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HMACAlgorithm | H | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HashAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | Key | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:322:16:322:31 | Key | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | Algorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HMACAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | HashAlgorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HashAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | Input | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | Key | jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | Key | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | Message | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | Nonce | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | Output | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | KeyOperationOutput | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | Mode | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | Padding | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | Key | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | Key | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | Algorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | HashAlgorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:38:171:39 | RandomNumberGeneration | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:174:29:174:56 | KeyOperationOutput | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:38:220:39 | RandomNumberGeneration | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:223:29:223:53 | KeyOperationOutput | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HMACAlgorithm | H | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HashAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | Key | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:322:16:322:31 | Key | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | Algorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HMACAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | HashAlgorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HashAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | Input | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:28:309:45 | Message | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | Key | jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | Key | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | Message | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:28:309:45 | Message | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | Nonce | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | Output | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | KeyOperationOutput | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:28:309:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:28:309:45 | Message | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:28:309:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:197:29:197:56 | KeyOperationOutput | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:28:309:45 | Message | Source | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | KeyOperationOutput | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:322:16:322:31 | KeyGeneration | Algorithm | jca/AsymmetricEncryptionMacHybridCryptosystem.java:320:52:320:56 | KeyOperationAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:322:16:322:31 | KeyGeneration | Output | jca/AsymmetricEncryptionMacHybridCryptosystem.java:322:16:322:31 | Key | | jca/ChainedEncryptionTest.java:19:44:19:62 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:19:44:19:62 | ModeOfOperation | | jca/ChainedEncryptionTest.java:19:44:19:62 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:19:44:19:62 | PaddingAlgorithm | | jca/ChainedEncryptionTest.java:23:42:23:44 | Key | Source | jca/ChainedEncryptionTest.java:119:28:119:47 | Key | -| jca/ChainedEncryptionTest.java:23:47:23:50 | Nonce | Source | jca/ChainedEncryptionTest.java:21:9:21:40 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:23:47:23:50 | Nonce | Source | jca/ChainedEncryptionTest.java:21:38:21:39 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:24:29:24:53 | EncryptOperation | Algorithm | jca/ChainedEncryptionTest.java:19:44:19:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:24:29:24:53 | EncryptOperation | Input | jca/ChainedEncryptionTest.java:24:44:24:52 | Message | @@ -198,34 +192,36 @@ | jca/ChainedEncryptionTest.java:32:44:32:62 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:32:44:32:62 | ModeOfOperation | | jca/ChainedEncryptionTest.java:32:44:32:62 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:32:44:32:62 | PaddingAlgorithm | | jca/ChainedEncryptionTest.java:34:42:34:44 | Key | Source | jca/ChainedEncryptionTest.java:119:28:119:47 | Key | -| jca/ChainedEncryptionTest.java:34:47:34:50 | Nonce | Source | jca/ChainedEncryptionTest.java:34:47:34:50 | Nonce | +| jca/ChainedEncryptionTest.java:34:47:34:50 | Nonce | Source | jca/ChainedEncryptionTest.java:54:16:54:41 | KeyOperationOutput | | jca/ChainedEncryptionTest.java:35:16:35:41 | DecryptOperation | Algorithm | jca/ChainedEncryptionTest.java:32:44:32:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:35:16:35:41 | DecryptOperation | Input | jca/ChainedEncryptionTest.java:35:31:35:40 | Message | | jca/ChainedEncryptionTest.java:35:16:35:41 | DecryptOperation | Key | jca/ChainedEncryptionTest.java:34:42:34:44 | Key | | jca/ChainedEncryptionTest.java:35:16:35:41 | DecryptOperation | Nonce | jca/ChainedEncryptionTest.java:34:47:34:50 | Nonce | | jca/ChainedEncryptionTest.java:35:16:35:41 | DecryptOperation | Output | jca/ChainedEncryptionTest.java:35:16:35:41 | KeyOperationOutput | -| jca/ChainedEncryptionTest.java:35:31:35:40 | Message | Source | jca/ChainedEncryptionTest.java:35:31:35:40 | Message | +| jca/ChainedEncryptionTest.java:35:31:35:40 | Message | Source | jca/ChainedEncryptionTest.java:54:16:54:41 | KeyOperationOutput | | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:43:42:43:44 | Key | Source | jca/ChainedEncryptionTest.java:124:31:124:53 | Key | -| jca/ChainedEncryptionTest.java:43:47:43:72 | Nonce | Source | jca/ChainedEncryptionTest.java:42:9:42:43 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:43:47:43:72 | Nonce | Source | jca/ChainedEncryptionTest.java:42:38:42:42 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:44:29:44:53 | EncryptOperation | Algorithm | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:44:29:44:53 | EncryptOperation | Input | jca/ChainedEncryptionTest.java:44:44:44:52 | Message | | jca/ChainedEncryptionTest.java:44:29:44:53 | EncryptOperation | Key | jca/ChainedEncryptionTest.java:43:42:43:44 | Key | | jca/ChainedEncryptionTest.java:44:29:44:53 | EncryptOperation | Nonce | jca/ChainedEncryptionTest.java:43:47:43:72 | Nonce | | jca/ChainedEncryptionTest.java:44:29:44:53 | EncryptOperation | Output | jca/ChainedEncryptionTest.java:44:29:44:53 | KeyOperationOutput | -| jca/ChainedEncryptionTest.java:44:44:44:52 | Message | Source | jca/ChainedEncryptionTest.java:44:44:44:52 | Message | +| jca/ChainedEncryptionTest.java:44:44:44:52 | Message | Source | jca/ChainedEncryptionTest.java:21:38:21:39 | RandomNumberGeneration | +| jca/ChainedEncryptionTest.java:44:44:44:52 | Message | Source | jca/ChainedEncryptionTest.java:24:29:24:53 | KeyOperationOutput | | jca/ChainedEncryptionTest.java:52:44:52:62 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:52:44:52:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:52:44:52:62 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:52:44:52:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:53:42:53:44 | Key | Source | jca/ChainedEncryptionTest.java:124:31:124:53 | Key | -| jca/ChainedEncryptionTest.java:53:47:53:72 | Nonce | Source | jca/ChainedEncryptionTest.java:53:47:53:72 | Nonce | +| jca/ChainedEncryptionTest.java:53:47:53:72 | Nonce | Source | jca/ChainedEncryptionTest.java:42:38:42:42 | RandomNumberGeneration | +| jca/ChainedEncryptionTest.java:53:47:53:72 | Nonce | Source | jca/ChainedEncryptionTest.java:44:29:44:53 | KeyOperationOutput | | jca/ChainedEncryptionTest.java:54:16:54:41 | DecryptOperation | Algorithm | jca/ChainedEncryptionTest.java:52:44:52:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:54:16:54:41 | DecryptOperation | Input | jca/ChainedEncryptionTest.java:54:31:54:40 | Message | | jca/ChainedEncryptionTest.java:54:16:54:41 | DecryptOperation | Key | jca/ChainedEncryptionTest.java:53:42:53:44 | Key | | jca/ChainedEncryptionTest.java:54:16:54:41 | DecryptOperation | Nonce | jca/ChainedEncryptionTest.java:53:47:53:72 | Nonce | | jca/ChainedEncryptionTest.java:54:16:54:41 | DecryptOperation | Output | jca/ChainedEncryptionTest.java:54:16:54:41 | KeyOperationOutput | -| jca/ChainedEncryptionTest.java:54:31:54:40 | Message | Source | jca/ChainedEncryptionTest.java:54:31:54:40 | Message | +| jca/ChainedEncryptionTest.java:54:31:54:40 | Message | Source | jca/ChainedEncryptionTest.java:42:38:42:42 | RandomNumberGeneration | +| jca/ChainedEncryptionTest.java:54:31:54:40 | Message | Source | jca/ChainedEncryptionTest.java:44:29:44:53 | KeyOperationOutput | | jca/ChainedEncryptionTest.java:81:30:81:49 | KeyGeneration | Algorithm | jca/ChainedEncryptionTest.java:79:56:79:60 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:81:30:81:49 | KeyGeneration | Output | jca/ChainedEncryptionTest.java:81:30:81:49 | Key | | jca/ChainedEncryptionTest.java:85:30:85:52 | KeyGeneration | Algorithm | jca/ChainedEncryptionTest.java:83:59:83:68 | KeyOperationAlgorithm | @@ -233,7 +229,6 @@ | jca/ChainedEncryptionTest.java:90:47:90:65 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:90:47:90:65 | ModeOfOperation | | jca/ChainedEncryptionTest.java:90:47:90:65 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:90:47:90:65 | PaddingAlgorithm | | jca/ChainedEncryptionTest.java:92:45:92:52 | Key | Source | jca/ChainedEncryptionTest.java:81:30:81:49 | Key | -| jca/ChainedEncryptionTest.java:92:55:92:61 | Nonce | Source | jca/ChainedEncryptionTest.java:89:9:89:43 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:92:55:92:61 | Nonce | Source | jca/ChainedEncryptionTest.java:89:38:89:42 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:93:34:93:62 | EncryptOperation | Algorithm | jca/ChainedEncryptionTest.java:90:47:90:65 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:93:34:93:62 | EncryptOperation | Input | jca/ChainedEncryptionTest.java:93:52:93:61 | Message | @@ -244,7 +239,6 @@ | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:99:48:99:55 | Key | Source | jca/ChainedEncryptionTest.java:85:30:85:52 | Key | -| jca/ChainedEncryptionTest.java:99:58:99:89 | Nonce | Source | jca/ChainedEncryptionTest.java:97:9:97:49 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:99:58:99:89 | Nonce | Source | jca/ChainedEncryptionTest.java:97:38:97:48 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:100:34:100:70 | EncryptOperation | Algorithm | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:100:34:100:70 | EncryptOperation | Input | jca/ChainedEncryptionTest.java:100:55:100:69 | Message | @@ -255,7 +249,6 @@ | jca/ChainedEncryptionTest.java:103:47:103:65 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:103:47:103:65 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:103:47:103:65 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:103:47:103:65 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:104:45:104:52 | Key | Source | jca/ChainedEncryptionTest.java:104:45:104:52 | Key | -| jca/ChainedEncryptionTest.java:104:55:104:86 | Nonce | Source | jca/ChainedEncryptionTest.java:97:9:97:49 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:104:55:104:86 | Nonce | Source | jca/ChainedEncryptionTest.java:97:38:97:48 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:105:43:105:76 | DecryptOperation | Algorithm | jca/ChainedEncryptionTest.java:103:47:103:65 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:105:43:105:76 | DecryptOperation | Input | jca/ChainedEncryptionTest.java:105:61:105:75 | Message | @@ -266,7 +259,6 @@ | jca/ChainedEncryptionTest.java:108:44:108:62 | KeyOperationAlgorithm | Mode | jca/ChainedEncryptionTest.java:108:44:108:62 | ModeOfOperation | | jca/ChainedEncryptionTest.java:108:44:108:62 | KeyOperationAlgorithm | Padding | jca/ChainedEncryptionTest.java:108:44:108:62 | PaddingAlgorithm | | jca/ChainedEncryptionTest.java:109:42:109:49 | Key | Source | jca/ChainedEncryptionTest.java:109:42:109:49 | Key | -| jca/ChainedEncryptionTest.java:109:52:109:83 | Nonce | Source | jca/ChainedEncryptionTest.java:89:9:89:43 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:109:52:109:83 | Nonce | Source | jca/ChainedEncryptionTest.java:89:38:89:42 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:110:37:110:76 | DecryptOperation | Algorithm | jca/ChainedEncryptionTest.java:108:44:108:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:110:37:110:76 | DecryptOperation | Input | jca/ChainedEncryptionTest.java:110:52:110:75 | Message | @@ -293,7 +285,6 @@ | jca/Digest.java:75:23:75:62 | HashOperation | Digest | jca/Digest.java:75:23:75:62 | Digest | | jca/Digest.java:75:23:75:62 | HashOperation | Message | jca/Digest.java:75:43:75:61 | Message | | jca/Digest.java:75:43:75:61 | Message | Source | jca/Digest.java:73:49:73:63 | Parameter | -| jca/Digest.java:86:23:86:26 | Message | Source | jca/Digest.java:253:9:253:42 | RandomNumberGeneration | | jca/Digest.java:86:23:86:26 | Message | Source | jca/Digest.java:253:38:253:41 | RandomNumberGeneration | | jca/Digest.java:87:23:87:56 | Digest | Source | jca/Digest.java:87:23:87:56 | Digest | | jca/Digest.java:87:23:87:56 | HashOperation | Algorithm | jca/Digest.java:85:58:85:66 | HashAlgorithm | @@ -302,7 +293,6 @@ | jca/Digest.java:87:23:87:56 | HashOperation | Message | jca/Digest.java:87:37:87:55 | Message | | jca/Digest.java:87:37:87:55 | Message | Source | jca/Digest.java:83:37:83:51 | Parameter | | jca/Digest.java:97:42:97:63 | Message | Source | jca/Digest.java:95:37:95:51 | Parameter | -| jca/Digest.java:97:66:97:69 | Salt | Source | jca/Digest.java:253:9:253:42 | RandomNumberGeneration | | jca/Digest.java:97:66:97:69 | Salt | Source | jca/Digest.java:253:38:253:41 | RandomNumberGeneration | | jca/Digest.java:98:65:98:86 | HMACAlgorithm | H | jca/Digest.java:98:65:98:86 | HashAlgorithm | | jca/Digest.java:98:65:98:86 | KeyDerivationAlgorithm | PRF | jca/Digest.java:98:65:98:86 | HMACAlgorithm | @@ -315,11 +305,10 @@ | jca/Digest.java:109:23:109:57 | HashOperation | Digest | jca/Digest.java:109:23:109:57 | Digest | | jca/Digest.java:109:23:109:57 | HashOperation | Message | jca/Digest.java:109:41:109:56 | Message | | jca/Digest.java:109:41:109:56 | Message | Source | jca/Digest.java:107:40:107:51 | Parameter | -| jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | Mode | jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | -| jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | Padding | jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | +| jca/Digest.java:118:36:118:47 | HMACAlgorithm | H | jca/Digest.java:118:36:118:47 | HashAlgorithm | | jca/Digest.java:120:19:120:27 | Key | Source | jca/Digest.java:117:49:117:58 | Parameter | -| jca/Digest.java:121:23:121:52 | MACOperation | Algorithm | jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | -| jca/Digest.java:121:23:121:52 | MACOperation | HashAlgorithm | jca/Digest.java:121:23:121:52 | MACOperation | +| jca/Digest.java:121:23:121:52 | MACOperation | Algorithm | jca/Digest.java:118:36:118:47 | HMACAlgorithm | +| jca/Digest.java:121:23:121:52 | MACOperation | HashAlgorithm | jca/Digest.java:118:36:118:47 | HashAlgorithm | | jca/Digest.java:121:23:121:52 | MACOperation | Input | jca/Digest.java:121:36:121:51 | Message | | jca/Digest.java:121:23:121:52 | MACOperation | Key | jca/Digest.java:120:19:120:27 | Key | | jca/Digest.java:121:23:121:52 | MACOperation | Message | jca/Digest.java:121:36:121:51 | Message | @@ -328,7 +317,13 @@ | jca/Digest.java:121:36:121:51 | Message | Source | jca/Digest.java:117:35:117:46 | Parameter | | jca/Digest.java:140:44:140:62 | KeyOperationAlgorithm | Mode | jca/Digest.java:140:44:140:62 | ModeOfOperation | | jca/Digest.java:140:44:140:62 | KeyOperationAlgorithm | Padding | jca/Digest.java:140:44:140:62 | PaddingAlgorithm | -| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:141:42:141:44 | Key | +| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:55:23:55:66 | Digest | +| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:65:23:65:70 | Digest | +| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:75:23:75:62 | Digest | +| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:87:23:87:56 | Digest | +| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:99:23:99:50 | Key | +| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:109:23:109:57 | Digest | +| jca/Digest.java:141:42:141:44 | Key | Source | jca/Digest.java:121:23:121:52 | KeyOperationOutput | | jca/Digest.java:142:32:142:74 | EncryptOperation | Algorithm | jca/Digest.java:140:44:140:62 | KeyOperationAlgorithm | | jca/Digest.java:142:32:142:74 | EncryptOperation | Input | jca/Digest.java:142:47:142:73 | Message | | jca/Digest.java:142:32:142:74 | EncryptOperation | Key | jca/Digest.java:141:42:141:44 | Key | @@ -336,7 +331,6 @@ | jca/Digest.java:142:32:142:74 | EncryptOperation | Output | jca/Digest.java:142:32:142:74 | KeyOperationOutput | | jca/Digest.java:142:47:142:73 | Message | Source | jca/Digest.java:142:47:142:62 | Constant | | jca/Digest.java:176:42:176:71 | Message | Source | jca/Digest.java:171:50:171:62 | Parameter | -| jca/Digest.java:176:74:176:77 | Salt | Source | jca/Digest.java:253:9:253:42 | RandomNumberGeneration | | jca/Digest.java:176:74:176:77 | Salt | Source | jca/Digest.java:253:38:253:41 | RandomNumberGeneration | | jca/Digest.java:177:65:177:86 | HMACAlgorithm | H | jca/Digest.java:177:65:177:86 | HashAlgorithm | | jca/Digest.java:177:65:177:86 | KeyDerivationAlgorithm | PRF | jca/Digest.java:177:65:177:86 | HMACAlgorithm | @@ -353,11 +347,10 @@ | jca/Digest.java:188:29:188:78 | EncryptOperation | Nonce | jca/Digest.java:188:29:188:78 | EncryptOperation | | jca/Digest.java:188:29:188:78 | EncryptOperation | Output | jca/Digest.java:188:29:188:78 | KeyOperationOutput | | jca/Digest.java:188:44:188:77 | Message | Source | jca/Digest.java:188:44:188:66 | Constant | -| jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | Mode | jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | -| jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | Padding | jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | +| jca/Digest.java:191:35:191:46 | HMACAlgorithm | H | jca/Digest.java:191:35:191:46 | HashAlgorithm | | jca/Digest.java:192:18:192:23 | Key | Source | jca/Digest.java:192:18:192:23 | Key | -| jca/Digest.java:193:30:193:52 | MACOperation | Algorithm | jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | -| jca/Digest.java:193:30:193:52 | MACOperation | HashAlgorithm | jca/Digest.java:193:30:193:52 | MACOperation | +| jca/Digest.java:193:30:193:52 | MACOperation | Algorithm | jca/Digest.java:191:35:191:46 | HMACAlgorithm | +| jca/Digest.java:193:30:193:52 | MACOperation | HashAlgorithm | jca/Digest.java:191:35:191:46 | HashAlgorithm | | jca/Digest.java:193:30:193:52 | MACOperation | Input | jca/Digest.java:193:42:193:51 | Message | | jca/Digest.java:193:30:193:52 | MACOperation | Key | jca/Digest.java:192:18:192:23 | Key | | jca/Digest.java:193:30:193:52 | MACOperation | Message | jca/Digest.java:193:42:193:51 | Message | @@ -396,8 +389,10 @@ | jca/EllipticCurve1.java:106:16:106:36 | Key | Algorithm | jca/EllipticCurve1.java:105:66:105:76 | Constant | | jca/EllipticCurve1.java:106:16:106:36 | KeyGeneration | Algorithm | jca/EllipticCurve1.java:105:66:105:76 | Constant | | jca/EllipticCurve1.java:106:16:106:36 | KeyGeneration | Output | jca/EllipticCurve1.java:106:16:106:36 | Key | -| jca/EllipticCurve1.java:115:16:115:36 | Key | Algorithm | jca/EllipticCurve1.java:114:61:114:69 | Constant | -| jca/EllipticCurve1.java:115:16:115:36 | KeyGeneration | Algorithm | jca/EllipticCurve1.java:114:61:114:69 | Constant | +| jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | Mode | jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | +| jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | Padding | jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | +| jca/EllipticCurve1.java:115:16:115:36 | Key | Algorithm | jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | +| jca/EllipticCurve1.java:115:16:115:36 | KeyGeneration | Algorithm | jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | | jca/EllipticCurve1.java:115:16:115:36 | KeyGeneration | Output | jca/EllipticCurve1.java:115:16:115:36 | Key | | jca/EllipticCurve2.java:47:16:47:36 | Key | Algorithm | jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | | jca/EllipticCurve2.java:47:16:47:36 | KeyGeneration | Algorithm | jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | @@ -411,8 +406,10 @@ | jca/EllipticCurve2.java:73:16:73:36 | Key | Algorithm | jca/EllipticCurve2.java:72:61:72:68 | KeyAgreementAlgorithm | | jca/EllipticCurve2.java:73:16:73:36 | KeyGeneration | Algorithm | jca/EllipticCurve2.java:72:61:72:68 | KeyAgreementAlgorithm | | jca/EllipticCurve2.java:73:16:73:36 | KeyGeneration | Output | jca/EllipticCurve2.java:73:16:73:36 | Key | -| jca/EllipticCurve2.java:81:16:81:36 | Key | Algorithm | jca/EllipticCurve2.java:80:61:80:69 | Constant | -| jca/EllipticCurve2.java:81:16:81:36 | KeyGeneration | Algorithm | jca/EllipticCurve2.java:80:61:80:69 | Constant | +| jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | Mode | jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | +| jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | Padding | jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | +| jca/EllipticCurve2.java:81:16:81:36 | Key | Algorithm | jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | +| jca/EllipticCurve2.java:81:16:81:36 | KeyGeneration | Algorithm | jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | | jca/EllipticCurve2.java:81:16:81:36 | KeyGeneration | Output | jca/EllipticCurve2.java:81:16:81:36 | Key | | jca/EllipticCurve2.java:106:17:106:36 | Key | Source | jca/EllipticCurve2.java:47:16:47:36 | Key | | jca/EllipticCurve2.java:107:20:107:36 | Key | Source | jca/EllipticCurve2.java:47:16:47:36 | Key | @@ -481,7 +478,6 @@ | jca/EllipticCurve2.java:219:44:219:62 | KeyOperationAlgorithm | Mode | jca/EllipticCurve2.java:219:44:219:62 | ModeOfOperation | | jca/EllipticCurve2.java:219:44:219:62 | KeyOperationAlgorithm | Padding | jca/EllipticCurve2.java:219:44:219:62 | PaddingAlgorithm | | jca/EllipticCurve2.java:223:42:223:47 | Key | Source | jca/EllipticCurve2.java:223:42:223:47 | Key | -| jca/EllipticCurve2.java:223:50:223:53 | Nonce | Source | jca/EllipticCurve2.java:221:9:221:40 | RandomNumberGeneration | | jca/EllipticCurve2.java:223:50:223:53 | Nonce | Source | jca/EllipticCurve2.java:221:38:221:39 | RandomNumberGeneration | | jca/EllipticCurve2.java:224:29:224:53 | EncryptOperation | Algorithm | jca/EllipticCurve2.java:219:44:219:62 | KeyOperationAlgorithm | | jca/EllipticCurve2.java:224:29:224:53 | EncryptOperation | Input | jca/EllipticCurve2.java:224:44:224:52 | Message | @@ -494,7 +490,6 @@ | jca/Encryption1.java:63:44:63:62 | KeyOperationAlgorithm | Mode | jca/Encryption1.java:63:44:63:62 | ModeOfOperation | | jca/Encryption1.java:63:44:63:62 | KeyOperationAlgorithm | Padding | jca/Encryption1.java:63:44:63:62 | PaddingAlgorithm | | jca/Encryption1.java:67:42:67:44 | Key | Source | jca/Encryption1.java:62:25:62:44 | Key | -| jca/Encryption1.java:67:47:67:53 | Nonce | Source | jca/Encryption1.java:65:9:65:40 | RandomNumberGeneration | | jca/Encryption1.java:67:47:67:53 | Nonce | Source | jca/Encryption1.java:65:38:65:39 | RandomNumberGeneration | | jca/Encryption1.java:68:32:68:74 | EncryptOperation | Algorithm | jca/Encryption1.java:63:44:63:62 | KeyOperationAlgorithm | | jca/Encryption1.java:68:32:68:74 | EncryptOperation | Input | jca/Encryption1.java:68:47:68:73 | Message | @@ -564,7 +559,6 @@ | jca/Encryption1.java:171:47:171:65 | KeyOperationAlgorithm | Mode | jca/Encryption1.java:171:47:171:65 | ModeOfOperation | | jca/Encryption1.java:171:47:171:65 | KeyOperationAlgorithm | Padding | jca/Encryption1.java:171:47:171:65 | PaddingAlgorithm | | jca/Encryption1.java:175:45:175:50 | Key | Source | jca/Encryption1.java:163:28:163:47 | Key | -| jca/Encryption1.java:175:53:175:59 | Nonce | Source | jca/Encryption1.java:173:9:173:40 | RandomNumberGeneration | | jca/Encryption1.java:175:53:175:59 | Nonce | Source | jca/Encryption1.java:173:38:173:39 | RandomNumberGeneration | | jca/Encryption1.java:176:32:176:65 | EncryptOperation | Algorithm | jca/Encryption1.java:171:47:171:65 | KeyOperationAlgorithm | | jca/Encryption1.java:176:32:176:65 | EncryptOperation | Input | jca/Encryption1.java:176:50:176:64 | Message | @@ -590,8 +584,7 @@ | jca/Encryption2.java:100:44:100:55 | Message | Source | jca/Encryption2.java:74:16:74:44 | SharedSecret | | jca/Encryption2.java:105:47:105:65 | KeyOperationAlgorithm | Mode | jca/Encryption2.java:105:47:105:65 | ModeOfOperation | | jca/Encryption2.java:105:47:105:65 | KeyOperationAlgorithm | Padding | jca/Encryption2.java:105:47:105:65 | PaddingAlgorithm | -| jca/Encryption2.java:109:45:109:50 | Key | Source | jca/Encryption2.java:109:45:109:50 | Key | -| jca/Encryption2.java:109:53:109:59 | Nonce | Source | jca/Encryption2.java:107:9:107:40 | RandomNumberGeneration | +| jca/Encryption2.java:109:45:109:50 | Key | Source | jca/Encryption2.java:100:30:100:56 | Digest | | jca/Encryption2.java:109:53:109:59 | Nonce | Source | jca/Encryption2.java:107:38:107:39 | RandomNumberGeneration | | jca/Encryption2.java:110:32:110:65 | EncryptOperation | Algorithm | jca/Encryption2.java:105:47:105:65 | KeyOperationAlgorithm | | jca/Encryption2.java:110:32:110:65 | EncryptOperation | Input | jca/Encryption2.java:110:50:110:64 | Message | @@ -602,7 +595,6 @@ | jca/Encryption2.java:145:47:145:65 | KeyOperationAlgorithm | Mode | jca/Encryption2.java:145:47:145:65 | ModeOfOperation | | jca/Encryption2.java:145:47:145:65 | KeyOperationAlgorithm | Padding | jca/Encryption2.java:145:47:145:65 | PaddingAlgorithm | | jca/Encryption2.java:149:45:149:50 | Key | Source | jca/Encryption2.java:149:45:149:50 | Key | -| jca/Encryption2.java:149:53:149:59 | Nonce | Source | jca/Encryption2.java:147:9:147:40 | RandomNumberGeneration | | jca/Encryption2.java:149:53:149:59 | Nonce | Source | jca/Encryption2.java:147:38:147:39 | RandomNumberGeneration | | jca/Encryption2.java:150:32:150:98 | EncryptOperation | Algorithm | jca/Encryption2.java:145:47:145:65 | KeyOperationAlgorithm | | jca/Encryption2.java:150:32:150:98 | EncryptOperation | Input | jca/Encryption2.java:150:50:150:97 | Message | @@ -610,11 +602,10 @@ | jca/Encryption2.java:150:32:150:98 | EncryptOperation | Nonce | jca/Encryption2.java:149:53:149:59 | Nonce | | jca/Encryption2.java:150:32:150:98 | EncryptOperation | Output | jca/Encryption2.java:150:32:150:98 | KeyOperationOutput | | jca/Encryption2.java:150:50:150:97 | Message | Source | jca/Encryption2.java:150:50:150:86 | Constant | -| jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | Mode | jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | -| jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | Padding | jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | +| jca/Encryption2.java:173:36:173:47 | HMACAlgorithm | H | jca/Encryption2.java:173:36:173:47 | HashAlgorithm | | jca/Encryption2.java:175:19:175:27 | Key | Source | jca/Encryption2.java:132:68:132:88 | Parameter | -| jca/Encryption2.java:176:31:176:52 | MACOperation | Algorithm | jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | -| jca/Encryption2.java:176:31:176:52 | MACOperation | HashAlgorithm | jca/Encryption2.java:176:31:176:52 | MACOperation | +| jca/Encryption2.java:176:31:176:52 | MACOperation | Algorithm | jca/Encryption2.java:173:36:173:47 | HMACAlgorithm | +| jca/Encryption2.java:176:31:176:52 | MACOperation | HashAlgorithm | jca/Encryption2.java:173:36:173:47 | HashAlgorithm | | jca/Encryption2.java:176:31:176:52 | MACOperation | Input | jca/Encryption2.java:176:44:176:51 | Message | | jca/Encryption2.java:176:31:176:52 | MACOperation | Key | jca/Encryption2.java:175:19:175:27 | Key | | jca/Encryption2.java:176:31:176:52 | MACOperation | Message | jca/Encryption2.java:176:44:176:51 | Message | @@ -656,6 +647,7 @@ | jca/Hash.java:174:23:174:52 | HashOperation | Message | jca/Hash.java:174:37:174:51 | Message | | jca/Hash.java:174:37:174:51 | Message | Source | jca/Hash.java:172:43:172:53 | Parameter | | jca/Hash.java:195:27:195:57 | Digest | Source | jca/Hash.java:195:27:195:57 | Digest | +| jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:191:31:192:48 | Constant | | jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:191:32:191:38 | HashAlgorithm | | jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:191:41:191:49 | HashAlgorithm | | jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:191:52:191:60 | HashAlgorithm | @@ -664,31 +656,60 @@ | jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:191:85:191:94 | HashAlgorithm | | jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:191:97:191:106 | HashAlgorithm | | jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:192:13:192:25 | HashAlgorithm | -| jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:192:28:192:40 | HashAlgorithm | | jca/Hash.java:195:27:195:57 | HashOperation | Algorithm | jca/Hash.java:192:43:192:47 | HashAlgorithm | | jca/Hash.java:195:27:195:57 | HashOperation | Digest | jca/Hash.java:195:27:195:57 | Digest | | jca/Hash.java:195:27:195:57 | HashOperation | Message | jca/Hash.java:195:41:195:56 | Message | | jca/Hash.java:195:41:195:56 | Message | Source | jca/Hash.java:190:43:190:54 | Parameter | -| jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | Mode | jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | -| jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | Padding | jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | -| jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | Mode | jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | -| jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | Padding | jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | -| jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | Mode | jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | -| jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | Padding | jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | -| jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | Mode | jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | -| jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | Padding | jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | -| jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | Mode | jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | -| jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | Padding | jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | -| jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | Mode | jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | -| jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | Padding | jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | H | jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | H | jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | H | jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | H | jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | H | jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | H | jca/Hash.java:212:102:212:115 | HashAlgorithm | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | H | jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | H | jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | H | jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | H | jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | H | jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | H | jca/Hash.java:212:102:212:115 | HashAlgorithm | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | H | jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | H | jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | H | jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | H | jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | H | jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | H | jca/Hash.java:212:102:212:115 | HashAlgorithm | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | H | jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | H | jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | H | jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | H | jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | H | jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | H | jca/Hash.java:212:102:212:115 | HashAlgorithm | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | H | jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | H | jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | H | jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | H | jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | H | jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | H | jca/Hash.java:212:102:212:115 | HashAlgorithm | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | H | jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | H | jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | H | jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | H | jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | H | jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | H | jca/Hash.java:212:102:212:115 | HashAlgorithm | | jca/Hash.java:216:22:216:30 | Key | Source | jca/Hash.java:211:57:211:66 | Parameter | -| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | -| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | -| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | -| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | -| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | -| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | -| jca/Hash.java:217:27:217:55 | MACOperation | HashAlgorithm | jca/Hash.java:217:27:217:55 | MACOperation | +| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:31:212:116 | Constant | +| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:32:212:41 | HMACAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:44:212:55 | HMACAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:58:212:69 | HMACAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:72:212:83 | HMACAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:86:212:99 | HMACAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | Algorithm | jca/Hash.java:212:102:212:115 | HMACAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | HashAlgorithm | jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | HashAlgorithm | jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | HashAlgorithm | jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | HashAlgorithm | jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | HashAlgorithm | jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:217:27:217:55 | MACOperation | HashAlgorithm | jca/Hash.java:212:102:212:115 | HashAlgorithm | | jca/Hash.java:217:27:217:55 | MACOperation | Input | jca/Hash.java:217:39:217:54 | Message | | jca/Hash.java:217:27:217:55 | MACOperation | Key | jca/Hash.java:216:22:216:30 | Key | | jca/Hash.java:217:27:217:55 | MACOperation | Message | jca/Hash.java:217:39:217:54 | Message | @@ -696,7 +717,6 @@ | jca/Hash.java:217:27:217:55 | MACOperation | Output | jca/Hash.java:217:27:217:55 | KeyOperationOutput | | jca/Hash.java:217:39:217:54 | Message | Source | jca/Hash.java:211:43:211:54 | Parameter | | jca/Hash.java:235:42:235:63 | Message | Source | jca/Hash.java:232:40:232:54 | Parameter | -| jca/Hash.java:235:66:235:69 | Salt | Source | jca/Hash.java:310:9:310:42 | RandomNumberGeneration | | jca/Hash.java:235:66:235:69 | Salt | Source | jca/Hash.java:310:38:310:41 | RandomNumberGeneration | | jca/Hash.java:236:65:236:86 | HMACAlgorithm | H | jca/Hash.java:236:65:236:86 | HashAlgorithm | | jca/Hash.java:236:65:236:86 | KeyDerivationAlgorithm | PRF | jca/Hash.java:236:65:236:86 | HMACAlgorithm | @@ -705,6 +725,7 @@ | jca/Hash.java:237:23:237:50 | KeyDerivation | Output | jca/Hash.java:237:23:237:50 | Key | | jca/Hash.java:237:23:237:50 | KeyDerivation | Salt | jca/Hash.java:235:66:235:69 | Salt | | jca/Hash.java:252:23:252:70 | Digest | Source | jca/Hash.java:252:23:252:70 | Digest | +| jca/Hash.java:252:23:252:70 | HashOperation | Algorithm | jca/Hash.java:294:16:294:66 | Constant | | jca/Hash.java:252:23:252:70 | HashOperation | Algorithm | jca/Hash.java:294:16:294:66 | LocalData | | jca/Hash.java:252:23:252:70 | HashOperation | Algorithm | jca/Hash.java:294:57:294:65 | HashAlgorithm | | jca/Hash.java:252:23:252:70 | HashOperation | Digest | jca/Hash.java:252:23:252:70 | Digest | @@ -712,6 +733,7 @@ | jca/Hash.java:252:37:252:69 | Message | Source | jca/Hash.java:252:37:252:58 | Constant | | jca/Hash.java:270:27:270:30 | Message | Source | jca/Hash.java:269:27:269:38 | Constant | | jca/Hash.java:271:40:271:54 | Digest | Source | jca/Hash.java:271:40:271:54 | Digest | +| jca/Hash.java:271:40:271:54 | HashOperation | Algorithm | jca/Hash.java:266:31:266:76 | Constant | | jca/Hash.java:271:40:271:54 | HashOperation | Algorithm | jca/Hash.java:266:32:266:40 | HashAlgorithm | | jca/Hash.java:271:40:271:54 | HashOperation | Algorithm | jca/Hash.java:266:43:266:51 | HashAlgorithm | | jca/Hash.java:271:40:271:54 | HashOperation | Algorithm | jca/Hash.java:266:54:266:63 | HashAlgorithm | @@ -721,7 +743,6 @@ | jca/IVArtifact.java:30:44:30:65 | KeyOperationAlgorithm | Mode | jca/IVArtifact.java:30:44:30:65 | ModeOfOperation | | jca/IVArtifact.java:30:44:30:65 | KeyOperationAlgorithm | Padding | jca/IVArtifact.java:30:44:30:65 | PaddingAlgorithm | | jca/IVArtifact.java:31:42:31:44 | Key | Source | jca/IVArtifact.java:76:16:76:35 | Key | -| jca/IVArtifact.java:31:47:31:52 | Nonce | Source | jca/IVArtifact.java:81:9:81:40 | RandomNumberGeneration | | jca/IVArtifact.java:31:47:31:52 | Nonce | Source | jca/IVArtifact.java:81:38:81:39 | RandomNumberGeneration | | jca/IVArtifact.java:32:29:32:73 | EncryptOperation | Algorithm | jca/IVArtifact.java:30:44:30:65 | KeyOperationAlgorithm | | jca/IVArtifact.java:32:29:32:73 | EncryptOperation | Input | jca/IVArtifact.java:32:44:32:72 | Message | @@ -730,9 +751,9 @@ | jca/IVArtifact.java:32:29:32:73 | EncryptOperation | Output | jca/IVArtifact.java:32:29:32:73 | KeyOperationOutput | | jca/IVArtifact.java:32:44:32:72 | Message | Source | jca/IVArtifact.java:32:44:32:61 | Constant | | jca/IVArtifact.java:38:42:38:44 | Key | Source | jca/IVArtifact.java:76:16:76:35 | Key | -| jca/IVArtifact.java:38:47:38:52 | Nonce | Source | jca/IVArtifact.java:81:9:81:40 | RandomNumberGeneration | | jca/IVArtifact.java:38:47:38:52 | Nonce | Source | jca/IVArtifact.java:81:38:81:39 | RandomNumberGeneration | | jca/IVArtifact.java:38:47:38:52 | Nonce | Source | jca/IVArtifact.java:87:32:87:33 | RandomNumberGeneration | +| jca/IVArtifact.java:39:29:39:53 | EncryptOperation | Algorithm | jca/IVArtifact.java:70:16:70:81 | Constant | | jca/IVArtifact.java:39:29:39:53 | EncryptOperation | Algorithm | jca/IVArtifact.java:70:16:70:81 | LocalData | | jca/IVArtifact.java:39:29:39:53 | EncryptOperation | Algorithm | jca/IVArtifact.java:70:59:70:80 | KeyOperationAlgorithm | | jca/IVArtifact.java:39:29:39:53 | EncryptOperation | Input | jca/IVArtifact.java:39:44:39:52 | Message | @@ -758,7 +779,6 @@ | jca/IVArtifact.java:132:44:132:62 | KeyOperationAlgorithm | Padding | jca/IVArtifact.java:132:44:132:62 | PaddingAlgorithm | | jca/IVArtifact.java:134:42:134:44 | Key | Source | jca/IVArtifact.java:255:29:255:44 | Key | | jca/IVArtifact.java:134:47:134:50 | Nonce | Source | jca/IVArtifact.java:116:31:116:34 | Constant | -| jca/IVArtifact.java:134:47:134:50 | Nonce | Source | jca/IVArtifact.java:130:13:130:50 | RandomNumberGeneration | | jca/IVArtifact.java:134:47:134:50 | Nonce | Source | jca/IVArtifact.java:130:42:130:49 | RandomNumberGeneration | | jca/IVArtifact.java:135:16:135:40 | EncryptOperation | Algorithm | jca/IVArtifact.java:132:44:132:62 | KeyOperationAlgorithm | | jca/IVArtifact.java:135:16:135:40 | EncryptOperation | Input | jca/IVArtifact.java:135:31:135:39 | Message | @@ -774,7 +794,7 @@ | jca/IVArtifact.java:156:44:156:62 | KeyOperationAlgorithm | Mode | jca/IVArtifact.java:156:44:156:62 | ModeOfOperation | | jca/IVArtifact.java:156:44:156:62 | KeyOperationAlgorithm | Padding | jca/IVArtifact.java:156:44:156:62 | PaddingAlgorithm | | jca/IVArtifact.java:158:42:158:44 | Key | Source | jca/IVArtifact.java:255:29:255:44 | Key | -| jca/IVArtifact.java:158:47:158:50 | Nonce | Source | jca/IVArtifact.java:158:47:158:50 | Nonce | +| jca/IVArtifact.java:158:47:158:50 | Nonce | Source | jca/IVArtifact.java:154:31:154:78 | Digest | | jca/IVArtifact.java:159:16:159:40 | EncryptOperation | Algorithm | jca/IVArtifact.java:156:44:156:62 | KeyOperationAlgorithm | | jca/IVArtifact.java:159:16:159:40 | EncryptOperation | Input | jca/IVArtifact.java:159:31:159:39 | Message | | jca/IVArtifact.java:159:16:159:40 | EncryptOperation | Key | jca/IVArtifact.java:158:42:158:44 | Key | @@ -784,7 +804,6 @@ | jca/IVArtifact.java:180:48:180:66 | KeyOperationAlgorithm | Mode | jca/IVArtifact.java:180:48:180:66 | ModeOfOperation | | jca/IVArtifact.java:180:48:180:66 | KeyOperationAlgorithm | Padding | jca/IVArtifact.java:180:48:180:66 | PaddingAlgorithm | | jca/IVArtifact.java:182:46:182:48 | Key | Source | jca/IVArtifact.java:255:29:255:44 | Key | -| jca/IVArtifact.java:182:51:182:54 | Nonce | Source | jca/IVArtifact.java:177:9:177:40 | RandomNumberGeneration | | jca/IVArtifact.java:182:51:182:54 | Nonce | Source | jca/IVArtifact.java:177:38:177:39 | RandomNumberGeneration | | jca/IVArtifact.java:183:30:183:58 | EncryptOperation | Algorithm | jca/IVArtifact.java:180:48:180:66 | KeyOperationAlgorithm | | jca/IVArtifact.java:183:30:183:58 | EncryptOperation | Input | jca/IVArtifact.java:183:45:183:57 | Message | @@ -834,7 +853,6 @@ | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | KeyOperationAlgorithm | Mode | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | ModeOfOperation | | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | KeyOperationAlgorithm | Padding | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | PaddingAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:112:42:112:47 | Key | Source | jca/KeyAgreementHybridCryptosystem.java:112:42:112:47 | Key | -| jca/KeyAgreementHybridCryptosystem.java:112:50:112:53 | Nonce | Source | jca/KeyAgreementHybridCryptosystem.java:110:9:110:40 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:112:50:112:53 | Nonce | Source | jca/KeyAgreementHybridCryptosystem.java:110:38:110:39 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:113:29:113:53 | EncryptOperation | Algorithm | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | KeyOperationAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:113:29:113:53 | EncryptOperation | Input | jca/KeyAgreementHybridCryptosystem.java:113:44:113:52 | Message | @@ -859,8 +877,7 @@ | jca/KeyAgreementHybridCryptosystem.java:150:77:150:88 | Message | Source | jca/KeyAgreementHybridCryptosystem.java:70:16:70:34 | SharedSecret | | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | Mode | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | Padding | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | -| jca/KeyAgreementHybridCryptosystem.java:156:42:156:50 | Key | Source | jca/KeyAgreementHybridCryptosystem.java:156:42:156:50 | Key | -| jca/KeyAgreementHybridCryptosystem.java:156:53:156:78 | Nonce | Source | jca/KeyAgreementHybridCryptosystem.java:155:9:155:43 | RandomNumberGeneration | +| jca/KeyAgreementHybridCryptosystem.java:156:42:156:50 | Key | Source | jca/KeyAgreementHybridCryptosystem.java:150:33:150:89 | Digest | | jca/KeyAgreementHybridCryptosystem.java:156:53:156:78 | Nonce | Source | jca/KeyAgreementHybridCryptosystem.java:155:38:155:42 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:157:29:157:53 | EncryptOperation | Algorithm | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:157:29:157:53 | EncryptOperation | Input | jca/KeyAgreementHybridCryptosystem.java:157:44:157:52 | Message | @@ -879,7 +896,6 @@ | jca/KeyAgreementHybridCryptosystem.java:176:29:176:53 | EncryptOperation | Output | jca/KeyAgreementHybridCryptosystem.java:176:29:176:53 | KeyOperationOutput | | jca/KeyAgreementHybridCryptosystem.java:176:44:176:52 | Message | Source | jca/KeyAgreementHybridCryptosystem.java:188:58:188:73 | Parameter | | jca/KeyAgreementHybridCryptosystem.java:215:42:215:66 | Message | Source | jca/KeyAgreementHybridCryptosystem.java:212:58:212:70 | Parameter | -| jca/KeyAgreementHybridCryptosystem.java:215:69:215:72 | Salt | Source | jca/KeyAgreementHybridCryptosystem.java:269:9:269:42 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:215:69:215:72 | Salt | Source | jca/KeyAgreementHybridCryptosystem.java:269:38:269:41 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:216:65:216:86 | HMACAlgorithm | H | jca/KeyAgreementHybridCryptosystem.java:216:65:216:86 | HashAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:216:65:216:86 | KeyDerivationAlgorithm | PRF | jca/KeyAgreementHybridCryptosystem.java:216:65:216:86 | HMACAlgorithm | @@ -890,7 +906,6 @@ | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | KeyOperationAlgorithm | Mode | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | ModeOfOperation | | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | KeyOperationAlgorithm | Padding | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | PaddingAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:227:42:227:54 | Key | Source | jca/KeyAgreementHybridCryptosystem.java:227:42:227:54 | Key | -| jca/KeyAgreementHybridCryptosystem.java:227:57:227:63 | Nonce | Source | jca/KeyAgreementHybridCryptosystem.java:225:9:225:40 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:227:57:227:63 | Nonce | Source | jca/KeyAgreementHybridCryptosystem.java:225:38:225:39 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | EncryptOperation | Algorithm | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | KeyOperationAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | EncryptOperation | Input | jca/KeyAgreementHybridCryptosystem.java:228:44:228:52 | Message | @@ -898,11 +913,10 @@ | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | EncryptOperation | Nonce | jca/KeyAgreementHybridCryptosystem.java:227:57:227:63 | Nonce | | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | EncryptOperation | Output | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | KeyOperationOutput | | jca/KeyAgreementHybridCryptosystem.java:228:44:228:52 | Message | Source | jca/KeyAgreementHybridCryptosystem.java:212:73:212:88 | Parameter | -| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | Mode | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | -| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | Padding | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HMACAlgorithm | H | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HashAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:231:18:231:30 | Key | Source | jca/KeyAgreementHybridCryptosystem.java:231:18:231:30 | Key | -| jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | Algorithm | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | -| jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | HashAlgorithm | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | +| jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | Algorithm | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HMACAlgorithm | +| jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | HashAlgorithm | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HashAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | Input | jca/KeyAgreementHybridCryptosystem.java:232:42:232:51 | Message | | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | Key | jca/KeyAgreementHybridCryptosystem.java:231:18:231:30 | Key | | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | Message | jca/KeyAgreementHybridCryptosystem.java:232:42:232:51 | Message | @@ -924,16 +938,20 @@ | jca/KeyArtifact.java:42:26:42:53 | Key | Algorithm | jca/KeyArtifact.java:42:26:42:53 | Key | | jca/KeyArtifact.java:42:26:42:53 | KeyGeneration | Algorithm | jca/KeyArtifact.java:42:26:42:53 | KeyGeneration | | jca/KeyArtifact.java:42:26:42:53 | KeyGeneration | Output | jca/KeyArtifact.java:42:26:42:53 | Key | +| jca/KeyArtifact.java:66:32:66:51 | KeyGeneration | Algorithm | jca/KeyArtifact.java:62:28:62:73 | Constant | | jca/KeyArtifact.java:66:32:66:51 | KeyGeneration | Algorithm | jca/KeyArtifact.java:62:28:62:73 | LocalData | | jca/KeyArtifact.java:66:32:66:51 | KeyGeneration | Algorithm | jca/KeyArtifact.java:62:68:62:72 | KeyOperationAlgorithm | | jca/KeyArtifact.java:66:32:66:51 | KeyGeneration | Output | jca/KeyArtifact.java:66:32:66:51 | Key | +| jca/KeyArtifact.java:73:16:73:43 | Key | Algorithm | jca/KeyArtifact.java:78:31:78:54 | Constant | | jca/KeyArtifact.java:73:16:73:43 | Key | Algorithm | jca/KeyArtifact.java:78:32:78:36 | KeyOperationAlgorithm | -| jca/KeyArtifact.java:73:16:73:43 | Key | Algorithm | jca/KeyArtifact.java:78:45:78:53 | Constant | +| jca/KeyArtifact.java:73:16:73:43 | Key | Algorithm | jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | +| jca/KeyArtifact.java:73:16:73:43 | KeyGeneration | Algorithm | jca/KeyArtifact.java:78:31:78:54 | Constant | | jca/KeyArtifact.java:73:16:73:43 | KeyGeneration | Algorithm | jca/KeyArtifact.java:78:32:78:36 | KeyOperationAlgorithm | -| jca/KeyArtifact.java:73:16:73:43 | KeyGeneration | Algorithm | jca/KeyArtifact.java:78:45:78:53 | Constant | +| jca/KeyArtifact.java:73:16:73:43 | KeyGeneration | Algorithm | jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | | jca/KeyArtifact.java:73:16:73:43 | KeyGeneration | Output | jca/KeyArtifact.java:73:16:73:43 | Key | +| jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | Mode | jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | +| jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | Padding | jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | | jca/KeyDerivation1.java:80:42:80:63 | Message | Source | jca/KeyDerivation1.java:78:39:78:53 | Parameter | -| jca/KeyDerivation1.java:80:66:80:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:80:66:80:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:81:65:81:86 | HMACAlgorithm | H | jca/KeyDerivation1.java:81:65:81:86 | HashAlgorithm | | jca/KeyDerivation1.java:81:65:81:86 | KeyDerivationAlgorithm | PRF | jca/KeyDerivation1.java:81:65:81:86 | HMACAlgorithm | @@ -942,7 +960,6 @@ | jca/KeyDerivation1.java:82:22:82:49 | KeyDerivation | Output | jca/KeyDerivation1.java:82:22:82:49 | Key | | jca/KeyDerivation1.java:82:22:82:49 | KeyDerivation | Salt | jca/KeyDerivation1.java:80:66:80:69 | Salt | | jca/KeyDerivation1.java:94:42:94:63 | Message | Source | jca/KeyDerivation1.java:92:36:92:50 | Parameter | -| jca/KeyDerivation1.java:94:66:94:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:94:66:94:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:95:65:95:86 | HMACAlgorithm | H | jca/KeyDerivation1.java:95:65:95:86 | HashAlgorithm | | jca/KeyDerivation1.java:95:65:95:86 | KeyDerivationAlgorithm | PRF | jca/KeyDerivation1.java:95:65:95:86 | HMACAlgorithm | @@ -951,7 +968,6 @@ | jca/KeyDerivation1.java:96:22:96:49 | KeyDerivation | Output | jca/KeyDerivation1.java:96:22:96:49 | Key | | jca/KeyDerivation1.java:96:22:96:49 | KeyDerivation | Salt | jca/KeyDerivation1.java:94:66:94:69 | Salt | | jca/KeyDerivation1.java:108:42:108:63 | Message | Source | jca/KeyDerivation1.java:106:37:106:51 | Parameter | -| jca/KeyDerivation1.java:108:66:108:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:108:66:108:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:109:65:109:86 | HMACAlgorithm | H | jca/KeyDerivation1.java:109:65:109:86 | HashAlgorithm | | jca/KeyDerivation1.java:109:65:109:86 | KeyDerivationAlgorithm | PRF | jca/KeyDerivation1.java:109:65:109:86 | HMACAlgorithm | @@ -960,7 +976,6 @@ | jca/KeyDerivation1.java:110:22:110:49 | KeyDerivation | Output | jca/KeyDerivation1.java:110:22:110:49 | Key | | jca/KeyDerivation1.java:110:22:110:49 | KeyDerivation | Salt | jca/KeyDerivation1.java:108:66:108:69 | Salt | | jca/KeyDerivation1.java:122:42:122:63 | Message | Source | jca/KeyDerivation1.java:120:32:120:46 | Parameter | -| jca/KeyDerivation1.java:122:66:122:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:122:66:122:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:123:65:123:84 | HMACAlgorithm | H | jca/KeyDerivation1.java:123:65:123:84 | HashAlgorithm | | jca/KeyDerivation1.java:123:65:123:84 | KeyDerivationAlgorithm | PRF | jca/KeyDerivation1.java:123:65:123:84 | HMACAlgorithm | @@ -969,7 +984,6 @@ | jca/KeyDerivation1.java:124:22:124:49 | KeyDerivation | Output | jca/KeyDerivation1.java:124:22:124:49 | Key | | jca/KeyDerivation1.java:124:22:124:49 | KeyDerivation | Salt | jca/KeyDerivation1.java:122:66:122:69 | Salt | | jca/KeyDerivation1.java:136:42:136:63 | Message | Source | jca/KeyDerivation1.java:134:34:134:48 | Parameter | -| jca/KeyDerivation1.java:136:66:136:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:136:66:136:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:137:65:137:86 | HMACAlgorithm | H | jca/KeyDerivation1.java:137:65:137:86 | HashAlgorithm | | jca/KeyDerivation1.java:137:65:137:86 | KeyDerivationAlgorithm | PRF | jca/KeyDerivation1.java:137:65:137:86 | HMACAlgorithm | @@ -978,14 +992,12 @@ | jca/KeyDerivation1.java:138:22:138:49 | KeyDerivation | Output | jca/KeyDerivation1.java:138:22:138:49 | Key | | jca/KeyDerivation1.java:138:22:138:49 | KeyDerivation | Salt | jca/KeyDerivation1.java:136:66:136:69 | Salt | | jca/KeyDerivation1.java:157:42:157:63 | Message | Source | jca/KeyDerivation1.java:154:28:154:42 | Parameter | -| jca/KeyDerivation1.java:157:66:157:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:157:66:157:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:159:22:159:49 | KeyDerivation | Algorithm | jca/KeyDerivation1.java:158:65:158:72 | Constant | | jca/KeyDerivation1.java:159:22:159:49 | KeyDerivation | Input | jca/KeyDerivation1.java:157:42:157:63 | Message | | jca/KeyDerivation1.java:159:22:159:49 | KeyDerivation | Output | jca/KeyDerivation1.java:159:22:159:49 | Key | | jca/KeyDerivation1.java:159:22:159:49 | KeyDerivation | Salt | jca/KeyDerivation1.java:157:66:157:69 | Salt | | jca/KeyDerivation1.java:172:42:172:63 | Message | Source | jca/KeyDerivation1.java:169:30:169:44 | Parameter | -| jca/KeyDerivation1.java:172:66:172:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:172:66:172:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:174:22:174:49 | KeyDerivation | Algorithm | jca/KeyDerivation1.java:173:65:173:72 | Constant | | jca/KeyDerivation1.java:174:22:174:49 | KeyDerivation | Input | jca/KeyDerivation1.java:172:42:172:63 | Message | @@ -998,7 +1010,7 @@ | jca/KeyDerivation1.java:244:43:244:58 | Message | Source | jca/KeyDerivation1.java:242:45:242:56 | Parameter | | jca/KeyDerivation1.java:249:70:249:88 | KeyOperationAlgorithm | Mode | jca/KeyDerivation1.java:249:70:249:88 | ModeOfOperation | | jca/KeyDerivation1.java:249:70:249:88 | KeyOperationAlgorithm | Padding | jca/KeyDerivation1.java:249:70:249:88 | PaddingAlgorithm | -| jca/KeyDerivation1.java:250:55:250:57 | Key | Source | jca/KeyDerivation1.java:250:55:250:57 | Key | +| jca/KeyDerivation1.java:250:55:250:57 | Key | Source | jca/KeyDerivation1.java:244:29:244:59 | Digest | | jca/KeyDerivation1.java:251:29:251:74 | EncryptOperation | Algorithm | jca/KeyDerivation1.java:249:70:249:88 | KeyOperationAlgorithm | | jca/KeyDerivation1.java:251:29:251:74 | EncryptOperation | Input | jca/KeyDerivation1.java:251:44:251:73 | Message | | jca/KeyDerivation1.java:251:29:251:74 | EncryptOperation | Key | jca/KeyDerivation1.java:250:55:250:57 | Key | @@ -1008,15 +1020,14 @@ | jca/KeyDerivation1.java:309:54:309:75 | HMACAlgorithm | H | jca/KeyDerivation1.java:309:54:309:75 | HashAlgorithm | | jca/KeyDerivation1.java:309:54:309:75 | KeyDerivationAlgorithm | PRF | jca/KeyDerivation1.java:309:54:309:75 | HMACAlgorithm | | jca/KeyDerivation1.java:314:42:314:63 | Message | Source | jca/KeyDerivation1.java:302:37:302:51 | Parameter | -| jca/KeyDerivation1.java:314:66:314:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:314:66:314:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | +| jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Algorithm | jca/KeyDerivation1.java:309:25:309:76 | Constant | | jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Algorithm | jca/KeyDerivation1.java:309:25:309:76 | LocalData | | jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Algorithm | jca/KeyDerivation1.java:309:54:309:75 | KeyDerivationAlgorithm | | jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Input | jca/KeyDerivation1.java:314:42:314:63 | Message | | jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Output | jca/KeyDerivation1.java:316:26:316:53 | Key | | jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Salt | jca/KeyDerivation1.java:314:66:314:69 | Salt | | jca/KeyDerivation1.java:333:42:333:63 | Message | Source | jca/KeyDerivation1.java:283:43:283:57 | Parameter | -| jca/KeyDerivation1.java:333:66:333:69 | Salt | Source | jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:333:66:333:69 | Salt | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyDerivation1.java:334:65:334:86 | HMACAlgorithm | H | jca/KeyDerivation1.java:334:65:334:86 | HashAlgorithm | | jca/KeyDerivation1.java:334:65:334:86 | KeyDerivationAlgorithm | PRF | jca/KeyDerivation1.java:334:65:334:86 | HMACAlgorithm | @@ -1024,11 +1035,11 @@ | jca/KeyDerivation1.java:335:16:335:43 | KeyDerivation | Input | jca/KeyDerivation1.java:333:42:333:63 | Message | | jca/KeyDerivation1.java:335:16:335:43 | KeyDerivation | Output | jca/KeyDerivation1.java:335:16:335:43 | Key | | jca/KeyDerivation1.java:335:16:335:43 | KeyDerivation | Salt | jca/KeyDerivation1.java:333:66:333:69 | Salt | -| jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | Mode | jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | -| jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | Padding | jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | -| jca/KeyDerivation1.java:347:19:347:27 | Key | Source | jca/KeyDerivation1.java:347:19:347:27 | Key | -| jca/KeyDerivation1.java:348:22:348:38 | MACOperation | Algorithm | jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | -| jca/KeyDerivation1.java:348:22:348:38 | MACOperation | HashAlgorithm | jca/KeyDerivation1.java:348:22:348:38 | MACOperation | +| jca/KeyDerivation1.java:345:36:345:47 | HMACAlgorithm | H | jca/KeyDerivation1.java:345:36:345:47 | HashAlgorithm | +| jca/KeyDerivation1.java:347:19:347:27 | Key | Source | jca/KeyDerivation1.java:335:16:335:43 | Key | +| jca/KeyDerivation1.java:347:19:347:27 | Key | Source | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | +| jca/KeyDerivation1.java:348:22:348:38 | MACOperation | Algorithm | jca/KeyDerivation1.java:345:36:345:47 | HMACAlgorithm | +| jca/KeyDerivation1.java:348:22:348:38 | MACOperation | HashAlgorithm | jca/KeyDerivation1.java:345:36:345:47 | HashAlgorithm | | jca/KeyDerivation1.java:348:22:348:38 | MACOperation | Input | jca/KeyDerivation1.java:348:35:348:37 | Message | | jca/KeyDerivation1.java:348:22:348:38 | MACOperation | Key | jca/KeyDerivation1.java:347:19:347:27 | Key | | jca/KeyDerivation1.java:348:22:348:38 | MACOperation | Message | jca/KeyDerivation1.java:348:35:348:37 | Message | @@ -1036,9 +1047,9 @@ | jca/KeyDerivation1.java:348:22:348:38 | MACOperation | Output | jca/KeyDerivation1.java:348:22:348:38 | KeyOperationOutput | | jca/KeyDerivation1.java:348:35:348:37 | Message | Source | jca/KeyDerivation1.java:269:32:269:41 | Parameter | | jca/KeyDerivation1.java:348:35:348:37 | Message | Source | jca/KeyDerivation1.java:283:60:283:78 | Parameter | -| jca/KeyDerivation1.java:352:19:352:54 | Key | Source | jca/KeyDerivation1.java:352:19:352:54 | Key | -| jca/KeyDerivation1.java:353:22:353:62 | MACOperation | Algorithm | jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | -| jca/KeyDerivation1.java:353:22:353:62 | MACOperation | HashAlgorithm | jca/KeyDerivation1.java:353:22:353:62 | MACOperation | +| jca/KeyDerivation1.java:352:19:352:54 | Key | Source | jca/KeyDerivation1.java:348:22:348:38 | KeyOperationOutput | +| jca/KeyDerivation1.java:353:22:353:62 | MACOperation | Algorithm | jca/KeyDerivation1.java:345:36:345:47 | HMACAlgorithm | +| jca/KeyDerivation1.java:353:22:353:62 | MACOperation | HashAlgorithm | jca/KeyDerivation1.java:345:36:345:47 | HashAlgorithm | | jca/KeyDerivation1.java:353:22:353:62 | MACOperation | Input | jca/KeyDerivation1.java:353:35:353:61 | Message | | jca/KeyDerivation1.java:353:22:353:62 | MACOperation | Key | jca/KeyDerivation1.java:347:19:347:27 | Key | | jca/KeyDerivation1.java:353:22:353:62 | MACOperation | Key | jca/KeyDerivation1.java:352:19:352:54 | Key | @@ -1062,7 +1073,6 @@ | jca/KeyEncapsulation.java:73:47:73:65 | KeyOperationAlgorithm | Mode | jca/KeyEncapsulation.java:73:47:73:65 | ModeOfOperation | | jca/KeyEncapsulation.java:73:47:73:65 | KeyOperationAlgorithm | Padding | jca/KeyEncapsulation.java:73:47:73:65 | PaddingAlgorithm | | jca/KeyEncapsulation.java:77:45:77:50 | Key | Source | jca/KeyEncapsulation.java:62:28:62:47 | Key | -| jca/KeyEncapsulation.java:77:53:77:59 | Nonce | Source | jca/KeyEncapsulation.java:75:9:75:40 | RandomNumberGeneration | | jca/KeyEncapsulation.java:77:53:77:59 | Nonce | Source | jca/KeyEncapsulation.java:75:38:75:39 | RandomNumberGeneration | | jca/KeyEncapsulation.java:78:29:78:80 | EncryptOperation | Algorithm | jca/KeyEncapsulation.java:73:47:73:65 | KeyOperationAlgorithm | | jca/KeyEncapsulation.java:78:29:78:80 | EncryptOperation | Input | jca/KeyEncapsulation.java:78:47:78:79 | Message | @@ -1093,8 +1103,7 @@ | jca/KeyEncapsulation.java:124:31:124:49 | SharedSecret | Source | jca/KeyEncapsulation.java:124:31:124:49 | SharedSecret | | jca/KeyEncapsulation.java:133:47:133:65 | KeyOperationAlgorithm | Mode | jca/KeyEncapsulation.java:133:47:133:65 | ModeOfOperation | | jca/KeyEncapsulation.java:133:47:133:65 | KeyOperationAlgorithm | Padding | jca/KeyEncapsulation.java:133:47:133:65 | PaddingAlgorithm | -| jca/KeyEncapsulation.java:136:45:136:50 | Key | Source | jca/KeyEncapsulation.java:136:45:136:50 | Key | -| jca/KeyEncapsulation.java:136:53:136:81 | Nonce | Source | jca/KeyEncapsulation.java:135:9:135:40 | RandomNumberGeneration | +| jca/KeyEncapsulation.java:136:45:136:50 | Key | Source | jca/KeyEncapsulation.java:124:31:124:49 | SharedSecret | | jca/KeyEncapsulation.java:136:53:136:81 | Nonce | Source | jca/KeyEncapsulation.java:135:38:135:39 | RandomNumberGeneration | | jca/KeyEncapsulation.java:137:29:137:73 | EncryptOperation | Algorithm | jca/KeyEncapsulation.java:133:47:133:65 | KeyOperationAlgorithm | | jca/KeyEncapsulation.java:137:29:137:73 | EncryptOperation | Input | jca/KeyEncapsulation.java:137:47:137:72 | Message | @@ -1171,22 +1180,20 @@ | jca/KeyExchange.java:213:16:213:34 | KeyAgreementOperation | PeerKey | jca/KeyExchange.java:212:20:212:28 | Key | | jca/KeyExchange.java:213:16:213:34 | KeyAgreementOperation | ServerKey | jca/KeyExchange.java:211:17:211:26 | Key | | jca/KeyExchange.java:213:16:213:34 | SharedSecret | Source | jca/KeyExchange.java:213:16:213:34 | SharedSecret | -| jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | Mode | jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | -| jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | Padding | jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | +| jca/MACOperation.java:60:35:60:46 | HMACAlgorithm | H | jca/MACOperation.java:60:35:60:46 | HashAlgorithm | | jca/MACOperation.java:62:18:62:26 | Key | Source | jca/MACOperation.java:59:52:59:61 | Parameter | -| jca/MACOperation.java:63:16:63:46 | MACOperation | Algorithm | jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | -| jca/MACOperation.java:63:16:63:46 | MACOperation | HashAlgorithm | jca/MACOperation.java:63:16:63:46 | MACOperation | +| jca/MACOperation.java:63:16:63:46 | MACOperation | Algorithm | jca/MACOperation.java:60:35:60:46 | HMACAlgorithm | +| jca/MACOperation.java:63:16:63:46 | MACOperation | HashAlgorithm | jca/MACOperation.java:60:35:60:46 | HashAlgorithm | | jca/MACOperation.java:63:16:63:46 | MACOperation | Input | jca/MACOperation.java:63:28:63:45 | Message | | jca/MACOperation.java:63:16:63:46 | MACOperation | Key | jca/MACOperation.java:62:18:62:26 | Key | | jca/MACOperation.java:63:16:63:46 | MACOperation | Message | jca/MACOperation.java:63:28:63:45 | Message | | jca/MACOperation.java:63:16:63:46 | MACOperation | Nonce | jca/MACOperation.java:63:16:63:46 | MACOperation | | jca/MACOperation.java:63:16:63:46 | MACOperation | Output | jca/MACOperation.java:63:16:63:46 | KeyOperationOutput | | jca/MACOperation.java:63:28:63:45 | Message | Source | jca/MACOperation.java:59:36:59:49 | Parameter | -| jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | Mode | jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | -| jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | Padding | jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | +| jca/MACOperation.java:71:35:71:48 | HMACAlgorithm | H | jca/MACOperation.java:71:35:71:48 | HashAlgorithm | | jca/MACOperation.java:73:18:73:26 | Key | Source | jca/MACOperation.java:70:50:70:59 | Parameter | -| jca/MACOperation.java:74:16:74:46 | MACOperation | Algorithm | jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | -| jca/MACOperation.java:74:16:74:46 | MACOperation | HashAlgorithm | jca/MACOperation.java:74:16:74:46 | MACOperation | +| jca/MACOperation.java:74:16:74:46 | MACOperation | Algorithm | jca/MACOperation.java:71:35:71:48 | HMACAlgorithm | +| jca/MACOperation.java:74:16:74:46 | MACOperation | HashAlgorithm | jca/MACOperation.java:71:35:71:48 | HashAlgorithm | | jca/MACOperation.java:74:16:74:46 | MACOperation | Input | jca/MACOperation.java:74:28:74:45 | Message | | jca/MACOperation.java:74:16:74:46 | MACOperation | Key | jca/MACOperation.java:73:18:73:26 | Key | | jca/MACOperation.java:74:16:74:46 | MACOperation | Message | jca/MACOperation.java:74:28:74:45 | Message | @@ -1224,11 +1231,10 @@ | jca/MACOperation.java:110:16:110:46 | MACOperation | Nonce | jca/MACOperation.java:110:16:110:46 | MACOperation | | jca/MACOperation.java:110:16:110:46 | MACOperation | Output | jca/MACOperation.java:110:16:110:46 | KeyOperationOutput | | jca/MACOperation.java:110:28:110:45 | Message | Source | jca/MACOperation.java:106:30:106:43 | Parameter | -| jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | Mode | jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | -| jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | Padding | jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | +| jca/MACOperation.java:118:35:118:44 | HMACAlgorithm | H | jca/MACOperation.java:118:35:118:44 | HashAlgorithm | | jca/MACOperation.java:120:18:120:26 | Key | Source | jca/MACOperation.java:117:52:117:61 | Parameter | -| jca/MACOperation.java:121:16:121:46 | MACOperation | Algorithm | jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | -| jca/MACOperation.java:121:16:121:46 | MACOperation | HashAlgorithm | jca/MACOperation.java:121:16:121:46 | MACOperation | +| jca/MACOperation.java:121:16:121:46 | MACOperation | Algorithm | jca/MACOperation.java:118:35:118:44 | HMACAlgorithm | +| jca/MACOperation.java:121:16:121:46 | MACOperation | HashAlgorithm | jca/MACOperation.java:118:35:118:44 | HashAlgorithm | | jca/MACOperation.java:121:16:121:46 | MACOperation | Input | jca/MACOperation.java:121:28:121:45 | Message | | jca/MACOperation.java:121:16:121:46 | MACOperation | Key | jca/MACOperation.java:120:18:120:26 | Key | | jca/MACOperation.java:121:16:121:46 | MACOperation | Message | jca/MACOperation.java:121:28:121:45 | Message | @@ -1245,7 +1251,6 @@ | jca/MACOperation.java:138:32:138:74 | EncryptOperation | Output | jca/MACOperation.java:138:32:138:74 | KeyOperationOutput | | jca/MACOperation.java:138:47:138:73 | Message | Source | jca/MACOperation.java:138:47:138:62 | Constant | | jca/MACOperation.java:170:42:170:68 | Message | Source | jca/MACOperation.java:166:47:166:62 | Parameter | -| jca/MACOperation.java:170:71:170:74 | Salt | Source | jca/MACOperation.java:246:9:246:42 | RandomNumberGeneration | | jca/MACOperation.java:170:71:170:74 | Salt | Source | jca/MACOperation.java:246:38:246:41 | RandomNumberGeneration | | jca/MACOperation.java:171:65:171:86 | HMACAlgorithm | H | jca/MACOperation.java:171:65:171:86 | HashAlgorithm | | jca/MACOperation.java:171:65:171:86 | KeyDerivationAlgorithm | PRF | jca/MACOperation.java:171:65:171:86 | HMACAlgorithm | @@ -1262,11 +1267,10 @@ | jca/MACOperation.java:182:29:182:78 | EncryptOperation | Nonce | jca/MACOperation.java:182:29:182:78 | EncryptOperation | | jca/MACOperation.java:182:29:182:78 | EncryptOperation | Output | jca/MACOperation.java:182:29:182:78 | KeyOperationOutput | | jca/MACOperation.java:182:44:182:77 | Message | Source | jca/MACOperation.java:182:44:182:66 | Constant | -| jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | Mode | jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | -| jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | Padding | jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | +| jca/MACOperation.java:185:35:185:46 | HMACAlgorithm | H | jca/MACOperation.java:185:35:185:46 | HashAlgorithm | | jca/MACOperation.java:186:18:186:30 | Key | Source | jca/MACOperation.java:186:18:186:30 | Key | -| jca/MACOperation.java:187:30:187:52 | MACOperation | Algorithm | jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | -| jca/MACOperation.java:187:30:187:52 | MACOperation | HashAlgorithm | jca/MACOperation.java:187:30:187:52 | MACOperation | +| jca/MACOperation.java:187:30:187:52 | MACOperation | Algorithm | jca/MACOperation.java:185:35:185:46 | HMACAlgorithm | +| jca/MACOperation.java:187:30:187:52 | MACOperation | HashAlgorithm | jca/MACOperation.java:185:35:185:46 | HashAlgorithm | | jca/MACOperation.java:187:30:187:52 | MACOperation | Input | jca/MACOperation.java:187:42:187:51 | Message | | jca/MACOperation.java:187:30:187:52 | MACOperation | Key | jca/MACOperation.java:186:18:186:30 | Key | | jca/MACOperation.java:187:30:187:52 | MACOperation | Message | jca/MACOperation.java:187:42:187:51 | Message | @@ -1284,24 +1288,28 @@ | jca/MACOperation.java:219:47:219:50 | Message | Source | jca/MACOperation.java:150:36:150:51 | Parameter | | jca/MACOperation.java:234:16:234:35 | KeyGeneration | Algorithm | jca/MACOperation.java:232:56:232:60 | KeyOperationAlgorithm | | jca/MACOperation.java:234:16:234:35 | KeyGeneration | Output | jca/MACOperation.java:234:16:234:35 | Key | -| jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | Mode | jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | -| jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | Padding | jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | +| jca/Nonce.java:24:35:24:46 | HMACAlgorithm | H | jca/Nonce.java:24:35:24:46 | HashAlgorithm | | jca/Nonce.java:25:18:25:20 | Key | Source | jca/Nonce.java:93:16:93:35 | Key | -| jca/Nonce.java:27:28:27:69 | MACOperation | Algorithm | jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | -| jca/Nonce.java:27:28:27:69 | MACOperation | HashAlgorithm | jca/Nonce.java:27:28:27:69 | MACOperation | +| jca/Nonce.java:26:20:26:24 | Message | Source | jca/Nonce.java:98:38:98:42 | RandomNumberGeneration | +| jca/Nonce.java:27:28:27:69 | MACOperation | Algorithm | jca/Nonce.java:24:35:24:46 | HMACAlgorithm | +| jca/Nonce.java:27:28:27:69 | MACOperation | HashAlgorithm | jca/Nonce.java:24:35:24:46 | HashAlgorithm | +| jca/Nonce.java:27:28:27:69 | MACOperation | Input | jca/Nonce.java:26:20:26:24 | Message | | jca/Nonce.java:27:28:27:69 | MACOperation | Input | jca/Nonce.java:27:40:27:68 | Message | | jca/Nonce.java:27:28:27:69 | MACOperation | Key | jca/Nonce.java:25:18:25:20 | Key | +| jca/Nonce.java:27:28:27:69 | MACOperation | Message | jca/Nonce.java:26:20:26:24 | Message | | jca/Nonce.java:27:28:27:69 | MACOperation | Message | jca/Nonce.java:27:40:27:68 | Message | | jca/Nonce.java:27:28:27:69 | MACOperation | Nonce | jca/Nonce.java:27:28:27:69 | MACOperation | | jca/Nonce.java:27:28:27:69 | MACOperation | Output | jca/Nonce.java:27:28:27:69 | KeyOperationOutput | | jca/Nonce.java:27:40:27:68 | Message | Source | jca/Nonce.java:27:40:27:57 | Constant | -| jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | Mode | jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | -| jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | Padding | jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | +| jca/Nonce.java:37:35:37:46 | HMACAlgorithm | H | jca/Nonce.java:37:35:37:46 | HashAlgorithm | | jca/Nonce.java:38:18:38:20 | Key | Source | jca/Nonce.java:93:16:93:35 | Key | -| jca/Nonce.java:40:28:40:67 | MACOperation | Algorithm | jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | -| jca/Nonce.java:40:28:40:67 | MACOperation | HashAlgorithm | jca/Nonce.java:40:28:40:67 | MACOperation | +| jca/Nonce.java:39:20:39:24 | Message | Source | jca/Nonce.java:35:24:35:41 | Constant | +| jca/Nonce.java:40:28:40:67 | MACOperation | Algorithm | jca/Nonce.java:37:35:37:46 | HMACAlgorithm | +| jca/Nonce.java:40:28:40:67 | MACOperation | HashAlgorithm | jca/Nonce.java:37:35:37:46 | HashAlgorithm | +| jca/Nonce.java:40:28:40:67 | MACOperation | Input | jca/Nonce.java:39:20:39:24 | Message | | jca/Nonce.java:40:28:40:67 | MACOperation | Input | jca/Nonce.java:40:40:40:66 | Message | | jca/Nonce.java:40:28:40:67 | MACOperation | Key | jca/Nonce.java:38:18:38:20 | Key | +| jca/Nonce.java:40:28:40:67 | MACOperation | Message | jca/Nonce.java:39:20:39:24 | Message | | jca/Nonce.java:40:28:40:67 | MACOperation | Message | jca/Nonce.java:40:40:40:66 | Message | | jca/Nonce.java:40:28:40:67 | MACOperation | Nonce | jca/Nonce.java:40:28:40:67 | MACOperation | | jca/Nonce.java:40:28:40:67 | MACOperation | Output | jca/Nonce.java:40:28:40:67 | KeyOperationOutput | @@ -1319,7 +1327,6 @@ | jca/Nonce.java:61:44:61:62 | KeyOperationAlgorithm | Mode | jca/Nonce.java:61:44:61:62 | ModeOfOperation | | jca/Nonce.java:61:44:61:62 | KeyOperationAlgorithm | Padding | jca/Nonce.java:61:44:61:62 | PaddingAlgorithm | | jca/Nonce.java:62:42:62:44 | Key | Source | jca/Nonce.java:58:37:58:49 | Parameter | -| jca/Nonce.java:62:47:62:53 | Nonce | Source | jca/Nonce.java:98:9:98:43 | RandomNumberGeneration | | jca/Nonce.java:62:47:62:53 | Nonce | Source | jca/Nonce.java:98:38:98:42 | RandomNumberGeneration | | jca/Nonce.java:63:29:63:53 | EncryptOperation | Algorithm | jca/Nonce.java:61:44:61:62 | KeyOperationAlgorithm | | jca/Nonce.java:63:29:63:53 | EncryptOperation | Input | jca/Nonce.java:63:44:63:52 | Message | @@ -1327,13 +1334,16 @@ | jca/Nonce.java:63:29:63:53 | EncryptOperation | Nonce | jca/Nonce.java:62:47:62:53 | Nonce | | jca/Nonce.java:63:29:63:53 | EncryptOperation | Output | jca/Nonce.java:63:29:63:53 | KeyOperationOutput | | jca/Nonce.java:63:44:63:52 | Message | Source | jca/Nonce.java:58:52:58:67 | Parameter | -| jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | Mode | jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | -| jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | Padding | jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | +| jca/Nonce.java:70:53:70:64 | HMACAlgorithm | H | jca/Nonce.java:70:53:70:64 | HashAlgorithm | | jca/Nonce.java:78:18:78:20 | Key | Source | jca/Nonce.java:93:16:93:35 | Key | -| jca/Nonce.java:80:28:80:67 | MACOperation | Algorithm | jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | -| jca/Nonce.java:80:28:80:67 | MACOperation | HashAlgorithm | jca/Nonce.java:80:28:80:67 | MACOperation | +| jca/Nonce.java:79:20:79:24 | Message | Source | jca/Nonce.java:98:38:98:42 | RandomNumberGeneration | +| jca/Nonce.java:79:20:79:24 | Message | Source | jca/Nonce.java:104:32:104:36 | RandomNumberGeneration | +| jca/Nonce.java:80:28:80:67 | MACOperation | Algorithm | jca/Nonce.java:70:53:70:64 | HMACAlgorithm | +| jca/Nonce.java:80:28:80:67 | MACOperation | HashAlgorithm | jca/Nonce.java:70:53:70:64 | HashAlgorithm | +| jca/Nonce.java:80:28:80:67 | MACOperation | Input | jca/Nonce.java:79:20:79:24 | Message | | jca/Nonce.java:80:28:80:67 | MACOperation | Input | jca/Nonce.java:80:40:80:66 | Message | | jca/Nonce.java:80:28:80:67 | MACOperation | Key | jca/Nonce.java:78:18:78:20 | Key | +| jca/Nonce.java:80:28:80:67 | MACOperation | Message | jca/Nonce.java:79:20:79:24 | Message | | jca/Nonce.java:80:28:80:67 | MACOperation | Message | jca/Nonce.java:80:40:80:66 | Message | | jca/Nonce.java:80:28:80:67 | MACOperation | Nonce | jca/Nonce.java:80:28:80:67 | MACOperation | | jca/Nonce.java:80:28:80:67 | MACOperation | Output | jca/Nonce.java:80:28:80:67 | KeyOperationOutput | @@ -1348,6 +1358,8 @@ | jca/SignEncryptCombinations.java:61:53:61:69 | KeyOperationAlgorithm | Mode | jca/SignEncryptCombinations.java:61:53:61:69 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:61:53:61:69 | KeyOperationAlgorithm | Padding | jca/SignEncryptCombinations.java:61:53:61:69 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:62:28:62:34 | Key | Source | jca/SignEncryptCombinations.java:53:16:53:38 | Key | +| jca/SignEncryptCombinations.java:63:26:63:29 | Message | Source | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | +| jca/SignEncryptCombinations.java:63:26:63:29 | Message | Source | jca/SignEncryptCombinations.java:97:29:97:53 | KeyOperationOutput | | jca/SignEncryptCombinations.java:63:26:63:29 | Message | Source | jca/SignEncryptCombinations.java:335:26:335:47 | Constant | | jca/SignEncryptCombinations.java:64:16:64:31 | SignOperation | Algorithm | jca/SignEncryptCombinations.java:61:53:61:69 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:64:16:64:31 | SignOperation | HashAlgorithm | jca/SignEncryptCombinations.java:61:53:61:69 | HashAlgorithm | @@ -1357,19 +1369,24 @@ | jca/SignEncryptCombinations.java:68:53:68:69 | KeyOperationAlgorithm | Mode | jca/SignEncryptCombinations.java:68:53:68:69 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:68:53:68:69 | KeyOperationAlgorithm | Padding | jca/SignEncryptCombinations.java:68:53:68:69 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:69:30:69:35 | Key | Source | jca/SignEncryptCombinations.java:53:16:53:38 | Key | +| jca/SignEncryptCombinations.java:70:26:70:29 | Message | Source | jca/SignEncryptCombinations.java:64:16:64:31 | SignatureOutput | +| jca/SignEncryptCombinations.java:70:26:70:29 | Message | Source | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | +| jca/SignEncryptCombinations.java:70:26:70:29 | Message | Source | jca/SignEncryptCombinations.java:97:29:97:53 | KeyOperationOutput | | jca/SignEncryptCombinations.java:70:26:70:29 | Message | Source | jca/SignEncryptCombinations.java:335:26:335:47 | Constant | | jca/SignEncryptCombinations.java:71:16:71:47 | VerifyOperation | Algorithm | jca/SignEncryptCombinations.java:68:53:68:69 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:71:16:71:47 | VerifyOperation | HashAlgorithm | jca/SignEncryptCombinations.java:68:53:68:69 | HashAlgorithm | | jca/SignEncryptCombinations.java:71:16:71:47 | VerifyOperation | Input | jca/SignEncryptCombinations.java:70:26:70:29 | Message | | jca/SignEncryptCombinations.java:71:16:71:47 | VerifyOperation | Key | jca/SignEncryptCombinations.java:69:30:69:35 | Key | | jca/SignEncryptCombinations.java:71:16:71:47 | VerifyOperation | Signature | jca/SignEncryptCombinations.java:71:33:71:46 | SignatureInput | +| jca/SignEncryptCombinations.java:71:33:71:46 | SignatureInput | Source | jca/SignEncryptCombinations.java:64:16:64:31 | SignatureOutput | +| jca/SignEncryptCombinations.java:71:33:71:46 | SignatureInput | Source | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | +| jca/SignEncryptCombinations.java:71:33:71:46 | SignatureInput | Source | jca/SignEncryptCombinations.java:97:29:97:53 | KeyOperationOutput | | jca/SignEncryptCombinations.java:71:33:71:46 | SignatureInput | Source | jca/SignEncryptCombinations.java:113:16:113:41 | KeyOperationOutput | | jca/SignEncryptCombinations.java:84:16:84:31 | KeyGeneration | Algorithm | jca/SignEncryptCombinations.java:82:52:82:56 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:84:16:84:31 | KeyGeneration | Output | jca/SignEncryptCombinations.java:84:16:84:31 | Key | | jca/SignEncryptCombinations.java:92:44:92:62 | KeyOperationAlgorithm | Mode | jca/SignEncryptCombinations.java:92:44:92:62 | ModeOfOperation | | jca/SignEncryptCombinations.java:92:44:92:62 | KeyOperationAlgorithm | Padding | jca/SignEncryptCombinations.java:92:44:92:62 | PaddingAlgorithm | | jca/SignEncryptCombinations.java:96:42:96:44 | Key | Source | jca/SignEncryptCombinations.java:84:16:84:31 | Key | -| jca/SignEncryptCombinations.java:96:47:96:50 | Nonce | Source | jca/SignEncryptCombinations.java:94:9:94:28 | RandomNumberGeneration | | jca/SignEncryptCombinations.java:96:47:96:50 | Nonce | Source | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | | jca/SignEncryptCombinations.java:97:29:97:53 | EncryptOperation | Algorithm | jca/SignEncryptCombinations.java:92:44:92:62 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:97:29:97:53 | EncryptOperation | Input | jca/SignEncryptCombinations.java:97:44:97:52 | Message | @@ -1377,27 +1394,37 @@ | jca/SignEncryptCombinations.java:97:29:97:53 | EncryptOperation | Nonce | jca/SignEncryptCombinations.java:96:47:96:50 | Nonce | | jca/SignEncryptCombinations.java:97:29:97:53 | EncryptOperation | Output | jca/SignEncryptCombinations.java:97:29:97:53 | KeyOperationOutput | | jca/SignEncryptCombinations.java:97:44:97:52 | Message | Source | jca/SignEncryptCombinations.java:64:16:64:31 | SignatureOutput | +| jca/SignEncryptCombinations.java:97:44:97:52 | Message | Source | jca/SignEncryptCombinations.java:123:16:123:32 | KeyOperationOutput | | jca/SignEncryptCombinations.java:97:44:97:52 | Message | Source | jca/SignEncryptCombinations.java:335:26:335:47 | Constant | | jca/SignEncryptCombinations.java:111:44:111:62 | KeyOperationAlgorithm | Mode | jca/SignEncryptCombinations.java:111:44:111:62 | ModeOfOperation | | jca/SignEncryptCombinations.java:111:44:111:62 | KeyOperationAlgorithm | Padding | jca/SignEncryptCombinations.java:111:44:111:62 | PaddingAlgorithm | | jca/SignEncryptCombinations.java:112:42:112:44 | Key | Source | jca/SignEncryptCombinations.java:84:16:84:31 | Key | -| jca/SignEncryptCombinations.java:112:47:112:75 | Nonce | Source | jca/SignEncryptCombinations.java:112:47:112:75 | Nonce | +| jca/SignEncryptCombinations.java:112:47:112:75 | Nonce | Source | jca/SignEncryptCombinations.java:64:16:64:31 | SignatureOutput | +| jca/SignEncryptCombinations.java:112:47:112:75 | Nonce | Source | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | +| jca/SignEncryptCombinations.java:112:47:112:75 | Nonce | Source | jca/SignEncryptCombinations.java:97:29:97:53 | KeyOperationOutput | +| jca/SignEncryptCombinations.java:112:47:112:75 | Nonce | Source | jca/SignEncryptCombinations.java:123:16:123:32 | KeyOperationOutput | | jca/SignEncryptCombinations.java:113:16:113:41 | DecryptOperation | Algorithm | jca/SignEncryptCombinations.java:111:44:111:62 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:113:16:113:41 | DecryptOperation | Input | jca/SignEncryptCombinations.java:113:31:113:40 | Message | | jca/SignEncryptCombinations.java:113:16:113:41 | DecryptOperation | Key | jca/SignEncryptCombinations.java:112:42:112:44 | Key | | jca/SignEncryptCombinations.java:113:16:113:41 | DecryptOperation | Nonce | jca/SignEncryptCombinations.java:112:47:112:75 | Nonce | | jca/SignEncryptCombinations.java:113:16:113:41 | DecryptOperation | Output | jca/SignEncryptCombinations.java:113:16:113:41 | KeyOperationOutput | -| jca/SignEncryptCombinations.java:113:31:113:40 | Message | Source | jca/SignEncryptCombinations.java:113:31:113:40 | Message | -| jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | Mode | jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | -| jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | Padding | jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | +| jca/SignEncryptCombinations.java:113:31:113:40 | Message | Source | jca/SignEncryptCombinations.java:64:16:64:31 | SignatureOutput | +| jca/SignEncryptCombinations.java:113:31:113:40 | Message | Source | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | +| jca/SignEncryptCombinations.java:113:31:113:40 | Message | Source | jca/SignEncryptCombinations.java:97:29:97:53 | KeyOperationOutput | +| jca/SignEncryptCombinations.java:113:31:113:40 | Message | Source | jca/SignEncryptCombinations.java:123:16:123:32 | KeyOperationOutput | +| jca/SignEncryptCombinations.java:121:35:121:46 | HMACAlgorithm | H | jca/SignEncryptCombinations.java:121:35:121:46 | HashAlgorithm | | jca/SignEncryptCombinations.java:122:18:122:20 | Key | Source | jca/SignEncryptCombinations.java:84:16:84:31 | Key | -| jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | Algorithm | jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | -| jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | HashAlgorithm | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | +| jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | Algorithm | jca/SignEncryptCombinations.java:121:35:121:46 | HMACAlgorithm | +| jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | HashAlgorithm | jca/SignEncryptCombinations.java:121:35:121:46 | HashAlgorithm | | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | Input | jca/SignEncryptCombinations.java:123:28:123:31 | Message | | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | Key | jca/SignEncryptCombinations.java:122:18:122:20 | Key | | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | Message | jca/SignEncryptCombinations.java:123:28:123:31 | Message | | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | Nonce | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | Output | jca/SignEncryptCombinations.java:123:16:123:32 | KeyOperationOutput | +| jca/SignEncryptCombinations.java:123:28:123:31 | Message | Source | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | +| jca/SignEncryptCombinations.java:123:28:123:31 | Message | Source | jca/SignEncryptCombinations.java:97:29:97:53 | KeyOperationOutput | +| jca/SignEncryptCombinations.java:123:28:123:31 | Message | Source | jca/SignEncryptCombinations.java:113:16:113:41 | KeyOperationOutput | +| jca/SignEncryptCombinations.java:123:28:123:31 | Message | Source | jca/SignEncryptCombinations.java:123:16:123:32 | KeyOperationOutput | | jca/SignEncryptCombinations.java:123:28:123:31 | Message | Source | jca/SignEncryptCombinations.java:335:26:335:47 | Constant | | jca/SignatureOperation.java:54:16:54:36 | Key | Algorithm | jca/SignatureOperation.java:52:61:52:65 | KeyOperationAlgorithm | | jca/SignatureOperation.java:54:16:54:36 | KeyGeneration | Algorithm | jca/SignatureOperation.java:52:61:52:65 | KeyOperationAlgorithm | @@ -1446,8 +1473,10 @@ | jca/SignatureOperation.java:118:16:118:41 | VerifyOperation | Signature | jca/SignatureOperation.java:118:33:118:40 | SignatureInput | | jca/SignatureOperation.java:118:33:118:40 | SignatureInput | Source | jca/SignatureOperation.java:106:16:106:31 | SignatureOutput | | jca/SignatureOperation.java:118:33:118:40 | SignatureInput | Source | jca/SignatureOperation.java:236:27:236:30 | Constant | -| jca/SignatureOperation.java:133:16:133:36 | Key | Algorithm | jca/SignatureOperation.java:132:61:132:69 | Constant | -| jca/SignatureOperation.java:133:16:133:36 | KeyGeneration | Algorithm | jca/SignatureOperation.java:132:61:132:69 | Constant | +| jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | Mode | jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | +| jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | Padding | jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | +| jca/SignatureOperation.java:133:16:133:36 | Key | Algorithm | jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | +| jca/SignatureOperation.java:133:16:133:36 | KeyGeneration | Algorithm | jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | | jca/SignatureOperation.java:133:16:133:36 | KeyGeneration | Output | jca/SignatureOperation.java:133:16:133:36 | Key | | jca/SignatureOperation.java:142:53:142:61 | KeyOperationAlgorithm | Mode | jca/SignatureOperation.java:142:53:142:61 | KeyOperationAlgorithm | | jca/SignatureOperation.java:142:53:142:61 | KeyOperationAlgorithm | Padding | jca/SignatureOperation.java:142:53:142:61 | KeyOperationAlgorithm | @@ -1540,7 +1569,6 @@ | jca/SymmetricAlgorithm.java:51:44:51:62 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:51:44:51:62 | ModeOfOperation | | jca/SymmetricAlgorithm.java:51:44:51:62 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:51:44:51:62 | PaddingAlgorithm | | jca/SymmetricAlgorithm.java:55:42:55:44 | Key | Source | jca/SymmetricAlgorithm.java:244:64:244:76 | Parameter | -| jca/SymmetricAlgorithm.java:55:47:55:50 | Nonce | Source | jca/SymmetricAlgorithm.java:53:9:53:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:55:47:55:50 | Nonce | Source | jca/SymmetricAlgorithm.java:53:38:53:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:56:29:56:53 | EncryptOperation | Algorithm | jca/SymmetricAlgorithm.java:51:44:51:62 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:56:29:56:53 | EncryptOperation | Input | jca/SymmetricAlgorithm.java:56:44:56:52 | Message | @@ -1561,7 +1589,6 @@ | jca/SymmetricAlgorithm.java:94:44:94:65 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:94:44:94:65 | ModeOfOperation | | jca/SymmetricAlgorithm.java:94:44:94:65 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:94:44:94:65 | PaddingAlgorithm | | jca/SymmetricAlgorithm.java:98:42:98:44 | Key | Source | jca/SymmetricAlgorithm.java:244:64:244:76 | Parameter | -| jca/SymmetricAlgorithm.java:98:47:98:52 | Nonce | Source | jca/SymmetricAlgorithm.java:96:9:96:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:98:47:98:52 | Nonce | Source | jca/SymmetricAlgorithm.java:96:38:96:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:99:29:99:53 | EncryptOperation | Algorithm | jca/SymmetricAlgorithm.java:94:44:94:65 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:99:29:99:53 | EncryptOperation | Input | jca/SymmetricAlgorithm.java:99:44:99:52 | Message | @@ -1590,7 +1617,6 @@ | jca/SymmetricAlgorithm.java:146:44:146:65 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:146:44:146:65 | ModeOfOperation | | jca/SymmetricAlgorithm.java:146:44:146:65 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:146:44:146:65 | PaddingAlgorithm | | jca/SymmetricAlgorithm.java:150:42:150:44 | Key | Source | jca/SymmetricAlgorithm.java:145:36:145:48 | Parameter | -| jca/SymmetricAlgorithm.java:150:47:150:52 | Nonce | Source | jca/SymmetricAlgorithm.java:148:9:148:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:150:47:150:52 | Nonce | Source | jca/SymmetricAlgorithm.java:148:38:148:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:151:29:151:53 | EncryptOperation | Algorithm | jca/SymmetricAlgorithm.java:146:44:146:65 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:151:29:151:53 | EncryptOperation | Input | jca/SymmetricAlgorithm.java:151:44:151:52 | Message | @@ -1601,7 +1627,6 @@ | jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:168:44:168:68 | ModeOfOperation | | jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:168:44:168:68 | PaddingAlgorithm | | jca/SymmetricAlgorithm.java:172:42:172:44 | Key | Source | jca/SymmetricAlgorithm.java:167:42:167:54 | Parameter | -| jca/SymmetricAlgorithm.java:172:47:172:52 | Nonce | Source | jca/SymmetricAlgorithm.java:170:9:170:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:172:47:172:52 | Nonce | Source | jca/SymmetricAlgorithm.java:170:38:170:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:173:29:173:53 | EncryptOperation | Algorithm | jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:173:29:173:53 | EncryptOperation | Input | jca/SymmetricAlgorithm.java:173:44:173:52 | Message | @@ -1612,7 +1637,6 @@ | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:194:42:194:44 | Key | Source | jca/SymmetricAlgorithm.java:244:64:244:76 | Parameter | -| jca/SymmetricAlgorithm.java:194:47:194:72 | Nonce | Source | jca/SymmetricAlgorithm.java:192:9:192:43 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:194:47:194:72 | Nonce | Source | jca/SymmetricAlgorithm.java:192:38:192:42 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:195:29:195:53 | EncryptOperation | Algorithm | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:195:29:195:53 | EncryptOperation | Input | jca/SymmetricAlgorithm.java:195:44:195:52 | Message | @@ -1631,8 +1655,7 @@ | jca/SymmetricAlgorithm.java:215:42:215:50 | Message | Source | jca/SymmetricAlgorithm.java:212:50:212:65 | Parameter | | jca/SymmetricAlgorithm.java:218:44:218:62 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:218:44:218:62 | ModeOfOperation | | jca/SymmetricAlgorithm.java:218:44:218:62 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:218:44:218:62 | PaddingAlgorithm | -| jca/SymmetricAlgorithm.java:222:42:222:51 | Key | Source | jca/SymmetricAlgorithm.java:222:42:222:51 | Key | -| jca/SymmetricAlgorithm.java:222:54:222:57 | Nonce | Source | jca/SymmetricAlgorithm.java:220:9:220:40 | RandomNumberGeneration | +| jca/SymmetricAlgorithm.java:222:42:222:51 | Key | Source | jca/SymmetricAlgorithm.java:215:29:215:51 | KeyOperationOutput | | jca/SymmetricAlgorithm.java:222:54:222:57 | Nonce | Source | jca/SymmetricAlgorithm.java:220:38:220:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:223:29:223:53 | EncryptOperation | Algorithm | jca/SymmetricAlgorithm.java:218:44:218:62 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:223:29:223:53 | EncryptOperation | Input | jca/SymmetricAlgorithm.java:223:44:223:52 | Message | @@ -1641,7 +1664,6 @@ | jca/SymmetricAlgorithm.java:223:29:223:53 | EncryptOperation | Output | jca/SymmetricAlgorithm.java:223:29:223:53 | KeyOperationOutput | | jca/SymmetricAlgorithm.java:223:44:223:52 | Message | Source | jca/SymmetricAlgorithm.java:223:44:223:52 | Message | | jca/SymmetricAlgorithm.java:287:42:287:66 | Message | Source | jca/SymmetricAlgorithm.java:284:58:284:70 | Parameter | -| jca/SymmetricAlgorithm.java:287:69:287:72 | Salt | Source | jca/SymmetricAlgorithm.java:345:9:345:42 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:287:69:287:72 | Salt | Source | jca/SymmetricAlgorithm.java:345:38:345:41 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:288:65:288:86 | HMACAlgorithm | H | jca/SymmetricAlgorithm.java:288:65:288:86 | HashAlgorithm | | jca/SymmetricAlgorithm.java:288:65:288:86 | KeyDerivationAlgorithm | PRF | jca/SymmetricAlgorithm.java:288:65:288:86 | HMACAlgorithm | @@ -1652,7 +1674,6 @@ | jca/SymmetricAlgorithm.java:295:44:295:62 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:295:44:295:62 | ModeOfOperation | | jca/SymmetricAlgorithm.java:295:44:295:62 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:295:44:295:62 | PaddingAlgorithm | | jca/SymmetricAlgorithm.java:298:42:298:47 | Key | Source | jca/SymmetricAlgorithm.java:298:42:298:47 | Key | -| jca/SymmetricAlgorithm.java:298:50:298:78 | Nonce | Source | jca/SymmetricAlgorithm.java:297:9:297:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:298:50:298:78 | Nonce | Source | jca/SymmetricAlgorithm.java:297:38:297:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:299:29:299:53 | EncryptOperation | Algorithm | jca/SymmetricAlgorithm.java:295:44:295:62 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:299:29:299:53 | EncryptOperation | Input | jca/SymmetricAlgorithm.java:299:44:299:52 | Message | @@ -1660,11 +1681,10 @@ | jca/SymmetricAlgorithm.java:299:29:299:53 | EncryptOperation | Nonce | jca/SymmetricAlgorithm.java:298:50:298:78 | Nonce | | jca/SymmetricAlgorithm.java:299:29:299:53 | EncryptOperation | Output | jca/SymmetricAlgorithm.java:299:29:299:53 | KeyOperationOutput | | jca/SymmetricAlgorithm.java:299:44:299:52 | Message | Source | jca/SymmetricAlgorithm.java:284:73:284:88 | Parameter | -| jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | Mode | jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | -| jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | Padding | jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HMACAlgorithm | H | jca/SymmetricAlgorithm.java:301:35:301:46 | HashAlgorithm | | jca/SymmetricAlgorithm.java:302:18:302:30 | Key | Source | jca/SymmetricAlgorithm.java:302:18:302:30 | Key | -| jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | Algorithm | jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | -| jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | HashAlgorithm | jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | +| jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | Algorithm | jca/SymmetricAlgorithm.java:301:35:301:46 | HMACAlgorithm | +| jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | HashAlgorithm | jca/SymmetricAlgorithm.java:301:35:301:46 | HashAlgorithm | | jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | Input | jca/SymmetricAlgorithm.java:303:42:303:51 | Message | | jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | Key | jca/SymmetricAlgorithm.java:302:18:302:30 | Key | | jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | Message | jca/SymmetricAlgorithm.java:303:42:303:51 | Message | @@ -1689,7 +1709,6 @@ | jca/SymmetricModesTest.java:79:44:79:63 | KeyOperationAlgorithm | Mode | jca/SymmetricModesTest.java:79:44:79:63 | ModeOfOperation | | jca/SymmetricModesTest.java:79:44:79:63 | KeyOperationAlgorithm | Padding | jca/SymmetricModesTest.java:79:44:79:63 | PaddingAlgorithm | | jca/SymmetricModesTest.java:83:42:83:44 | Key | Source | jca/SymmetricModesTest.java:78:43:78:55 | Parameter | -| jca/SymmetricModesTest.java:83:47:83:52 | Nonce | Source | jca/SymmetricModesTest.java:81:9:81:40 | RandomNumberGeneration | | jca/SymmetricModesTest.java:83:47:83:52 | Nonce | Source | jca/SymmetricModesTest.java:81:38:81:39 | RandomNumberGeneration | | jca/SymmetricModesTest.java:84:29:84:53 | EncryptOperation | Algorithm | jca/SymmetricModesTest.java:79:44:79:63 | KeyOperationAlgorithm | | jca/SymmetricModesTest.java:84:29:84:53 | EncryptOperation | Input | jca/SymmetricModesTest.java:84:44:84:52 | Message | @@ -1715,7 +1734,6 @@ | jca/UniversalFlowTest.java:28:29:28:47 | KeyOperationAlgorithm | Mode | jca/UniversalFlowTest.java:28:29:28:47 | ModeOfOperation | | jca/UniversalFlowTest.java:28:29:28:47 | KeyOperationAlgorithm | Padding | jca/UniversalFlowTest.java:28:29:28:47 | PaddingAlgorithm | | jca/UniversalFlowTest.java:33:42:33:44 | Key | Source | jca/UniversalFlowTest.java:27:25:27:44 | Key | -| jca/UniversalFlowTest.java:33:47:33:53 | Nonce | Source | jca/UniversalFlowTest.java:31:9:31:40 | RandomNumberGeneration | | jca/UniversalFlowTest.java:33:47:33:53 | Nonce | Source | jca/UniversalFlowTest.java:31:38:31:39 | RandomNumberGeneration | | jca/UniversalFlowTest.java:34:32:34:74 | EncryptOperation | Algorithm | jca/UniversalFlowTest.java:28:29:28:47 | KeyOperationAlgorithm | | jca/UniversalFlowTest.java:34:32:34:74 | EncryptOperation | Input | jca/UniversalFlowTest.java:34:47:34:73 | Message | diff --git a/java/ql/test/experimental/library-tests/quantum/node_properties.expected b/java/ql/test/experimental/library-tests/quantum/node_properties.expected index ea071871fd94..20c7276cc4f6 100644 --- a/java/ql/test/experimental/library-tests/quantum/node_properties.expected +++ b/java/ql/test/experimental/library-tests/quantum/node_properties.expected @@ -31,7 +31,6 @@ | jca/AesWrapAndPBEWith.java:109:27:109:54 | Key | KeyType | Symmetric | jca/AesWrapAndPBEWith.java:109:27:109:54 | jca/AesWrapAndPBEWith.java:109:27:109:54 | | jca/AesWrapAndPBEWith.java:109:27:109:54 | KeyDerivation | Iterations | Constant:1000 | jca/AesWrapAndPBEWith.java:107:72:107:75 | jca/AesWrapAndPBEWith.java:107:72:107:75 | | jca/AesWrapAndPBEWith.java:109:27:109:54 | KeyDerivation | KeySize | Constant:64 | jca/AesWrapAndPBEWith.java:107:78:107:79 | jca/AesWrapAndPBEWith.java:107:78:107:79 | -| jca/AesWrapAndPBEWith.java:122:9:122:42 | RandomNumberGeneration | Description | nextBytes | jca/AesWrapAndPBEWith.java:122:9:122:42 | jca/AesWrapAndPBEWith.java:122:9:122:42 | | jca/AesWrapAndPBEWith.java:122:38:122:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/AesWrapAndPBEWith.java:122:38:122:41 | jca/AesWrapAndPBEWith.java:122:38:122:41 | | jca/AesWrapAndPBEWith.java:123:72:123:76 | Constant | Description | 10000 | jca/AesWrapAndPBEWith.java:123:72:123:76 | jca/AesWrapAndPBEWith.java:123:72:123:76 | | jca/AesWrapAndPBEWith.java:123:79:123:81 | Constant | Description | 256 | jca/AesWrapAndPBEWith.java:123:79:123:81 | jca/AesWrapAndPBEWith.java:123:79:123:81 | @@ -45,7 +44,6 @@ | jca/AesWrapAndPBEWith.java:125:27:125:54 | Key | KeyType | Symmetric | jca/AesWrapAndPBEWith.java:125:27:125:54 | jca/AesWrapAndPBEWith.java:125:27:125:54 | | jca/AesWrapAndPBEWith.java:125:27:125:54 | KeyDerivation | Iterations | Constant:10000 | jca/AesWrapAndPBEWith.java:123:72:123:76 | jca/AesWrapAndPBEWith.java:123:72:123:76 | | jca/AesWrapAndPBEWith.java:125:27:125:54 | KeyDerivation | KeySize | Constant:256 | jca/AesWrapAndPBEWith.java:123:79:123:81 | jca/AesWrapAndPBEWith.java:123:79:123:81 | -| jca/AesWrapAndPBEWith.java:140:9:140:42 | RandomNumberGeneration | Description | nextBytes | jca/AesWrapAndPBEWith.java:140:9:140:42 | jca/AesWrapAndPBEWith.java:140:9:140:42 | | jca/AesWrapAndPBEWith.java:140:38:140:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/AesWrapAndPBEWith.java:140:38:140:41 | jca/AesWrapAndPBEWith.java:140:38:140:41 | | jca/AesWrapAndPBEWith.java:141:72:141:76 | Constant | Description | 10000 | jca/AesWrapAndPBEWith.java:141:72:141:76 | jca/AesWrapAndPBEWith.java:141:72:141:76 | | jca/AesWrapAndPBEWith.java:141:79:141:81 | Constant | Description | 128 | jca/AesWrapAndPBEWith.java:141:79:141:81 | jca/AesWrapAndPBEWith.java:141:79:141:81 | @@ -61,11 +59,9 @@ | jca/AesWrapAndPBEWith.java:146:44:146:65 | ModeOfOperation | RawName | CBC | jca/AesWrapAndPBEWith.java:146:44:146:65 | jca/AesWrapAndPBEWith.java:146:44:146:65 | | jca/AesWrapAndPBEWith.java:146:44:146:65 | PaddingAlgorithm | Name | PKCS7 | jca/AesWrapAndPBEWith.java:146:44:146:65 | jca/AesWrapAndPBEWith.java:146:44:146:65 | | jca/AesWrapAndPBEWith.java:146:44:146:65 | PaddingAlgorithm | RawName | PKCS5Padding | jca/AesWrapAndPBEWith.java:146:44:146:65 | jca/AesWrapAndPBEWith.java:146:44:146:65 | -| jca/AesWrapAndPBEWith.java:148:9:148:40 | RandomNumberGeneration | Description | nextBytes | jca/AesWrapAndPBEWith.java:148:9:148:40 | jca/AesWrapAndPBEWith.java:148:9:148:40 | | jca/AesWrapAndPBEWith.java:148:38:148:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/AesWrapAndPBEWith.java:148:38:148:39 | jca/AesWrapAndPBEWith.java:148:38:148:39 | | jca/AesWrapAndPBEWith.java:150:42:150:47 | Key | KeyType | Unknown | jca/AesWrapAndPBEWith.java:150:42:150:47 | jca/AesWrapAndPBEWith.java:150:42:150:47 | | jca/AesWrapAndPBEWith.java:151:29:151:64 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/AesWrapAndPBEWith.java:151:29:151:64 | jca/AesWrapAndPBEWith.java:151:29:151:64 | -| jca/AesWrapAndPBEWith.java:167:9:167:42 | RandomNumberGeneration | Description | nextBytes | jca/AesWrapAndPBEWith.java:167:9:167:42 | jca/AesWrapAndPBEWith.java:167:9:167:42 | | jca/AesWrapAndPBEWith.java:167:38:167:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/AesWrapAndPBEWith.java:167:38:167:41 | jca/AesWrapAndPBEWith.java:167:38:167:41 | | jca/AesWrapAndPBEWith.java:168:72:168:76 | Constant | Description | 10000 | jca/AesWrapAndPBEWith.java:168:72:168:76 | jca/AesWrapAndPBEWith.java:168:72:168:76 | | jca/AesWrapAndPBEWith.java:168:79:168:81 | Constant | Description | 128 | jca/AesWrapAndPBEWith.java:168:79:168:81 | jca/AesWrapAndPBEWith.java:168:79:168:81 | @@ -81,12 +77,12 @@ | jca/AesWrapAndPBEWith.java:173:44:173:65 | ModeOfOperation | RawName | CBC | jca/AesWrapAndPBEWith.java:173:44:173:65 | jca/AesWrapAndPBEWith.java:173:44:173:65 | | jca/AesWrapAndPBEWith.java:173:44:173:65 | PaddingAlgorithm | Name | PKCS7 | jca/AesWrapAndPBEWith.java:173:44:173:65 | jca/AesWrapAndPBEWith.java:173:44:173:65 | | jca/AesWrapAndPBEWith.java:173:44:173:65 | PaddingAlgorithm | RawName | PKCS5Padding | jca/AesWrapAndPBEWith.java:173:44:173:65 | jca/AesWrapAndPBEWith.java:173:44:173:65 | -| jca/AesWrapAndPBEWith.java:175:9:175:40 | RandomNumberGeneration | Description | nextBytes | jca/AesWrapAndPBEWith.java:175:9:175:40 | jca/AesWrapAndPBEWith.java:175:9:175:40 | | jca/AesWrapAndPBEWith.java:175:38:175:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/AesWrapAndPBEWith.java:175:38:175:39 | jca/AesWrapAndPBEWith.java:175:38:175:39 | | jca/AesWrapAndPBEWith.java:177:42:177:47 | Key | KeyType | Unknown | jca/AesWrapAndPBEWith.java:177:42:177:47 | jca/AesWrapAndPBEWith.java:177:42:177:47 | | jca/AesWrapAndPBEWith.java:178:29:178:64 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/AesWrapAndPBEWith.java:178:29:178:64 | jca/AesWrapAndPBEWith.java:178:29:178:64 | | jca/AesWrapAndPBEWith.java:200:55:200:69 | Parameter | Description | password | jca/AesWrapAndPBEWith.java:200:55:200:69 | jca/AesWrapAndPBEWith.java:200:55:200:69 | | jca/AesWrapAndPBEWith.java:200:72:200:87 | Parameter | Description | plaintext | jca/AesWrapAndPBEWith.java:200:72:200:87 | jca/AesWrapAndPBEWith.java:200:72:200:87 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | EllipticCurve | CurveType | SEC | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | EllipticCurve | KeySize | 256 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | EllipticCurve | Name | secp256r1 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | EllipticCurve | ParsedName | secp256r1 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:86:47:86:57 | @@ -122,7 +118,6 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:166:47:166:85 | PaddingAlgorithm | RawName | OAEPWithSHA-256AndMGF1Padding | jca/AsymmetricEncryptionMacHybridCryptosystem.java:166:47:166:85 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:166:47:166:85 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:167:42:167:58 | Key | KeyType | Unknown | jca/AsymmetricEncryptionMacHybridCryptosystem.java:167:42:167:58 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:167:42:167:58 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:168:34:168:55 | WrapOperation | KeyOperationSubtype | Wrap | jca/AsymmetricEncryptionMacHybridCryptosystem.java:168:34:168:55 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:168:34:168:55 | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:9:171:40 | RandomNumberGeneration | Description | nextBytes | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:9:171:40 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:9:171:40 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:38:171:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:38:171:39 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:38:171:39 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | KeyOperationAlgorithm | Name | AES | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | KeyOperationAlgorithm | RawName | AES/GCM/NoPadding | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | @@ -152,7 +147,6 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:197:29:197:56 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/AsymmetricEncryptionMacHybridCryptosystem.java:197:29:197:56 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:197:29:197:56 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:215:91:215:96 | KeyAgreementAlgorithm | Name | ECDH | jca/AsymmetricEncryptionMacHybridCryptosystem.java:215:91:215:96 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:215:91:215:96 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:215:91:215:96 | KeyAgreementAlgorithm | RawName | ECDH | jca/AsymmetricEncryptionMacHybridCryptosystem.java:215:91:215:96 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:215:91:215:96 | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:9:220:40 | RandomNumberGeneration | Description | nextBytes | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:9:220:40 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:9:220:40 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:38:220:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:38:220:39 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:38:220:39 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | KeyOperationAlgorithm | Name | AES | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | KeyOperationAlgorithm | RawName | AES/GCM/NoPadding | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | @@ -175,12 +169,18 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:245:42:245:47 | Key | KeyType | Unknown | jca/AsymmetricEncryptionMacHybridCryptosystem.java:245:42:245:47 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:245:42:245:47 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:271:58:271:73 | Parameter | Description | plaintext | jca/AsymmetricEncryptionMacHybridCryptosystem.java:271:58:271:73 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:271:58:271:73 | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | Name | HMAC | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HMACAlgorithm | Name | HMAC | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HashAlgorithm | DigestSize | 256 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HashAlgorithm | Name | SHA2 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HashAlgorithm | RawName | HmacSHA256 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | Key | KeyType | Unknown | jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | KeyOperationSubtype | Mac | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | Name | HMAC | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | RawName | HmacSHA1 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HMACAlgorithm | Name | HMAC | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HMACAlgorithm | RawName | HmacSHA1 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HashAlgorithm | DigestSize | 160 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HashAlgorithm | Name | SHA1 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HashAlgorithm | RawName | HmacSHA1 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | Key | KeyType | Unknown | jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | KeyOperationSubtype | Mac | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:320:52:320:56 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:321:17:321:19 | jca/AsymmetricEncryptionMacHybridCryptosystem.java:321:17:321:19 | @@ -196,7 +196,6 @@ | jca/ChainedEncryptionTest.java:19:44:19:62 | ModeOfOperation | RawName | GCM | jca/ChainedEncryptionTest.java:19:44:19:62 | jca/ChainedEncryptionTest.java:19:44:19:62 | | jca/ChainedEncryptionTest.java:19:44:19:62 | PaddingAlgorithm | Name | UnknownPadding | jca/ChainedEncryptionTest.java:19:44:19:62 | jca/ChainedEncryptionTest.java:19:44:19:62 | | jca/ChainedEncryptionTest.java:19:44:19:62 | PaddingAlgorithm | RawName | NoPadding | jca/ChainedEncryptionTest.java:19:44:19:62 | jca/ChainedEncryptionTest.java:19:44:19:62 | -| jca/ChainedEncryptionTest.java:21:9:21:40 | RandomNumberGeneration | Description | nextBytes | jca/ChainedEncryptionTest.java:21:9:21:40 | jca/ChainedEncryptionTest.java:21:9:21:40 | | jca/ChainedEncryptionTest.java:21:38:21:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/ChainedEncryptionTest.java:21:38:21:39 | jca/ChainedEncryptionTest.java:21:38:21:39 | | jca/ChainedEncryptionTest.java:23:42:23:44 | Key | KeyType | Unknown | jca/ChainedEncryptionTest.java:23:42:23:44 | jca/ChainedEncryptionTest.java:23:42:23:44 | | jca/ChainedEncryptionTest.java:24:29:24:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/ChainedEncryptionTest.java:24:29:24:53 | jca/ChainedEncryptionTest.java:24:29:24:53 | @@ -211,7 +210,6 @@ | jca/ChainedEncryptionTest.java:35:16:35:41 | DecryptOperation | KeyOperationSubtype | Decrypt | jca/ChainedEncryptionTest.java:35:16:35:41 | jca/ChainedEncryptionTest.java:35:16:35:41 | | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | Name | Unknown | jca/ChainedEncryptionTest.java:40:44:40:62 | jca/ChainedEncryptionTest.java:40:44:40:62 | | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | RawName | ChaCha20-Poly1305 | jca/ChainedEncryptionTest.java:40:44:40:62 | jca/ChainedEncryptionTest.java:40:44:40:62 | -| jca/ChainedEncryptionTest.java:42:9:42:43 | RandomNumberGeneration | Description | nextBytes | jca/ChainedEncryptionTest.java:42:9:42:43 | jca/ChainedEncryptionTest.java:42:9:42:43 | | jca/ChainedEncryptionTest.java:42:38:42:42 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/ChainedEncryptionTest.java:42:38:42:42 | jca/ChainedEncryptionTest.java:42:38:42:42 | | jca/ChainedEncryptionTest.java:43:42:43:44 | Key | KeyType | Unknown | jca/ChainedEncryptionTest.java:43:42:43:44 | jca/ChainedEncryptionTest.java:43:42:43:44 | | jca/ChainedEncryptionTest.java:44:29:44:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/ChainedEncryptionTest.java:44:29:44:53 | jca/ChainedEncryptionTest.java:44:29:44:53 | @@ -233,7 +231,6 @@ | jca/ChainedEncryptionTest.java:83:59:83:68 | KeyOperationAlgorithm | Structure | Stream | jca/ChainedEncryptionTest.java:83:59:83:68 | jca/ChainedEncryptionTest.java:83:59:83:68 | | jca/ChainedEncryptionTest.java:84:24:84:26 | Constant | Description | 256 | jca/ChainedEncryptionTest.java:84:24:84:26 | jca/ChainedEncryptionTest.java:84:24:84:26 | | jca/ChainedEncryptionTest.java:85:30:85:52 | Key | KeyType | Symmetric | jca/ChainedEncryptionTest.java:85:30:85:52 | jca/ChainedEncryptionTest.java:85:30:85:52 | -| jca/ChainedEncryptionTest.java:89:9:89:43 | RandomNumberGeneration | Description | nextBytes | jca/ChainedEncryptionTest.java:89:9:89:43 | jca/ChainedEncryptionTest.java:89:9:89:43 | | jca/ChainedEncryptionTest.java:89:38:89:42 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/ChainedEncryptionTest.java:89:38:89:42 | jca/ChainedEncryptionTest.java:89:38:89:42 | | jca/ChainedEncryptionTest.java:90:47:90:65 | KeyOperationAlgorithm | Name | AES | jca/ChainedEncryptionTest.java:90:47:90:65 | jca/ChainedEncryptionTest.java:90:47:90:65 | | jca/ChainedEncryptionTest.java:90:47:90:65 | KeyOperationAlgorithm | RawName | AES/GCM/NoPadding | jca/ChainedEncryptionTest.java:90:47:90:65 | jca/ChainedEncryptionTest.java:90:47:90:65 | @@ -244,7 +241,6 @@ | jca/ChainedEncryptionTest.java:90:47:90:65 | PaddingAlgorithm | RawName | NoPadding | jca/ChainedEncryptionTest.java:90:47:90:65 | jca/ChainedEncryptionTest.java:90:47:90:65 | | jca/ChainedEncryptionTest.java:92:45:92:52 | Key | KeyType | Unknown | jca/ChainedEncryptionTest.java:92:45:92:52 | jca/ChainedEncryptionTest.java:92:45:92:52 | | jca/ChainedEncryptionTest.java:93:34:93:62 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/ChainedEncryptionTest.java:93:34:93:62 | jca/ChainedEncryptionTest.java:93:34:93:62 | -| jca/ChainedEncryptionTest.java:97:9:97:49 | RandomNumberGeneration | Description | nextBytes | jca/ChainedEncryptionTest.java:97:9:97:49 | jca/ChainedEncryptionTest.java:97:9:97:49 | | jca/ChainedEncryptionTest.java:97:38:97:48 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/ChainedEncryptionTest.java:97:38:97:48 | jca/ChainedEncryptionTest.java:97:38:97:48 | | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | Name | Unknown | jca/ChainedEncryptionTest.java:98:50:98:68 | jca/ChainedEncryptionTest.java:98:50:98:68 | | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | RawName | ChaCha20-Poly1305 | jca/ChainedEncryptionTest.java:98:50:98:68 | jca/ChainedEncryptionTest.java:98:50:98:68 | @@ -312,8 +308,11 @@ | jca/Digest.java:108:62:108:68 | HashAlgorithm | RawName | SHA-1 | jca/Digest.java:108:62:108:68 | jca/Digest.java:108:62:108:68 | | jca/Digest.java:117:35:117:46 | Parameter | Description | input | jca/Digest.java:117:35:117:46 | jca/Digest.java:117:35:117:46 | | jca/Digest.java:117:49:117:58 | Parameter | Description | key | jca/Digest.java:117:49:117:58 | jca/Digest.java:117:49:117:58 | -| jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | Name | HMAC | jca/Digest.java:118:36:118:47 | jca/Digest.java:118:36:118:47 | -| jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/Digest.java:118:36:118:47 | jca/Digest.java:118:36:118:47 | +| jca/Digest.java:118:36:118:47 | HMACAlgorithm | Name | HMAC | jca/Digest.java:118:36:118:47 | jca/Digest.java:118:36:118:47 | +| jca/Digest.java:118:36:118:47 | HMACAlgorithm | RawName | HmacSHA256 | jca/Digest.java:118:36:118:47 | jca/Digest.java:118:36:118:47 | +| jca/Digest.java:118:36:118:47 | HashAlgorithm | DigestSize | 256 | jca/Digest.java:118:36:118:47 | jca/Digest.java:118:36:118:47 | +| jca/Digest.java:118:36:118:47 | HashAlgorithm | Name | SHA2 | jca/Digest.java:118:36:118:47 | jca/Digest.java:118:36:118:47 | +| jca/Digest.java:118:36:118:47 | HashAlgorithm | RawName | HmacSHA256 | jca/Digest.java:118:36:118:47 | jca/Digest.java:118:36:118:47 | | jca/Digest.java:120:19:120:27 | Key | KeyType | Unknown | jca/Digest.java:120:19:120:27 | jca/Digest.java:120:19:120:27 | | jca/Digest.java:121:23:121:52 | MACOperation | KeyOperationSubtype | Mac | jca/Digest.java:121:23:121:52 | jca/Digest.java:121:23:121:52 | | jca/Digest.java:140:44:140:62 | KeyOperationAlgorithm | Name | AES | jca/Digest.java:140:44:140:62 | jca/Digest.java:140:44:140:62 | @@ -350,8 +349,11 @@ | jca/Digest.java:187:42:187:54 | Key | KeyType | Unknown | jca/Digest.java:187:42:187:54 | jca/Digest.java:187:42:187:54 | | jca/Digest.java:188:29:188:78 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/Digest.java:188:29:188:78 | jca/Digest.java:188:29:188:78 | | jca/Digest.java:188:44:188:66 | Constant | Description | "Further Use Test Data" | jca/Digest.java:188:44:188:66 | jca/Digest.java:188:44:188:66 | -| jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | Name | HMAC | jca/Digest.java:191:35:191:46 | jca/Digest.java:191:35:191:46 | -| jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/Digest.java:191:35:191:46 | jca/Digest.java:191:35:191:46 | +| jca/Digest.java:191:35:191:46 | HMACAlgorithm | Name | HMAC | jca/Digest.java:191:35:191:46 | jca/Digest.java:191:35:191:46 | +| jca/Digest.java:191:35:191:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/Digest.java:191:35:191:46 | jca/Digest.java:191:35:191:46 | +| jca/Digest.java:191:35:191:46 | HashAlgorithm | DigestSize | 256 | jca/Digest.java:191:35:191:46 | jca/Digest.java:191:35:191:46 | +| jca/Digest.java:191:35:191:46 | HashAlgorithm | Name | SHA2 | jca/Digest.java:191:35:191:46 | jca/Digest.java:191:35:191:46 | +| jca/Digest.java:191:35:191:46 | HashAlgorithm | RawName | HmacSHA256 | jca/Digest.java:191:35:191:46 | jca/Digest.java:191:35:191:46 | | jca/Digest.java:192:18:192:23 | Key | KeyType | Unknown | jca/Digest.java:192:18:192:23 | jca/Digest.java:192:18:192:23 | | jca/Digest.java:193:30:193:52 | MACOperation | KeyOperationSubtype | Mac | jca/Digest.java:193:30:193:52 | jca/Digest.java:193:30:193:52 | | jca/Digest.java:210:44:210:62 | KeyOperationAlgorithm | Name | AES | jca/Digest.java:210:44:210:62 | jca/Digest.java:210:44:210:62 | @@ -369,18 +371,20 @@ | jca/Digest.java:239:56:239:60 | KeyOperationAlgorithm | Structure | Block | jca/Digest.java:239:56:239:60 | jca/Digest.java:239:56:239:60 | | jca/Digest.java:240:21:240:23 | Constant | Description | 256 | jca/Digest.java:240:21:240:23 | jca/Digest.java:240:21:240:23 | | jca/Digest.java:241:16:241:35 | Key | KeyType | Symmetric | jca/Digest.java:241:16:241:35 | jca/Digest.java:241:16:241:35 | -| jca/Digest.java:253:9:253:42 | RandomNumberGeneration | Description | nextBytes | jca/Digest.java:253:9:253:42 | jca/Digest.java:253:9:253:42 | | jca/Digest.java:253:38:253:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/Digest.java:253:38:253:41 | jca/Digest.java:253:38:253:41 | +| jca/EllipticCurve1.java:46:66:46:76 | EllipticCurve | CurveType | SEC | jca/EllipticCurve1.java:46:66:46:76 | jca/EllipticCurve1.java:46:66:46:76 | | jca/EllipticCurve1.java:46:66:46:76 | EllipticCurve | KeySize | 256 | jca/EllipticCurve1.java:46:66:46:76 | jca/EllipticCurve1.java:46:66:46:76 | | jca/EllipticCurve1.java:46:66:46:76 | EllipticCurve | Name | secp256r1 | jca/EllipticCurve1.java:46:66:46:76 | jca/EllipticCurve1.java:46:66:46:76 | | jca/EllipticCurve1.java:46:66:46:76 | EllipticCurve | ParsedName | secp256r1 | jca/EllipticCurve1.java:46:66:46:76 | jca/EllipticCurve1.java:46:66:46:76 | | jca/EllipticCurve1.java:46:66:46:76 | EllipticCurve | RawName | secp256r1 | jca/EllipticCurve1.java:46:66:46:76 | jca/EllipticCurve1.java:46:66:46:76 | | jca/EllipticCurve1.java:47:16:47:36 | Key | KeyType | Asymmetric | jca/EllipticCurve1.java:47:16:47:36 | jca/EllipticCurve1.java:47:16:47:36 | +| jca/EllipticCurve1.java:56:66:56:76 | EllipticCurve | CurveType | SEC | jca/EllipticCurve1.java:56:66:56:76 | jca/EllipticCurve1.java:56:66:56:76 | | jca/EllipticCurve1.java:56:66:56:76 | EllipticCurve | KeySize | 256 | jca/EllipticCurve1.java:56:66:56:76 | jca/EllipticCurve1.java:56:66:56:76 | | jca/EllipticCurve1.java:56:66:56:76 | EllipticCurve | Name | secp256k1 | jca/EllipticCurve1.java:56:66:56:76 | jca/EllipticCurve1.java:56:66:56:76 | | jca/EllipticCurve1.java:56:66:56:76 | EllipticCurve | ParsedName | secp256k1 | jca/EllipticCurve1.java:56:66:56:76 | jca/EllipticCurve1.java:56:66:56:76 | | jca/EllipticCurve1.java:56:66:56:76 | EllipticCurve | RawName | secp256k1 | jca/EllipticCurve1.java:56:66:56:76 | jca/EllipticCurve1.java:56:66:56:76 | | jca/EllipticCurve1.java:57:16:57:36 | Key | KeyType | Asymmetric | jca/EllipticCurve1.java:57:16:57:36 | jca/EllipticCurve1.java:57:16:57:36 | +| jca/EllipticCurve1.java:66:66:66:82 | EllipticCurve | CurveType | BRAINPOOL | jca/EllipticCurve1.java:66:66:66:82 | jca/EllipticCurve1.java:66:66:66:82 | | jca/EllipticCurve1.java:66:66:66:82 | EllipticCurve | KeySize | 256 | jca/EllipticCurve1.java:66:66:66:82 | jca/EllipticCurve1.java:66:66:66:82 | | jca/EllipticCurve1.java:66:66:66:82 | EllipticCurve | Name | brainpoolP256r1 | jca/EllipticCurve1.java:66:66:66:82 | jca/EllipticCurve1.java:66:66:66:82 | | jca/EllipticCurve1.java:66:66:66:82 | EllipticCurve | ParsedName | brainpoolP256r1 | jca/EllipticCurve1.java:66:66:66:82 | jca/EllipticCurve1.java:66:66:66:82 | @@ -392,6 +396,7 @@ | jca/EllipticCurve1.java:83:61:83:66 | KeyAgreementAlgorithm | Name | X448 | jca/EllipticCurve1.java:83:61:83:66 | jca/EllipticCurve1.java:83:61:83:66 | | jca/EllipticCurve1.java:83:61:83:66 | KeyAgreementAlgorithm | RawName | X448 | jca/EllipticCurve1.java:83:61:83:66 | jca/EllipticCurve1.java:83:61:83:66 | | jca/EllipticCurve1.java:84:16:84:36 | Key | KeyType | Asymmetric | jca/EllipticCurve1.java:84:16:84:36 | jca/EllipticCurve1.java:84:16:84:36 | +| jca/EllipticCurve1.java:94:66:94:76 | EllipticCurve | CurveType | SEC | jca/EllipticCurve1.java:94:66:94:76 | jca/EllipticCurve1.java:94:66:94:76 | | jca/EllipticCurve1.java:94:66:94:76 | EllipticCurve | KeySize | 163 | jca/EllipticCurve1.java:94:66:94:76 | jca/EllipticCurve1.java:94:66:94:76 | | jca/EllipticCurve1.java:94:66:94:76 | EllipticCurve | Name | sect163r2 | jca/EllipticCurve1.java:94:66:94:76 | jca/EllipticCurve1.java:94:66:94:76 | | jca/EllipticCurve1.java:94:66:94:76 | EllipticCurve | ParsedName | sect163r2 | jca/EllipticCurve1.java:94:66:94:76 | jca/EllipticCurve1.java:94:66:94:76 | @@ -399,18 +404,22 @@ | jca/EllipticCurve1.java:95:16:95:36 | Key | KeyType | Asymmetric | jca/EllipticCurve1.java:95:16:95:36 | jca/EllipticCurve1.java:95:16:95:36 | | jca/EllipticCurve1.java:105:66:105:76 | Constant | Description | "sm2p256v1" | jca/EllipticCurve1.java:105:66:105:76 | jca/EllipticCurve1.java:105:66:105:76 | | jca/EllipticCurve1.java:106:16:106:36 | Key | KeyType | Asymmetric | jca/EllipticCurve1.java:106:16:106:36 | jca/EllipticCurve1.java:106:16:106:36 | -| jca/EllipticCurve1.java:114:61:114:69 | Constant | Description | "Ed25519" | jca/EllipticCurve1.java:114:61:114:69 | jca/EllipticCurve1.java:114:61:114:69 | +| jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | Name | EDSA | jca/EllipticCurve1.java:114:61:114:69 | jca/EllipticCurve1.java:114:61:114:69 | +| jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | RawName | Ed25519 | jca/EllipticCurve1.java:114:61:114:69 | jca/EllipticCurve1.java:114:61:114:69 | | jca/EllipticCurve1.java:115:16:115:36 | Key | KeyType | Asymmetric | jca/EllipticCurve1.java:115:16:115:36 | jca/EllipticCurve1.java:115:16:115:36 | +| jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | CurveType | SEC | jca/EllipticCurve2.java:46:47:46:57 | jca/EllipticCurve2.java:46:47:46:57 | | jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | KeySize | 256 | jca/EllipticCurve2.java:46:47:46:57 | jca/EllipticCurve2.java:46:47:46:57 | | jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | Name | secp256r1 | jca/EllipticCurve2.java:46:47:46:57 | jca/EllipticCurve2.java:46:47:46:57 | | jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | ParsedName | secp256r1 | jca/EllipticCurve2.java:46:47:46:57 | jca/EllipticCurve2.java:46:47:46:57 | | jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | RawName | secp256r1 | jca/EllipticCurve2.java:46:47:46:57 | jca/EllipticCurve2.java:46:47:46:57 | | jca/EllipticCurve2.java:47:16:47:36 | Key | KeyType | Asymmetric | jca/EllipticCurve2.java:47:16:47:36 | jca/EllipticCurve2.java:47:16:47:36 | +| jca/EllipticCurve2.java:55:47:55:57 | EllipticCurve | CurveType | SEC | jca/EllipticCurve2.java:55:47:55:57 | jca/EllipticCurve2.java:55:47:55:57 | | jca/EllipticCurve2.java:55:47:55:57 | EllipticCurve | KeySize | 256 | jca/EllipticCurve2.java:55:47:55:57 | jca/EllipticCurve2.java:55:47:55:57 | | jca/EllipticCurve2.java:55:47:55:57 | EllipticCurve | Name | secp256k1 | jca/EllipticCurve2.java:55:47:55:57 | jca/EllipticCurve2.java:55:47:55:57 | | jca/EllipticCurve2.java:55:47:55:57 | EllipticCurve | ParsedName | secp256k1 | jca/EllipticCurve2.java:55:47:55:57 | jca/EllipticCurve2.java:55:47:55:57 | | jca/EllipticCurve2.java:55:47:55:57 | EllipticCurve | RawName | secp256k1 | jca/EllipticCurve2.java:55:47:55:57 | jca/EllipticCurve2.java:55:47:55:57 | | jca/EllipticCurve2.java:56:16:56:36 | Key | KeyType | Asymmetric | jca/EllipticCurve2.java:56:16:56:36 | jca/EllipticCurve2.java:56:16:56:36 | +| jca/EllipticCurve2.java:64:47:64:63 | EllipticCurve | CurveType | BRAINPOOL | jca/EllipticCurve2.java:64:47:64:63 | jca/EllipticCurve2.java:64:47:64:63 | | jca/EllipticCurve2.java:64:47:64:63 | EllipticCurve | KeySize | 256 | jca/EllipticCurve2.java:64:47:64:63 | jca/EllipticCurve2.java:64:47:64:63 | | jca/EllipticCurve2.java:64:47:64:63 | EllipticCurve | Name | brainpoolP256r1 | jca/EllipticCurve2.java:64:47:64:63 | jca/EllipticCurve2.java:64:47:64:63 | | jca/EllipticCurve2.java:64:47:64:63 | EllipticCurve | ParsedName | brainpoolP256r1 | jca/EllipticCurve2.java:64:47:64:63 | jca/EllipticCurve2.java:64:47:64:63 | @@ -419,7 +428,8 @@ | jca/EllipticCurve2.java:72:61:72:68 | KeyAgreementAlgorithm | Name | X25519 | jca/EllipticCurve2.java:72:61:72:68 | jca/EllipticCurve2.java:72:61:72:68 | | jca/EllipticCurve2.java:72:61:72:68 | KeyAgreementAlgorithm | RawName | X25519 | jca/EllipticCurve2.java:72:61:72:68 | jca/EllipticCurve2.java:72:61:72:68 | | jca/EllipticCurve2.java:73:16:73:36 | Key | KeyType | Asymmetric | jca/EllipticCurve2.java:73:16:73:36 | jca/EllipticCurve2.java:73:16:73:36 | -| jca/EllipticCurve2.java:80:61:80:69 | Constant | Description | "Ed25519" | jca/EllipticCurve2.java:80:61:80:69 | jca/EllipticCurve2.java:80:61:80:69 | +| jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | Name | EDSA | jca/EllipticCurve2.java:80:61:80:69 | jca/EllipticCurve2.java:80:61:80:69 | +| jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | RawName | Ed25519 | jca/EllipticCurve2.java:80:61:80:69 | jca/EllipticCurve2.java:80:61:80:69 | | jca/EllipticCurve2.java:81:16:81:36 | Key | KeyType | Asymmetric | jca/EllipticCurve2.java:81:16:81:36 | jca/EllipticCurve2.java:81:16:81:36 | | jca/EllipticCurve2.java:105:52:105:57 | KeyAgreementAlgorithm | Name | ECDH | jca/EllipticCurve2.java:105:52:105:57 | jca/EllipticCurve2.java:105:52:105:57 | | jca/EllipticCurve2.java:105:52:105:57 | KeyAgreementAlgorithm | RawName | ECDH | jca/EllipticCurve2.java:105:52:105:57 | jca/EllipticCurve2.java:105:52:105:57 | @@ -465,7 +475,6 @@ | jca/EllipticCurve2.java:219:44:219:62 | ModeOfOperation | RawName | GCM | jca/EllipticCurve2.java:219:44:219:62 | jca/EllipticCurve2.java:219:44:219:62 | | jca/EllipticCurve2.java:219:44:219:62 | PaddingAlgorithm | Name | UnknownPadding | jca/EllipticCurve2.java:219:44:219:62 | jca/EllipticCurve2.java:219:44:219:62 | | jca/EllipticCurve2.java:219:44:219:62 | PaddingAlgorithm | RawName | NoPadding | jca/EllipticCurve2.java:219:44:219:62 | jca/EllipticCurve2.java:219:44:219:62 | -| jca/EllipticCurve2.java:221:9:221:40 | RandomNumberGeneration | Description | nextBytes | jca/EllipticCurve2.java:221:9:221:40 | jca/EllipticCurve2.java:221:9:221:40 | | jca/EllipticCurve2.java:221:38:221:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/EllipticCurve2.java:221:38:221:39 | jca/EllipticCurve2.java:221:38:221:39 | | jca/EllipticCurve2.java:223:42:223:47 | Key | KeyType | Unknown | jca/EllipticCurve2.java:223:42:223:47 | jca/EllipticCurve2.java:223:42:223:47 | | jca/EllipticCurve2.java:224:29:224:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/EllipticCurve2.java:224:29:224:53 | jca/EllipticCurve2.java:224:29:224:53 | @@ -484,7 +493,6 @@ | jca/Encryption1.java:63:44:63:62 | ModeOfOperation | RawName | GCM | jca/Encryption1.java:63:44:63:62 | jca/Encryption1.java:63:44:63:62 | | jca/Encryption1.java:63:44:63:62 | PaddingAlgorithm | Name | UnknownPadding | jca/Encryption1.java:63:44:63:62 | jca/Encryption1.java:63:44:63:62 | | jca/Encryption1.java:63:44:63:62 | PaddingAlgorithm | RawName | NoPadding | jca/Encryption1.java:63:44:63:62 | jca/Encryption1.java:63:44:63:62 | -| jca/Encryption1.java:65:9:65:40 | RandomNumberGeneration | Description | nextBytes | jca/Encryption1.java:65:9:65:40 | jca/Encryption1.java:65:9:65:40 | | jca/Encryption1.java:65:38:65:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/Encryption1.java:65:38:65:39 | jca/Encryption1.java:65:38:65:39 | | jca/Encryption1.java:67:42:67:44 | Key | KeyType | Unknown | jca/Encryption1.java:67:42:67:44 | jca/Encryption1.java:67:42:67:44 | | jca/Encryption1.java:68:32:68:74 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/Encryption1.java:68:32:68:74 | jca/Encryption1.java:68:32:68:74 | @@ -575,10 +583,10 @@ | jca/Encryption1.java:171:47:171:65 | ModeOfOperation | RawName | GCM | jca/Encryption1.java:171:47:171:65 | jca/Encryption1.java:171:47:171:65 | | jca/Encryption1.java:171:47:171:65 | PaddingAlgorithm | Name | UnknownPadding | jca/Encryption1.java:171:47:171:65 | jca/Encryption1.java:171:47:171:65 | | jca/Encryption1.java:171:47:171:65 | PaddingAlgorithm | RawName | NoPadding | jca/Encryption1.java:171:47:171:65 | jca/Encryption1.java:171:47:171:65 | -| jca/Encryption1.java:173:9:173:40 | RandomNumberGeneration | Description | nextBytes | jca/Encryption1.java:173:9:173:40 | jca/Encryption1.java:173:9:173:40 | | jca/Encryption1.java:173:38:173:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/Encryption1.java:173:38:173:39 | jca/Encryption1.java:173:38:173:39 | | jca/Encryption1.java:175:45:175:50 | Key | KeyType | Unknown | jca/Encryption1.java:175:45:175:50 | jca/Encryption1.java:175:45:175:50 | | jca/Encryption1.java:176:32:176:65 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/Encryption1.java:176:32:176:65 | jca/Encryption1.java:176:32:176:65 | +| jca/Encryption2.java:55:60:55:70 | EllipticCurve | CurveType | SEC | jca/Encryption2.java:55:60:55:70 | jca/Encryption2.java:55:60:55:70 | | jca/Encryption2.java:55:60:55:70 | EllipticCurve | KeySize | 256 | jca/Encryption2.java:55:60:55:70 | jca/Encryption2.java:55:60:55:70 | | jca/Encryption2.java:55:60:55:70 | EllipticCurve | Name | secp256r1 | jca/Encryption2.java:55:60:55:70 | jca/Encryption2.java:55:60:55:70 | | jca/Encryption2.java:55:60:55:70 | EllipticCurve | ParsedName | secp256r1 | jca/Encryption2.java:55:60:55:70 | jca/Encryption2.java:55:60:55:70 | @@ -600,7 +608,6 @@ | jca/Encryption2.java:105:47:105:65 | ModeOfOperation | RawName | GCM | jca/Encryption2.java:105:47:105:65 | jca/Encryption2.java:105:47:105:65 | | jca/Encryption2.java:105:47:105:65 | PaddingAlgorithm | Name | UnknownPadding | jca/Encryption2.java:105:47:105:65 | jca/Encryption2.java:105:47:105:65 | | jca/Encryption2.java:105:47:105:65 | PaddingAlgorithm | RawName | NoPadding | jca/Encryption2.java:105:47:105:65 | jca/Encryption2.java:105:47:105:65 | -| jca/Encryption2.java:107:9:107:40 | RandomNumberGeneration | Description | nextBytes | jca/Encryption2.java:107:9:107:40 | jca/Encryption2.java:107:9:107:40 | | jca/Encryption2.java:107:38:107:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/Encryption2.java:107:38:107:39 | jca/Encryption2.java:107:38:107:39 | | jca/Encryption2.java:109:45:109:50 | Key | KeyType | Unknown | jca/Encryption2.java:109:45:109:50 | jca/Encryption2.java:109:45:109:50 | | jca/Encryption2.java:110:32:110:65 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/Encryption2.java:110:32:110:65 | jca/Encryption2.java:110:32:110:65 | @@ -613,13 +620,15 @@ | jca/Encryption2.java:145:47:145:65 | ModeOfOperation | RawName | GCM | jca/Encryption2.java:145:47:145:65 | jca/Encryption2.java:145:47:145:65 | | jca/Encryption2.java:145:47:145:65 | PaddingAlgorithm | Name | UnknownPadding | jca/Encryption2.java:145:47:145:65 | jca/Encryption2.java:145:47:145:65 | | jca/Encryption2.java:145:47:145:65 | PaddingAlgorithm | RawName | NoPadding | jca/Encryption2.java:145:47:145:65 | jca/Encryption2.java:145:47:145:65 | -| jca/Encryption2.java:147:9:147:40 | RandomNumberGeneration | Description | nextBytes | jca/Encryption2.java:147:9:147:40 | jca/Encryption2.java:147:9:147:40 | | jca/Encryption2.java:147:38:147:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/Encryption2.java:147:38:147:39 | jca/Encryption2.java:147:38:147:39 | | jca/Encryption2.java:149:45:149:50 | Key | KeyType | Unknown | jca/Encryption2.java:149:45:149:50 | jca/Encryption2.java:149:45:149:50 | | jca/Encryption2.java:150:32:150:98 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/Encryption2.java:150:32:150:98 | jca/Encryption2.java:150:32:150:98 | | jca/Encryption2.java:150:50:150:86 | Constant | Description | "Post-Quantum Hybrid Encryption Data" | jca/Encryption2.java:150:50:150:86 | jca/Encryption2.java:150:50:150:86 | -| jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | Name | HMAC | jca/Encryption2.java:173:36:173:47 | jca/Encryption2.java:173:36:173:47 | -| jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/Encryption2.java:173:36:173:47 | jca/Encryption2.java:173:36:173:47 | +| jca/Encryption2.java:173:36:173:47 | HMACAlgorithm | Name | HMAC | jca/Encryption2.java:173:36:173:47 | jca/Encryption2.java:173:36:173:47 | +| jca/Encryption2.java:173:36:173:47 | HMACAlgorithm | RawName | HmacSHA256 | jca/Encryption2.java:173:36:173:47 | jca/Encryption2.java:173:36:173:47 | +| jca/Encryption2.java:173:36:173:47 | HashAlgorithm | DigestSize | 256 | jca/Encryption2.java:173:36:173:47 | jca/Encryption2.java:173:36:173:47 | +| jca/Encryption2.java:173:36:173:47 | HashAlgorithm | Name | SHA2 | jca/Encryption2.java:173:36:173:47 | jca/Encryption2.java:173:36:173:47 | +| jca/Encryption2.java:173:36:173:47 | HashAlgorithm | RawName | HmacSHA256 | jca/Encryption2.java:173:36:173:47 | jca/Encryption2.java:173:36:173:47 | | jca/Encryption2.java:175:19:175:27 | Key | KeyType | Unknown | jca/Encryption2.java:175:19:175:27 | jca/Encryption2.java:175:19:175:27 | | jca/Encryption2.java:176:31:176:52 | MACOperation | KeyOperationSubtype | Mac | jca/Encryption2.java:176:31:176:52 | jca/Encryption2.java:176:31:176:52 | | jca/Hash.java:75:58:75:66 | HashAlgorithm | DigestSize | 256 | jca/Hash.java:75:58:75:66 | jca/Hash.java:75:58:75:66 | @@ -654,10 +663,12 @@ | jca/Hash.java:173:58:173:66 | HashAlgorithm | Name | SHA2 | jca/Hash.java:173:58:173:66 | jca/Hash.java:173:58:173:66 | | jca/Hash.java:173:58:173:66 | HashAlgorithm | RawName | SHA-256 | jca/Hash.java:173:58:173:66 | jca/Hash.java:173:58:173:66 | | jca/Hash.java:190:43:190:54 | Parameter | Description | input | jca/Hash.java:190:43:190:54 | jca/Hash.java:190:43:190:54 | +| jca/Hash.java:191:31:192:48 | Constant | Description | {...} | jca/Hash.java:191:31:192:48 | jca/Hash.java:191:31:192:48 | | jca/Hash.java:191:32:191:38 | HashAlgorithm | DigestSize | 160 | jca/Hash.java:191:32:191:38 | jca/Hash.java:191:32:191:38 | | jca/Hash.java:191:32:191:38 | HashAlgorithm | Name | SHA1 | jca/Hash.java:191:32:191:38 | jca/Hash.java:191:32:191:38 | | jca/Hash.java:191:32:191:38 | HashAlgorithm | RawName | SHA-1 | jca/Hash.java:191:32:191:38 | jca/Hash.java:191:32:191:38 | -| jca/Hash.java:191:41:191:49 | HashAlgorithm | DigestSize | | file://:0:0:0:0 | file://:0:0:0:0 | +| jca/Hash.java:191:41:191:49 | HashAlgorithm | DigestSize | 224 | jca/Hash.java:191:41:191:49 | jca/Hash.java:191:41:191:49 | +| jca/Hash.java:191:41:191:49 | HashAlgorithm | Name | SHA2 | jca/Hash.java:191:41:191:49 | jca/Hash.java:191:41:191:49 | | jca/Hash.java:191:41:191:49 | HashAlgorithm | RawName | SHA-224 | jca/Hash.java:191:41:191:49 | jca/Hash.java:191:41:191:49 | | jca/Hash.java:191:52:191:60 | HashAlgorithm | DigestSize | 256 | jca/Hash.java:191:52:191:60 | jca/Hash.java:191:52:191:60 | | jca/Hash.java:191:52:191:60 | HashAlgorithm | Name | SHA2 | jca/Hash.java:191:52:191:60 | jca/Hash.java:191:52:191:60 | @@ -674,27 +685,45 @@ | jca/Hash.java:191:97:191:106 | HashAlgorithm | DigestSize | 512 | jca/Hash.java:191:97:191:106 | jca/Hash.java:191:97:191:106 | | jca/Hash.java:191:97:191:106 | HashAlgorithm | Name | SHA3 | jca/Hash.java:191:97:191:106 | jca/Hash.java:191:97:191:106 | | jca/Hash.java:191:97:191:106 | HashAlgorithm | RawName | SHA3-512 | jca/Hash.java:191:97:191:106 | jca/Hash.java:191:97:191:106 | -| jca/Hash.java:192:13:192:25 | HashAlgorithm | DigestSize | | file://:0:0:0:0 | file://:0:0:0:0 | +| jca/Hash.java:192:13:192:25 | HashAlgorithm | DigestSize | 512 | jca/Hash.java:192:13:192:25 | jca/Hash.java:192:13:192:25 | +| jca/Hash.java:192:13:192:25 | HashAlgorithm | Name | BLAKE2B | jca/Hash.java:192:13:192:25 | jca/Hash.java:192:13:192:25 | | jca/Hash.java:192:13:192:25 | HashAlgorithm | RawName | BLAKE2B-512 | jca/Hash.java:192:13:192:25 | jca/Hash.java:192:13:192:25 | -| jca/Hash.java:192:28:192:40 | HashAlgorithm | DigestSize | | file://:0:0:0:0 | file://:0:0:0:0 | -| jca/Hash.java:192:28:192:40 | HashAlgorithm | RawName | BLAKE2S-256 | jca/Hash.java:192:28:192:40 | jca/Hash.java:192:28:192:40 | | jca/Hash.java:192:43:192:47 | HashAlgorithm | DigestSize | 128 | jca/Hash.java:192:43:192:47 | jca/Hash.java:192:43:192:47 | | jca/Hash.java:192:43:192:47 | HashAlgorithm | Name | MD5 | jca/Hash.java:192:43:192:47 | jca/Hash.java:192:43:192:47 | | jca/Hash.java:192:43:192:47 | HashAlgorithm | RawName | MD5 | jca/Hash.java:192:43:192:47 | jca/Hash.java:192:43:192:47 | | jca/Hash.java:211:43:211:54 | Parameter | Description | input | jca/Hash.java:211:43:211:54 | jca/Hash.java:211:43:211:54 | | jca/Hash.java:211:57:211:66 | Parameter | Description | key | jca/Hash.java:211:57:211:66 | jca/Hash.java:211:57:211:66 | -| jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | Name | HMAC | jca/Hash.java:212:32:212:41 | jca/Hash.java:212:32:212:41 | -| jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | RawName | HmacSHA1 | jca/Hash.java:212:32:212:41 | jca/Hash.java:212:32:212:41 | -| jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | Name | HMAC | jca/Hash.java:212:44:212:55 | jca/Hash.java:212:44:212:55 | -| jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/Hash.java:212:44:212:55 | jca/Hash.java:212:44:212:55 | -| jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | Name | HMAC | jca/Hash.java:212:58:212:69 | jca/Hash.java:212:58:212:69 | -| jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | RawName | HmacSHA384 | jca/Hash.java:212:58:212:69 | jca/Hash.java:212:58:212:69 | -| jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | Name | HMAC | jca/Hash.java:212:72:212:83 | jca/Hash.java:212:72:212:83 | -| jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | RawName | HmacSHA512 | jca/Hash.java:212:72:212:83 | jca/Hash.java:212:72:212:83 | -| jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | Name | HMAC | jca/Hash.java:212:86:212:99 | jca/Hash.java:212:86:212:99 | -| jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | RawName | HmacSHA3-256 | jca/Hash.java:212:86:212:99 | jca/Hash.java:212:86:212:99 | -| jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | Name | HMAC | jca/Hash.java:212:102:212:115 | jca/Hash.java:212:102:212:115 | -| jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | RawName | HmacSHA3-512 | jca/Hash.java:212:102:212:115 | jca/Hash.java:212:102:212:115 | +| jca/Hash.java:212:31:212:116 | Constant | Description | {...} | jca/Hash.java:212:31:212:116 | jca/Hash.java:212:31:212:116 | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | Name | HMAC | jca/Hash.java:212:32:212:41 | jca/Hash.java:212:32:212:41 | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | RawName | HmacSHA1 | jca/Hash.java:212:32:212:41 | jca/Hash.java:212:32:212:41 | +| jca/Hash.java:212:32:212:41 | HashAlgorithm | DigestSize | 160 | jca/Hash.java:212:32:212:41 | jca/Hash.java:212:32:212:41 | +| jca/Hash.java:212:32:212:41 | HashAlgorithm | Name | SHA1 | jca/Hash.java:212:32:212:41 | jca/Hash.java:212:32:212:41 | +| jca/Hash.java:212:32:212:41 | HashAlgorithm | RawName | HmacSHA1 | jca/Hash.java:212:32:212:41 | jca/Hash.java:212:32:212:41 | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | Name | HMAC | jca/Hash.java:212:44:212:55 | jca/Hash.java:212:44:212:55 | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | RawName | HmacSHA256 | jca/Hash.java:212:44:212:55 | jca/Hash.java:212:44:212:55 | +| jca/Hash.java:212:44:212:55 | HashAlgorithm | DigestSize | 256 | jca/Hash.java:212:44:212:55 | jca/Hash.java:212:44:212:55 | +| jca/Hash.java:212:44:212:55 | HashAlgorithm | Name | SHA2 | jca/Hash.java:212:44:212:55 | jca/Hash.java:212:44:212:55 | +| jca/Hash.java:212:44:212:55 | HashAlgorithm | RawName | HmacSHA256 | jca/Hash.java:212:44:212:55 | jca/Hash.java:212:44:212:55 | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | Name | HMAC | jca/Hash.java:212:58:212:69 | jca/Hash.java:212:58:212:69 | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | RawName | HmacSHA384 | jca/Hash.java:212:58:212:69 | jca/Hash.java:212:58:212:69 | +| jca/Hash.java:212:58:212:69 | HashAlgorithm | DigestSize | 384 | jca/Hash.java:212:58:212:69 | jca/Hash.java:212:58:212:69 | +| jca/Hash.java:212:58:212:69 | HashAlgorithm | Name | SHA2 | jca/Hash.java:212:58:212:69 | jca/Hash.java:212:58:212:69 | +| jca/Hash.java:212:58:212:69 | HashAlgorithm | RawName | HmacSHA384 | jca/Hash.java:212:58:212:69 | jca/Hash.java:212:58:212:69 | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | Name | HMAC | jca/Hash.java:212:72:212:83 | jca/Hash.java:212:72:212:83 | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | RawName | HmacSHA512 | jca/Hash.java:212:72:212:83 | jca/Hash.java:212:72:212:83 | +| jca/Hash.java:212:72:212:83 | HashAlgorithm | DigestSize | 512 | jca/Hash.java:212:72:212:83 | jca/Hash.java:212:72:212:83 | +| jca/Hash.java:212:72:212:83 | HashAlgorithm | Name | SHA2 | jca/Hash.java:212:72:212:83 | jca/Hash.java:212:72:212:83 | +| jca/Hash.java:212:72:212:83 | HashAlgorithm | RawName | HmacSHA512 | jca/Hash.java:212:72:212:83 | jca/Hash.java:212:72:212:83 | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | Name | HMAC | jca/Hash.java:212:86:212:99 | jca/Hash.java:212:86:212:99 | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | RawName | HmacSHA3-256 | jca/Hash.java:212:86:212:99 | jca/Hash.java:212:86:212:99 | +| jca/Hash.java:212:86:212:99 | HashAlgorithm | DigestSize | 256 | jca/Hash.java:212:86:212:99 | jca/Hash.java:212:86:212:99 | +| jca/Hash.java:212:86:212:99 | HashAlgorithm | Name | SHA3 | jca/Hash.java:212:86:212:99 | jca/Hash.java:212:86:212:99 | +| jca/Hash.java:212:86:212:99 | HashAlgorithm | RawName | HmacSHA3-256 | jca/Hash.java:212:86:212:99 | jca/Hash.java:212:86:212:99 | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | Name | HMAC | jca/Hash.java:212:102:212:115 | jca/Hash.java:212:102:212:115 | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | RawName | HmacSHA3-512 | jca/Hash.java:212:102:212:115 | jca/Hash.java:212:102:212:115 | +| jca/Hash.java:212:102:212:115 | HashAlgorithm | DigestSize | 512 | jca/Hash.java:212:102:212:115 | jca/Hash.java:212:102:212:115 | +| jca/Hash.java:212:102:212:115 | HashAlgorithm | Name | SHA3 | jca/Hash.java:212:102:212:115 | jca/Hash.java:212:102:212:115 | +| jca/Hash.java:212:102:212:115 | HashAlgorithm | RawName | HmacSHA3-512 | jca/Hash.java:212:102:212:115 | jca/Hash.java:212:102:212:115 | | jca/Hash.java:216:22:216:30 | Key | KeyType | Unknown | jca/Hash.java:216:22:216:30 | jca/Hash.java:216:22:216:30 | | jca/Hash.java:217:27:217:55 | MACOperation | KeyOperationSubtype | Mac | jca/Hash.java:217:27:217:55 | jca/Hash.java:217:27:217:55 | | jca/Hash.java:232:40:232:54 | Parameter | Description | password | jca/Hash.java:232:40:232:54 | jca/Hash.java:232:40:232:54 | @@ -711,6 +740,7 @@ | jca/Hash.java:237:23:237:50 | KeyDerivation | Iterations | Constant:10000 | jca/Hash.java:235:72:235:76 | jca/Hash.java:235:72:235:76 | | jca/Hash.java:237:23:237:50 | KeyDerivation | KeySize | Constant:256 | jca/Hash.java:235:79:235:81 | jca/Hash.java:235:79:235:81 | | jca/Hash.java:252:37:252:58 | Constant | Description | "Config-based Hashing" | jca/Hash.java:252:37:252:58 | jca/Hash.java:252:37:252:58 | +| jca/Hash.java:266:31:266:76 | Constant | Description | {...} | jca/Hash.java:266:31:266:76 | jca/Hash.java:266:31:266:76 | | jca/Hash.java:266:32:266:40 | HashAlgorithm | DigestSize | 256 | jca/Hash.java:266:32:266:40 | jca/Hash.java:266:32:266:40 | | jca/Hash.java:266:32:266:40 | HashAlgorithm | Name | SHA2 | jca/Hash.java:266:32:266:40 | jca/Hash.java:266:32:266:40 | | jca/Hash.java:266:32:266:40 | HashAlgorithm | RawName | SHA-256 | jca/Hash.java:266:32:266:40 | jca/Hash.java:266:32:266:40 | @@ -724,11 +754,11 @@ | jca/Hash.java:266:66:266:75 | HashAlgorithm | Name | SHA3 | jca/Hash.java:266:66:266:75 | jca/Hash.java:266:66:266:75 | | jca/Hash.java:266:66:266:75 | HashAlgorithm | RawName | SHA3-512 | jca/Hash.java:266:66:266:75 | jca/Hash.java:266:66:266:75 | | jca/Hash.java:269:27:269:38 | Constant | Description | "fixed-seed" | jca/Hash.java:269:27:269:38 | jca/Hash.java:269:27:269:38 | +| jca/Hash.java:294:16:294:66 | Constant | Description | getProperty(...) | jca/Hash.java:294:16:294:66 | jca/Hash.java:294:16:294:66 | | jca/Hash.java:294:16:294:66 | LocalData | Description | getProperty(...) | jca/Hash.java:294:16:294:66 | jca/Hash.java:294:16:294:66 | | jca/Hash.java:294:57:294:65 | HashAlgorithm | DigestSize | 256 | jca/Hash.java:294:57:294:65 | jca/Hash.java:294:57:294:65 | | jca/Hash.java:294:57:294:65 | HashAlgorithm | Name | SHA2 | jca/Hash.java:294:57:294:65 | jca/Hash.java:294:57:294:65 | | jca/Hash.java:294:57:294:65 | HashAlgorithm | RawName | SHA-256 | jca/Hash.java:294:57:294:65 | jca/Hash.java:294:57:294:65 | -| jca/Hash.java:310:9:310:42 | RandomNumberGeneration | Description | nextBytes | jca/Hash.java:310:9:310:42 | jca/Hash.java:310:9:310:42 | | jca/Hash.java:310:38:310:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/Hash.java:310:38:310:41 | jca/Hash.java:310:38:310:41 | | jca/IVArtifact.java:30:44:30:65 | KeyOperationAlgorithm | Name | AES | jca/IVArtifact.java:30:44:30:65 | jca/IVArtifact.java:30:44:30:65 | | jca/IVArtifact.java:30:44:30:65 | KeyOperationAlgorithm | RawName | AES/CBC/PKCS5Padding | jca/IVArtifact.java:30:44:30:65 | jca/IVArtifact.java:30:44:30:65 | @@ -743,6 +773,7 @@ | jca/IVArtifact.java:38:42:38:44 | Key | KeyType | Unknown | jca/IVArtifact.java:38:42:38:44 | jca/IVArtifact.java:38:42:38:44 | | jca/IVArtifact.java:39:29:39:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/IVArtifact.java:39:29:39:53 | jca/IVArtifact.java:39:29:39:53 | | jca/IVArtifact.java:49:27:49:42 | Constant | Description | "Sensitive Data" | jca/IVArtifact.java:49:27:49:42 | jca/IVArtifact.java:49:27:49:42 | +| jca/IVArtifact.java:70:16:70:81 | Constant | Description | getProperty(...) | jca/IVArtifact.java:70:16:70:81 | jca/IVArtifact.java:70:16:70:81 | | jca/IVArtifact.java:70:16:70:81 | LocalData | Description | getProperty(...) | jca/IVArtifact.java:70:16:70:81 | jca/IVArtifact.java:70:16:70:81 | | jca/IVArtifact.java:70:59:70:80 | KeyOperationAlgorithm | Name | AES | jca/IVArtifact.java:70:59:70:80 | jca/IVArtifact.java:70:59:70:80 | | jca/IVArtifact.java:70:59:70:80 | KeyOperationAlgorithm | RawName | AES/CBC/PKCS5Padding | jca/IVArtifact.java:70:59:70:80 | jca/IVArtifact.java:70:59:70:80 | @@ -757,7 +788,6 @@ | jca/IVArtifact.java:74:56:74:60 | KeyOperationAlgorithm | Structure | Block | jca/IVArtifact.java:74:56:74:60 | jca/IVArtifact.java:74:56:74:60 | | jca/IVArtifact.java:75:21:75:23 | Constant | Description | 256 | jca/IVArtifact.java:75:21:75:23 | jca/IVArtifact.java:75:21:75:23 | | jca/IVArtifact.java:76:16:76:35 | Key | KeyType | Symmetric | jca/IVArtifact.java:76:16:76:35 | jca/IVArtifact.java:76:16:76:35 | -| jca/IVArtifact.java:81:9:81:40 | RandomNumberGeneration | Description | nextBytes | jca/IVArtifact.java:81:9:81:40 | jca/IVArtifact.java:81:9:81:40 | | jca/IVArtifact.java:81:38:81:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/IVArtifact.java:81:38:81:39 | jca/IVArtifact.java:81:38:81:39 | | jca/IVArtifact.java:87:32:87:33 | RandomNumberGeneration | Description | java.util.Random | jca/IVArtifact.java:87:32:87:33 | jca/IVArtifact.java:87:32:87:33 | | jca/IVArtifact.java:105:44:105:62 | KeyOperationAlgorithm | Name | AES | jca/IVArtifact.java:105:44:105:62 | jca/IVArtifact.java:105:44:105:62 | @@ -770,7 +800,6 @@ | jca/IVArtifact.java:108:42:108:44 | Key | KeyType | Unknown | jca/IVArtifact.java:108:42:108:44 | jca/IVArtifact.java:108:42:108:44 | | jca/IVArtifact.java:109:16:109:40 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/IVArtifact.java:109:16:109:40 | jca/IVArtifact.java:109:16:109:40 | | jca/IVArtifact.java:116:31:116:34 | Constant | Description | null | jca/IVArtifact.java:116:31:116:34 | jca/IVArtifact.java:116:31:116:34 | -| jca/IVArtifact.java:130:13:130:50 | RandomNumberGeneration | Description | nextBytes | jca/IVArtifact.java:130:13:130:50 | jca/IVArtifact.java:130:13:130:50 | | jca/IVArtifact.java:130:42:130:49 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/IVArtifact.java:130:42:130:49 | jca/IVArtifact.java:130:42:130:49 | | jca/IVArtifact.java:132:44:132:62 | KeyOperationAlgorithm | Name | AES | jca/IVArtifact.java:132:44:132:62 | jca/IVArtifact.java:132:44:132:62 | | jca/IVArtifact.java:132:44:132:62 | KeyOperationAlgorithm | RawName | AES/GCM/NoPadding | jca/IVArtifact.java:132:44:132:62 | jca/IVArtifact.java:132:44:132:62 | @@ -794,7 +823,6 @@ | jca/IVArtifact.java:156:44:156:62 | PaddingAlgorithm | RawName | NoPadding | jca/IVArtifact.java:156:44:156:62 | jca/IVArtifact.java:156:44:156:62 | | jca/IVArtifact.java:158:42:158:44 | Key | KeyType | Unknown | jca/IVArtifact.java:158:42:158:44 | jca/IVArtifact.java:158:42:158:44 | | jca/IVArtifact.java:159:16:159:40 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/IVArtifact.java:159:16:159:40 | jca/IVArtifact.java:159:16:159:40 | -| jca/IVArtifact.java:177:9:177:40 | RandomNumberGeneration | Description | nextBytes | jca/IVArtifact.java:177:9:177:40 | jca/IVArtifact.java:177:9:177:40 | | jca/IVArtifact.java:177:38:177:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/IVArtifact.java:177:38:177:39 | jca/IVArtifact.java:177:38:177:39 | | jca/IVArtifact.java:180:48:180:66 | KeyOperationAlgorithm | Name | AES | jca/IVArtifact.java:180:48:180:66 | jca/IVArtifact.java:180:48:180:66 | | jca/IVArtifact.java:180:48:180:66 | KeyOperationAlgorithm | RawName | AES/GCM/NoPadding | jca/IVArtifact.java:180:48:180:66 | jca/IVArtifact.java:180:48:180:66 | @@ -828,6 +856,7 @@ | jca/IVArtifact.java:275:34:275:46 | Constant | Description | "Message One" | jca/IVArtifact.java:275:34:275:46 | jca/IVArtifact.java:275:34:275:46 | | jca/IVArtifact.java:275:60:275:72 | Constant | Description | "Message Two" | jca/IVArtifact.java:275:60:275:72 | jca/IVArtifact.java:275:60:275:72 | | jca/IVArtifact.java:275:86:275:100 | Constant | Description | "Message Three" | jca/IVArtifact.java:275:86:275:100 | jca/IVArtifact.java:275:86:275:100 | +| jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | EllipticCurve | CurveType | SEC | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | EllipticCurve | KeySize | 256 | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | EllipticCurve | Name | secp256r1 | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | EllipticCurve | ParsedName | secp256r1 | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | jca/KeyAgreementHybridCryptosystem.java:50:47:50:57 | @@ -851,7 +880,6 @@ | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | ModeOfOperation | RawName | GCM | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | PaddingAlgorithm | Name | UnknownPadding | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | PaddingAlgorithm | RawName | NoPadding | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | -| jca/KeyAgreementHybridCryptosystem.java:110:9:110:40 | RandomNumberGeneration | Description | nextBytes | jca/KeyAgreementHybridCryptosystem.java:110:9:110:40 | jca/KeyAgreementHybridCryptosystem.java:110:9:110:40 | | jca/KeyAgreementHybridCryptosystem.java:110:38:110:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/KeyAgreementHybridCryptosystem.java:110:38:110:39 | jca/KeyAgreementHybridCryptosystem.java:110:38:110:39 | | jca/KeyAgreementHybridCryptosystem.java:112:42:112:47 | Key | KeyType | Unknown | jca/KeyAgreementHybridCryptosystem.java:112:42:112:47 | jca/KeyAgreementHybridCryptosystem.java:112:42:112:47 | | jca/KeyAgreementHybridCryptosystem.java:113:29:113:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/KeyAgreementHybridCryptosystem.java:113:29:113:53 | jca/KeyAgreementHybridCryptosystem.java:113:29:113:53 | @@ -873,7 +901,6 @@ | jca/KeyAgreementHybridCryptosystem.java:150:59:150:67 | HashAlgorithm | RawName | SHA-256 | jca/KeyAgreementHybridCryptosystem.java:150:59:150:67 | jca/KeyAgreementHybridCryptosystem.java:150:59:150:67 | | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | Name | Unknown | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | RawName | ChaCha20-Poly1305 | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | -| jca/KeyAgreementHybridCryptosystem.java:155:9:155:43 | RandomNumberGeneration | Description | nextBytes | jca/KeyAgreementHybridCryptosystem.java:155:9:155:43 | jca/KeyAgreementHybridCryptosystem.java:155:9:155:43 | | jca/KeyAgreementHybridCryptosystem.java:155:38:155:42 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/KeyAgreementHybridCryptosystem.java:155:38:155:42 | jca/KeyAgreementHybridCryptosystem.java:155:38:155:42 | | jca/KeyAgreementHybridCryptosystem.java:156:42:156:50 | Key | KeyType | Unknown | jca/KeyAgreementHybridCryptosystem.java:156:42:156:50 | jca/KeyAgreementHybridCryptosystem.java:156:42:156:50 | | jca/KeyAgreementHybridCryptosystem.java:157:29:157:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/KeyAgreementHybridCryptosystem.java:157:29:157:53 | jca/KeyAgreementHybridCryptosystem.java:157:29:157:53 | @@ -905,12 +932,14 @@ | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | ModeOfOperation | RawName | GCM | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | PaddingAlgorithm | Name | UnknownPadding | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | PaddingAlgorithm | RawName | NoPadding | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | -| jca/KeyAgreementHybridCryptosystem.java:225:9:225:40 | RandomNumberGeneration | Description | nextBytes | jca/KeyAgreementHybridCryptosystem.java:225:9:225:40 | jca/KeyAgreementHybridCryptosystem.java:225:9:225:40 | | jca/KeyAgreementHybridCryptosystem.java:225:38:225:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/KeyAgreementHybridCryptosystem.java:225:38:225:39 | jca/KeyAgreementHybridCryptosystem.java:225:38:225:39 | | jca/KeyAgreementHybridCryptosystem.java:227:42:227:54 | Key | KeyType | Unknown | jca/KeyAgreementHybridCryptosystem.java:227:42:227:54 | jca/KeyAgreementHybridCryptosystem.java:227:42:227:54 | | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | -| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | Name | HMAC | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | -| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HMACAlgorithm | Name | HMAC | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HashAlgorithm | DigestSize | 256 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HashAlgorithm | Name | SHA2 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HashAlgorithm | RawName | HmacSHA256 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | | jca/KeyAgreementHybridCryptosystem.java:231:18:231:30 | Key | KeyType | Unknown | jca/KeyAgreementHybridCryptosystem.java:231:18:231:30 | jca/KeyAgreementHybridCryptosystem.java:231:18:231:30 | | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | KeyOperationSubtype | Mac | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | | jca/KeyAgreementHybridCryptosystem.java:259:52:259:56 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/KeyAgreementHybridCryptosystem.java:260:17:260:19 | jca/KeyAgreementHybridCryptosystem.java:260:17:260:19 | @@ -919,7 +948,6 @@ | jca/KeyAgreementHybridCryptosystem.java:259:52:259:56 | KeyOperationAlgorithm | Structure | Block | jca/KeyAgreementHybridCryptosystem.java:259:52:259:56 | jca/KeyAgreementHybridCryptosystem.java:259:52:259:56 | | jca/KeyAgreementHybridCryptosystem.java:260:17:260:19 | Constant | Description | 256 | jca/KeyAgreementHybridCryptosystem.java:260:17:260:19 | jca/KeyAgreementHybridCryptosystem.java:260:17:260:19 | | jca/KeyAgreementHybridCryptosystem.java:261:16:261:31 | Key | KeyType | Symmetric | jca/KeyAgreementHybridCryptosystem.java:261:16:261:31 | jca/KeyAgreementHybridCryptosystem.java:261:16:261:31 | -| jca/KeyAgreementHybridCryptosystem.java:269:9:269:42 | RandomNumberGeneration | Description | nextBytes | jca/KeyAgreementHybridCryptosystem.java:269:9:269:42 | jca/KeyAgreementHybridCryptosystem.java:269:9:269:42 | | jca/KeyAgreementHybridCryptosystem.java:269:38:269:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/KeyAgreementHybridCryptosystem.java:269:38:269:41 | jca/KeyAgreementHybridCryptosystem.java:269:38:269:41 | | jca/KeyArtifact.java:18:56:18:60 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/KeyArtifact.java:19:21:19:23 | jca/KeyArtifact.java:19:21:19:23 | | jca/KeyArtifact.java:18:56:18:60 | KeyOperationAlgorithm | Name | AES | jca/KeyArtifact.java:18:56:18:60 | jca/KeyArtifact.java:18:56:18:60 | @@ -945,6 +973,7 @@ | jca/KeyArtifact.java:37:29:37:56 | Key | KeyType | Asymmetric | jca/KeyArtifact.java:37:29:37:56 | jca/KeyArtifact.java:37:29:37:56 | | jca/KeyArtifact.java:41:31:41:33 | Constant | Description | 256 | jca/KeyArtifact.java:41:31:41:33 | jca/KeyArtifact.java:41:31:41:33 | | jca/KeyArtifact.java:42:26:42:53 | Key | KeyType | Asymmetric | jca/KeyArtifact.java:42:26:42:53 | jca/KeyArtifact.java:42:26:42:53 | +| jca/KeyArtifact.java:62:28:62:73 | Constant | Description | getProperty(...) | jca/KeyArtifact.java:62:28:62:73 | jca/KeyArtifact.java:62:28:62:73 | | jca/KeyArtifact.java:62:28:62:73 | LocalData | Description | getProperty(...) | jca/KeyArtifact.java:62:28:62:73 | jca/KeyArtifact.java:62:28:62:73 | | jca/KeyArtifact.java:62:68:62:72 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/KeyArtifact.java:65:21:65:23 | jca/KeyArtifact.java:65:21:65:23 | | jca/KeyArtifact.java:62:68:62:72 | KeyOperationAlgorithm | Name | AES | jca/KeyArtifact.java:62:68:62:72 | jca/KeyArtifact.java:62:68:62:72 | @@ -954,10 +983,12 @@ | jca/KeyArtifact.java:66:32:66:51 | Key | KeyType | Symmetric | jca/KeyArtifact.java:66:32:66:51 | jca/KeyArtifact.java:66:32:66:51 | | jca/KeyArtifact.java:72:31:72:34 | Constant | Description | 2048 | jca/KeyArtifact.java:72:31:72:34 | jca/KeyArtifact.java:72:31:72:34 | | jca/KeyArtifact.java:73:16:73:43 | Key | KeyType | Asymmetric | jca/KeyArtifact.java:73:16:73:43 | jca/KeyArtifact.java:73:16:73:43 | +| jca/KeyArtifact.java:78:31:78:54 | Constant | Description | {...} | jca/KeyArtifact.java:78:31:78:54 | jca/KeyArtifact.java:78:31:78:54 | | jca/KeyArtifact.java:78:32:78:36 | KeyOperationAlgorithm | KeySize | Constant:2048 | jca/KeyArtifact.java:72:31:72:34 | jca/KeyArtifact.java:72:31:72:34 | | jca/KeyArtifact.java:78:32:78:36 | KeyOperationAlgorithm | Name | RSA | jca/KeyArtifact.java:78:32:78:36 | jca/KeyArtifact.java:78:32:78:36 | | jca/KeyArtifact.java:78:32:78:36 | KeyOperationAlgorithm | RawName | RSA | jca/KeyArtifact.java:78:32:78:36 | jca/KeyArtifact.java:78:32:78:36 | -| jca/KeyArtifact.java:78:45:78:53 | Constant | Description | "Ed25519" | jca/KeyArtifact.java:78:45:78:53 | jca/KeyArtifact.java:78:45:78:53 | +| jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | Name | EDSA | jca/KeyArtifact.java:78:45:78:53 | jca/KeyArtifact.java:78:45:78:53 | +| jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | RawName | Ed25519 | jca/KeyArtifact.java:78:45:78:53 | jca/KeyArtifact.java:78:45:78:53 | | jca/KeyDerivation1.java:78:39:78:53 | Parameter | Description | password | jca/KeyDerivation1.java:78:39:78:53 | jca/KeyDerivation1.java:78:39:78:53 | | jca/KeyDerivation1.java:80:72:80:76 | Constant | Description | 10000 | jca/KeyDerivation1.java:80:72:80:76 | jca/KeyDerivation1.java:80:72:80:76 | | jca/KeyDerivation1.java:80:79:80:81 | Constant | Description | 256 | jca/KeyDerivation1.java:80:79:80:81 | jca/KeyDerivation1.java:80:79:80:81 | @@ -1055,6 +1086,7 @@ | jca/KeyDerivation1.java:283:43:283:57 | Parameter | Description | password | jca/KeyDerivation1.java:283:43:283:57 | jca/KeyDerivation1.java:283:43:283:57 | | jca/KeyDerivation1.java:283:60:283:78 | Parameter | Description | sharedSecret | jca/KeyDerivation1.java:283:60:283:78 | jca/KeyDerivation1.java:283:60:283:78 | | jca/KeyDerivation1.java:302:37:302:51 | Parameter | Description | password | jca/KeyDerivation1.java:302:37:302:51 | jca/KeyDerivation1.java:302:37:302:51 | +| jca/KeyDerivation1.java:309:25:309:76 | Constant | Description | getProperty(...) | jca/KeyDerivation1.java:309:25:309:76 | jca/KeyDerivation1.java:309:25:309:76 | | jca/KeyDerivation1.java:309:25:309:76 | LocalData | Description | getProperty(...) | jca/KeyDerivation1.java:309:25:309:76 | jca/KeyDerivation1.java:309:25:309:76 | | jca/KeyDerivation1.java:309:54:309:75 | HMACAlgorithm | Name | HMAC | jca/KeyDerivation1.java:309:54:309:75 | jca/KeyDerivation1.java:309:54:309:75 | | jca/KeyDerivation1.java:309:54:309:75 | HMACAlgorithm | RawName | PBKDF2WithHmacSHA256 | jca/KeyDerivation1.java:309:54:309:75 | jca/KeyDerivation1.java:309:54:309:75 | @@ -1063,10 +1095,14 @@ | jca/KeyDerivation1.java:309:54:309:75 | HashAlgorithm | RawName | PBKDF2WithHmacSHA256 | jca/KeyDerivation1.java:309:54:309:75 | jca/KeyDerivation1.java:309:54:309:75 | | jca/KeyDerivation1.java:309:54:309:75 | KeyDerivationAlgorithm | Name | PBKDF2WithHmacSHA256 | jca/KeyDerivation1.java:309:54:309:75 | jca/KeyDerivation1.java:309:54:309:75 | | jca/KeyDerivation1.java:309:54:309:75 | KeyDerivationAlgorithm | RawName | PBKDF2WithHmacSHA256 | jca/KeyDerivation1.java:309:54:309:75 | jca/KeyDerivation1.java:309:54:309:75 | +| jca/KeyDerivation1.java:310:43:310:86 | Constant | Description | getProperty(...) | jca/KeyDerivation1.java:310:43:310:86 | jca/KeyDerivation1.java:310:43:310:86 | | jca/KeyDerivation1.java:310:43:310:86 | LocalData | Description | getProperty(...) | jca/KeyDerivation1.java:310:43:310:86 | jca/KeyDerivation1.java:310:43:310:86 | +| jca/KeyDerivation1.java:311:40:311:78 | Constant | Description | getProperty(...) | jca/KeyDerivation1.java:311:40:311:78 | jca/KeyDerivation1.java:311:40:311:78 | | jca/KeyDerivation1.java:311:40:311:78 | LocalData | Description | getProperty(...) | jca/KeyDerivation1.java:311:40:311:78 | jca/KeyDerivation1.java:311:40:311:78 | | jca/KeyDerivation1.java:316:26:316:53 | Key | KeyType | Symmetric | jca/KeyDerivation1.java:316:26:316:53 | jca/KeyDerivation1.java:316:26:316:53 | +| jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Iterations | Constant:getProperty(...) | jca/KeyDerivation1.java:310:43:310:86 | jca/KeyDerivation1.java:310:43:310:86 | | jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | Iterations | LocalData:getProperty(...) | jca/KeyDerivation1.java:310:43:310:86 | jca/KeyDerivation1.java:310:43:310:86 | +| jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | KeySize | Constant:getProperty(...) | jca/KeyDerivation1.java:311:40:311:78 | jca/KeyDerivation1.java:311:40:311:78 | | jca/KeyDerivation1.java:316:26:316:53 | KeyDerivation | KeySize | LocalData:getProperty(...) | jca/KeyDerivation1.java:311:40:311:78 | jca/KeyDerivation1.java:311:40:311:78 | | jca/KeyDerivation1.java:333:72:333:76 | Constant | Description | 10000 | jca/KeyDerivation1.java:333:72:333:76 | jca/KeyDerivation1.java:333:72:333:76 | | jca/KeyDerivation1.java:333:79:333:81 | Constant | Description | 256 | jca/KeyDerivation1.java:333:79:333:81 | jca/KeyDerivation1.java:333:79:333:81 | @@ -1080,14 +1116,16 @@ | jca/KeyDerivation1.java:335:16:335:43 | Key | KeyType | Symmetric | jca/KeyDerivation1.java:335:16:335:43 | jca/KeyDerivation1.java:335:16:335:43 | | jca/KeyDerivation1.java:335:16:335:43 | KeyDerivation | Iterations | Constant:10000 | jca/KeyDerivation1.java:333:72:333:76 | jca/KeyDerivation1.java:333:72:333:76 | | jca/KeyDerivation1.java:335:16:335:43 | KeyDerivation | KeySize | Constant:256 | jca/KeyDerivation1.java:333:79:333:81 | jca/KeyDerivation1.java:333:79:333:81 | -| jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | Name | HMAC | jca/KeyDerivation1.java:345:36:345:47 | jca/KeyDerivation1.java:345:36:345:47 | -| jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/KeyDerivation1.java:345:36:345:47 | jca/KeyDerivation1.java:345:36:345:47 | +| jca/KeyDerivation1.java:345:36:345:47 | HMACAlgorithm | Name | HMAC | jca/KeyDerivation1.java:345:36:345:47 | jca/KeyDerivation1.java:345:36:345:47 | +| jca/KeyDerivation1.java:345:36:345:47 | HMACAlgorithm | RawName | HmacSHA256 | jca/KeyDerivation1.java:345:36:345:47 | jca/KeyDerivation1.java:345:36:345:47 | +| jca/KeyDerivation1.java:345:36:345:47 | HashAlgorithm | DigestSize | 256 | jca/KeyDerivation1.java:345:36:345:47 | jca/KeyDerivation1.java:345:36:345:47 | +| jca/KeyDerivation1.java:345:36:345:47 | HashAlgorithm | Name | SHA2 | jca/KeyDerivation1.java:345:36:345:47 | jca/KeyDerivation1.java:345:36:345:47 | +| jca/KeyDerivation1.java:345:36:345:47 | HashAlgorithm | RawName | HmacSHA256 | jca/KeyDerivation1.java:345:36:345:47 | jca/KeyDerivation1.java:345:36:345:47 | | jca/KeyDerivation1.java:347:19:347:27 | Key | KeyType | Unknown | jca/KeyDerivation1.java:347:19:347:27 | jca/KeyDerivation1.java:347:19:347:27 | | jca/KeyDerivation1.java:348:22:348:38 | MACOperation | KeyOperationSubtype | Mac | jca/KeyDerivation1.java:348:22:348:38 | jca/KeyDerivation1.java:348:22:348:38 | | jca/KeyDerivation1.java:352:19:352:54 | Key | KeyType | Unknown | jca/KeyDerivation1.java:352:19:352:54 | jca/KeyDerivation1.java:352:19:352:54 | | jca/KeyDerivation1.java:353:22:353:62 | MACOperation | KeyOperationSubtype | Mac | jca/KeyDerivation1.java:353:22:353:62 | jca/KeyDerivation1.java:353:22:353:62 | | jca/KeyDerivation1.java:353:35:353:50 | Constant | Description | "hkdf-expansion" | jca/KeyDerivation1.java:353:35:353:50 | jca/KeyDerivation1.java:353:35:353:50 | -| jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | Description | nextBytes | jca/KeyDerivation1.java:365:9:365:42 | jca/KeyDerivation1.java:365:9:365:42 | | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/KeyDerivation1.java:365:38:365:41 | jca/KeyDerivation1.java:365:38:365:41 | | jca/KeyEncapsulation.java:60:56:60:60 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/KeyEncapsulation.java:61:21:61:23 | jca/KeyEncapsulation.java:61:21:61:23 | | jca/KeyEncapsulation.java:60:56:60:60 | KeyOperationAlgorithm | Name | AES | jca/KeyEncapsulation.java:60:56:60:60 | jca/KeyEncapsulation.java:60:56:60:60 | @@ -1113,7 +1151,6 @@ | jca/KeyEncapsulation.java:73:47:73:65 | ModeOfOperation | RawName | GCM | jca/KeyEncapsulation.java:73:47:73:65 | jca/KeyEncapsulation.java:73:47:73:65 | | jca/KeyEncapsulation.java:73:47:73:65 | PaddingAlgorithm | Name | UnknownPadding | jca/KeyEncapsulation.java:73:47:73:65 | jca/KeyEncapsulation.java:73:47:73:65 | | jca/KeyEncapsulation.java:73:47:73:65 | PaddingAlgorithm | RawName | NoPadding | jca/KeyEncapsulation.java:73:47:73:65 | jca/KeyEncapsulation.java:73:47:73:65 | -| jca/KeyEncapsulation.java:75:9:75:40 | RandomNumberGeneration | Description | nextBytes | jca/KeyEncapsulation.java:75:9:75:40 | jca/KeyEncapsulation.java:75:9:75:40 | | jca/KeyEncapsulation.java:75:38:75:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/KeyEncapsulation.java:75:38:75:39 | jca/KeyEncapsulation.java:75:38:75:39 | | jca/KeyEncapsulation.java:77:45:77:50 | Key | KeyType | Unknown | jca/KeyEncapsulation.java:77:45:77:50 | jca/KeyEncapsulation.java:77:45:77:50 | | jca/KeyEncapsulation.java:78:29:78:80 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/KeyEncapsulation.java:78:29:78:80 | jca/KeyEncapsulation.java:78:29:78:80 | @@ -1131,6 +1168,7 @@ | jca/KeyEncapsulation.java:92:47:92:85 | PaddingAlgorithm | RawName | OAEPWithSHA-256AndMGF1Padding | jca/KeyEncapsulation.java:92:47:92:85 | jca/KeyEncapsulation.java:92:47:92:85 | | jca/KeyEncapsulation.java:93:45:93:51 | Key | KeyType | Unknown | jca/KeyEncapsulation.java:93:45:93:51 | jca/KeyEncapsulation.java:93:45:93:51 | | jca/KeyEncapsulation.java:94:30:94:58 | DecryptOperation | KeyOperationSubtype | Decrypt | jca/KeyEncapsulation.java:94:30:94:58 | jca/KeyEncapsulation.java:94:30:94:58 | +| jca/KeyEncapsulation.java:117:47:117:57 | EllipticCurve | CurveType | SEC | jca/KeyEncapsulation.java:117:47:117:57 | jca/KeyEncapsulation.java:117:47:117:57 | | jca/KeyEncapsulation.java:117:47:117:57 | EllipticCurve | KeySize | 256 | jca/KeyEncapsulation.java:117:47:117:57 | jca/KeyEncapsulation.java:117:47:117:57 | | jca/KeyEncapsulation.java:117:47:117:57 | EllipticCurve | Name | secp256r1 | jca/KeyEncapsulation.java:117:47:117:57 | jca/KeyEncapsulation.java:117:47:117:57 | | jca/KeyEncapsulation.java:117:47:117:57 | EllipticCurve | ParsedName | secp256r1 | jca/KeyEncapsulation.java:117:47:117:57 | jca/KeyEncapsulation.java:117:47:117:57 | @@ -1147,11 +1185,11 @@ | jca/KeyEncapsulation.java:133:47:133:65 | ModeOfOperation | RawName | GCM | jca/KeyEncapsulation.java:133:47:133:65 | jca/KeyEncapsulation.java:133:47:133:65 | | jca/KeyEncapsulation.java:133:47:133:65 | PaddingAlgorithm | Name | UnknownPadding | jca/KeyEncapsulation.java:133:47:133:65 | jca/KeyEncapsulation.java:133:47:133:65 | | jca/KeyEncapsulation.java:133:47:133:65 | PaddingAlgorithm | RawName | NoPadding | jca/KeyEncapsulation.java:133:47:133:65 | jca/KeyEncapsulation.java:133:47:133:65 | -| jca/KeyEncapsulation.java:135:9:135:40 | RandomNumberGeneration | Description | nextBytes | jca/KeyEncapsulation.java:135:9:135:40 | jca/KeyEncapsulation.java:135:9:135:40 | | jca/KeyEncapsulation.java:135:38:135:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/KeyEncapsulation.java:135:38:135:39 | jca/KeyEncapsulation.java:135:38:135:39 | | jca/KeyEncapsulation.java:136:45:136:50 | Key | KeyType | Unknown | jca/KeyEncapsulation.java:136:45:136:50 | jca/KeyEncapsulation.java:136:45:136:50 | | jca/KeyEncapsulation.java:137:29:137:73 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/KeyEncapsulation.java:137:29:137:73 | jca/KeyEncapsulation.java:137:29:137:73 | | jca/KeyEncapsulation.java:137:47:137:61 | Constant | Description | "ECIES message" | jca/KeyEncapsulation.java:137:47:137:61 | jca/KeyEncapsulation.java:137:47:137:61 | +| jca/KeyEncapsulation.java:186:47:186:57 | EllipticCurve | CurveType | SEC | jca/KeyEncapsulation.java:186:47:186:57 | jca/KeyEncapsulation.java:186:47:186:57 | | jca/KeyEncapsulation.java:186:47:186:57 | EllipticCurve | KeySize | 256 | jca/KeyEncapsulation.java:186:47:186:57 | jca/KeyEncapsulation.java:186:47:186:57 | | jca/KeyEncapsulation.java:186:47:186:57 | EllipticCurve | Name | secp256r1 | jca/KeyEncapsulation.java:186:47:186:57 | jca/KeyEncapsulation.java:186:47:186:57 | | jca/KeyEncapsulation.java:186:47:186:57 | EllipticCurve | ParsedName | secp256r1 | jca/KeyEncapsulation.java:186:47:186:57 | jca/KeyEncapsulation.java:186:47:186:57 | @@ -1166,6 +1204,7 @@ | jca/KeyEncapsulation.java:207:64:207:68 | KeyOperationAlgorithm | RawName | RSA | jca/KeyEncapsulation.java:207:64:207:68 | jca/KeyEncapsulation.java:207:64:207:68 | | jca/KeyEncapsulation.java:208:27:208:30 | Constant | Description | 2048 | jca/KeyEncapsulation.java:208:27:208:30 | jca/KeyEncapsulation.java:208:27:208:30 | | jca/KeyEncapsulation.java:209:25:209:48 | Key | KeyType | Asymmetric | jca/KeyEncapsulation.java:209:25:209:48 | jca/KeyEncapsulation.java:209:25:209:48 | +| jca/KeyEncapsulation.java:214:49:214:59 | EllipticCurve | CurveType | SEC | jca/KeyEncapsulation.java:214:49:214:59 | jca/KeyEncapsulation.java:214:49:214:59 | | jca/KeyEncapsulation.java:214:49:214:59 | EllipticCurve | KeySize | 256 | jca/KeyEncapsulation.java:214:49:214:59 | jca/KeyEncapsulation.java:214:49:214:59 | | jca/KeyEncapsulation.java:214:49:214:59 | EllipticCurve | Name | secp256r1 | jca/KeyEncapsulation.java:214:49:214:59 | jca/KeyEncapsulation.java:214:49:214:59 | | jca/KeyEncapsulation.java:214:49:214:59 | EllipticCurve | ParsedName | secp256r1 | jca/KeyEncapsulation.java:214:49:214:59 | jca/KeyEncapsulation.java:214:49:214:59 | @@ -1188,6 +1227,7 @@ | jca/KeyExchange.java:99:52:99:55 | KeyAgreementAlgorithm | RawName | DH | jca/KeyExchange.java:99:52:99:55 | jca/KeyExchange.java:99:52:99:55 | | jca/KeyExchange.java:100:17:100:26 | Key | KeyType | Unknown | jca/KeyExchange.java:100:17:100:26 | jca/KeyExchange.java:100:17:100:26 | | jca/KeyExchange.java:101:20:101:28 | Key | KeyType | Unknown | jca/KeyExchange.java:101:20:101:28 | jca/KeyExchange.java:101:20:101:28 | +| jca/KeyExchange.java:121:49:121:59 | EllipticCurve | CurveType | SEC | jca/KeyExchange.java:121:49:121:59 | jca/KeyExchange.java:121:49:121:59 | | jca/KeyExchange.java:121:49:121:59 | EllipticCurve | KeySize | 256 | jca/KeyExchange.java:121:49:121:59 | jca/KeyExchange.java:121:49:121:59 | | jca/KeyExchange.java:121:49:121:59 | EllipticCurve | Name | secp256r1 | jca/KeyExchange.java:121:49:121:59 | jca/KeyExchange.java:121:49:121:59 | | jca/KeyExchange.java:121:49:121:59 | EllipticCurve | ParsedName | secp256r1 | jca/KeyExchange.java:121:49:121:59 | jca/KeyExchange.java:121:49:121:59 | @@ -1215,14 +1255,20 @@ | jca/KeyExchange.java:212:20:212:28 | Key | KeyType | Unknown | jca/KeyExchange.java:212:20:212:28 | jca/KeyExchange.java:212:20:212:28 | | jca/MACOperation.java:59:36:59:49 | Parameter | Description | message | jca/MACOperation.java:59:36:59:49 | jca/MACOperation.java:59:36:59:49 | | jca/MACOperation.java:59:52:59:61 | Parameter | Description | key | jca/MACOperation.java:59:52:59:61 | jca/MACOperation.java:59:52:59:61 | -| jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | Name | HMAC | jca/MACOperation.java:60:35:60:46 | jca/MACOperation.java:60:35:60:46 | -| jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/MACOperation.java:60:35:60:46 | jca/MACOperation.java:60:35:60:46 | +| jca/MACOperation.java:60:35:60:46 | HMACAlgorithm | Name | HMAC | jca/MACOperation.java:60:35:60:46 | jca/MACOperation.java:60:35:60:46 | +| jca/MACOperation.java:60:35:60:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/MACOperation.java:60:35:60:46 | jca/MACOperation.java:60:35:60:46 | +| jca/MACOperation.java:60:35:60:46 | HashAlgorithm | DigestSize | 256 | jca/MACOperation.java:60:35:60:46 | jca/MACOperation.java:60:35:60:46 | +| jca/MACOperation.java:60:35:60:46 | HashAlgorithm | Name | SHA2 | jca/MACOperation.java:60:35:60:46 | jca/MACOperation.java:60:35:60:46 | +| jca/MACOperation.java:60:35:60:46 | HashAlgorithm | RawName | HmacSHA256 | jca/MACOperation.java:60:35:60:46 | jca/MACOperation.java:60:35:60:46 | | jca/MACOperation.java:62:18:62:26 | Key | KeyType | Unknown | jca/MACOperation.java:62:18:62:26 | jca/MACOperation.java:62:18:62:26 | | jca/MACOperation.java:63:16:63:46 | MACOperation | KeyOperationSubtype | Mac | jca/MACOperation.java:63:16:63:46 | jca/MACOperation.java:63:16:63:46 | | jca/MACOperation.java:70:34:70:47 | Parameter | Description | message | jca/MACOperation.java:70:34:70:47 | jca/MACOperation.java:70:34:70:47 | | jca/MACOperation.java:70:50:70:59 | Parameter | Description | key | jca/MACOperation.java:70:50:70:59 | jca/MACOperation.java:70:50:70:59 | -| jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | Name | HMAC | jca/MACOperation.java:71:35:71:48 | jca/MACOperation.java:71:35:71:48 | -| jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | RawName | HmacSHA3-256 | jca/MACOperation.java:71:35:71:48 | jca/MACOperation.java:71:35:71:48 | +| jca/MACOperation.java:71:35:71:48 | HMACAlgorithm | Name | HMAC | jca/MACOperation.java:71:35:71:48 | jca/MACOperation.java:71:35:71:48 | +| jca/MACOperation.java:71:35:71:48 | HMACAlgorithm | RawName | HmacSHA3-256 | jca/MACOperation.java:71:35:71:48 | jca/MACOperation.java:71:35:71:48 | +| jca/MACOperation.java:71:35:71:48 | HashAlgorithm | DigestSize | 256 | jca/MACOperation.java:71:35:71:48 | jca/MACOperation.java:71:35:71:48 | +| jca/MACOperation.java:71:35:71:48 | HashAlgorithm | Name | SHA3 | jca/MACOperation.java:71:35:71:48 | jca/MACOperation.java:71:35:71:48 | +| jca/MACOperation.java:71:35:71:48 | HashAlgorithm | RawName | HmacSHA3-256 | jca/MACOperation.java:71:35:71:48 | jca/MACOperation.java:71:35:71:48 | | jca/MACOperation.java:73:18:73:26 | Key | KeyType | Unknown | jca/MACOperation.java:73:18:73:26 | jca/MACOperation.java:73:18:73:26 | | jca/MACOperation.java:74:16:74:46 | MACOperation | KeyOperationSubtype | Mac | jca/MACOperation.java:74:16:74:46 | jca/MACOperation.java:74:16:74:46 | | jca/MACOperation.java:81:34:81:47 | Parameter | Description | message | jca/MACOperation.java:81:34:81:47 | jca/MACOperation.java:81:34:81:47 | @@ -1244,8 +1290,11 @@ | jca/MACOperation.java:110:16:110:46 | MACOperation | KeyOperationSubtype | Mac | jca/MACOperation.java:110:16:110:46 | jca/MACOperation.java:110:16:110:46 | | jca/MACOperation.java:117:36:117:49 | Parameter | Description | message | jca/MACOperation.java:117:36:117:49 | jca/MACOperation.java:117:36:117:49 | | jca/MACOperation.java:117:52:117:61 | Parameter | Description | key | jca/MACOperation.java:117:52:117:61 | jca/MACOperation.java:117:52:117:61 | -| jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | Name | HMAC | jca/MACOperation.java:118:35:118:44 | jca/MACOperation.java:118:35:118:44 | -| jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | RawName | HmacSHA1 | jca/MACOperation.java:118:35:118:44 | jca/MACOperation.java:118:35:118:44 | +| jca/MACOperation.java:118:35:118:44 | HMACAlgorithm | Name | HMAC | jca/MACOperation.java:118:35:118:44 | jca/MACOperation.java:118:35:118:44 | +| jca/MACOperation.java:118:35:118:44 | HMACAlgorithm | RawName | HmacSHA1 | jca/MACOperation.java:118:35:118:44 | jca/MACOperation.java:118:35:118:44 | +| jca/MACOperation.java:118:35:118:44 | HashAlgorithm | DigestSize | 160 | jca/MACOperation.java:118:35:118:44 | jca/MACOperation.java:118:35:118:44 | +| jca/MACOperation.java:118:35:118:44 | HashAlgorithm | Name | SHA1 | jca/MACOperation.java:118:35:118:44 | jca/MACOperation.java:118:35:118:44 | +| jca/MACOperation.java:118:35:118:44 | HashAlgorithm | RawName | HmacSHA1 | jca/MACOperation.java:118:35:118:44 | jca/MACOperation.java:118:35:118:44 | | jca/MACOperation.java:120:18:120:26 | Key | KeyType | Unknown | jca/MACOperation.java:120:18:120:26 | jca/MACOperation.java:120:18:120:26 | | jca/MACOperation.java:121:16:121:46 | MACOperation | KeyOperationSubtype | Mac | jca/MACOperation.java:121:16:121:46 | jca/MACOperation.java:121:16:121:46 | | jca/MACOperation.java:133:34:133:49 | Parameter | Description | macOutput | jca/MACOperation.java:133:34:133:49 | jca/MACOperation.java:133:34:133:49 | @@ -1283,8 +1332,11 @@ | jca/MACOperation.java:181:42:181:54 | Key | KeyType | Unknown | jca/MACOperation.java:181:42:181:54 | jca/MACOperation.java:181:42:181:54 | | jca/MACOperation.java:182:29:182:78 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/MACOperation.java:182:29:182:78 | jca/MACOperation.java:182:29:182:78 | | jca/MACOperation.java:182:44:182:66 | Constant | Description | "Further Use Test Data" | jca/MACOperation.java:182:44:182:66 | jca/MACOperation.java:182:44:182:66 | -| jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | Name | HMAC | jca/MACOperation.java:185:35:185:46 | jca/MACOperation.java:185:35:185:46 | -| jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/MACOperation.java:185:35:185:46 | jca/MACOperation.java:185:35:185:46 | +| jca/MACOperation.java:185:35:185:46 | HMACAlgorithm | Name | HMAC | jca/MACOperation.java:185:35:185:46 | jca/MACOperation.java:185:35:185:46 | +| jca/MACOperation.java:185:35:185:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/MACOperation.java:185:35:185:46 | jca/MACOperation.java:185:35:185:46 | +| jca/MACOperation.java:185:35:185:46 | HashAlgorithm | DigestSize | 256 | jca/MACOperation.java:185:35:185:46 | jca/MACOperation.java:185:35:185:46 | +| jca/MACOperation.java:185:35:185:46 | HashAlgorithm | Name | SHA2 | jca/MACOperation.java:185:35:185:46 | jca/MACOperation.java:185:35:185:46 | +| jca/MACOperation.java:185:35:185:46 | HashAlgorithm | RawName | HmacSHA256 | jca/MACOperation.java:185:35:185:46 | jca/MACOperation.java:185:35:185:46 | | jca/MACOperation.java:186:18:186:30 | Key | KeyType | Unknown | jca/MACOperation.java:186:18:186:30 | jca/MACOperation.java:186:18:186:30 | | jca/MACOperation.java:187:30:187:52 | MACOperation | KeyOperationSubtype | Mac | jca/MACOperation.java:187:30:187:52 | jca/MACOperation.java:187:30:187:52 | | jca/MACOperation.java:216:44:216:62 | KeyOperationAlgorithm | Name | AES | jca/MACOperation.java:216:44:216:62 | jca/MACOperation.java:216:44:216:62 | @@ -1302,15 +1354,21 @@ | jca/MACOperation.java:232:56:232:60 | KeyOperationAlgorithm | Structure | Block | jca/MACOperation.java:232:56:232:60 | jca/MACOperation.java:232:56:232:60 | | jca/MACOperation.java:233:21:233:23 | Constant | Description | 256 | jca/MACOperation.java:233:21:233:23 | jca/MACOperation.java:233:21:233:23 | | jca/MACOperation.java:234:16:234:35 | Key | KeyType | Symmetric | jca/MACOperation.java:234:16:234:35 | jca/MACOperation.java:234:16:234:35 | -| jca/MACOperation.java:246:9:246:42 | RandomNumberGeneration | Description | nextBytes | jca/MACOperation.java:246:9:246:42 | jca/MACOperation.java:246:9:246:42 | | jca/MACOperation.java:246:38:246:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/MACOperation.java:246:38:246:41 | jca/MACOperation.java:246:38:246:41 | -| jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | Name | HMAC | jca/Nonce.java:24:35:24:46 | jca/Nonce.java:24:35:24:46 | -| jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:24:35:24:46 | jca/Nonce.java:24:35:24:46 | +| jca/Nonce.java:24:35:24:46 | HMACAlgorithm | Name | HMAC | jca/Nonce.java:24:35:24:46 | jca/Nonce.java:24:35:24:46 | +| jca/Nonce.java:24:35:24:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:24:35:24:46 | jca/Nonce.java:24:35:24:46 | +| jca/Nonce.java:24:35:24:46 | HashAlgorithm | DigestSize | 256 | jca/Nonce.java:24:35:24:46 | jca/Nonce.java:24:35:24:46 | +| jca/Nonce.java:24:35:24:46 | HashAlgorithm | Name | SHA2 | jca/Nonce.java:24:35:24:46 | jca/Nonce.java:24:35:24:46 | +| jca/Nonce.java:24:35:24:46 | HashAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:24:35:24:46 | jca/Nonce.java:24:35:24:46 | | jca/Nonce.java:25:18:25:20 | Key | KeyType | Unknown | jca/Nonce.java:25:18:25:20 | jca/Nonce.java:25:18:25:20 | | jca/Nonce.java:27:28:27:69 | MACOperation | KeyOperationSubtype | Mac | jca/Nonce.java:27:28:27:69 | jca/Nonce.java:27:28:27:69 | | jca/Nonce.java:27:40:27:57 | Constant | Description | "Simple Test Data" | jca/Nonce.java:27:40:27:57 | jca/Nonce.java:27:40:27:57 | -| jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | Name | HMAC | jca/Nonce.java:37:35:37:46 | jca/Nonce.java:37:35:37:46 | -| jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:37:35:37:46 | jca/Nonce.java:37:35:37:46 | +| jca/Nonce.java:35:24:35:41 | Constant | Description | "BADNONCEBADNONCE" | jca/Nonce.java:35:24:35:41 | jca/Nonce.java:35:24:35:41 | +| jca/Nonce.java:37:35:37:46 | HMACAlgorithm | Name | HMAC | jca/Nonce.java:37:35:37:46 | jca/Nonce.java:37:35:37:46 | +| jca/Nonce.java:37:35:37:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:37:35:37:46 | jca/Nonce.java:37:35:37:46 | +| jca/Nonce.java:37:35:37:46 | HashAlgorithm | DigestSize | 256 | jca/Nonce.java:37:35:37:46 | jca/Nonce.java:37:35:37:46 | +| jca/Nonce.java:37:35:37:46 | HashAlgorithm | Name | SHA2 | jca/Nonce.java:37:35:37:46 | jca/Nonce.java:37:35:37:46 | +| jca/Nonce.java:37:35:37:46 | HashAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:37:35:37:46 | jca/Nonce.java:37:35:37:46 | | jca/Nonce.java:38:18:38:20 | Key | KeyType | Unknown | jca/Nonce.java:38:18:38:20 | jca/Nonce.java:38:18:38:20 | | jca/Nonce.java:40:28:40:67 | MACOperation | KeyOperationSubtype | Mac | jca/Nonce.java:40:28:40:67 | jca/Nonce.java:40:28:40:67 | | jca/Nonce.java:40:40:40:55 | Constant | Description | "Sensitive Data" | jca/Nonce.java:40:40:40:55 | jca/Nonce.java:40:40:40:55 | @@ -1336,15 +1394,18 @@ | jca/Nonce.java:61:44:61:62 | PaddingAlgorithm | RawName | NoPadding | jca/Nonce.java:61:44:61:62 | jca/Nonce.java:61:44:61:62 | | jca/Nonce.java:62:42:62:44 | Key | KeyType | Unknown | jca/Nonce.java:62:42:62:44 | jca/Nonce.java:62:42:62:44 | | jca/Nonce.java:63:29:63:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/Nonce.java:63:29:63:53 | jca/Nonce.java:63:29:63:53 | -| jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | Name | HMAC | jca/Nonce.java:70:53:70:64 | jca/Nonce.java:70:53:70:64 | -| jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:70:53:70:64 | jca/Nonce.java:70:53:70:64 | +| jca/Nonce.java:70:53:70:64 | HMACAlgorithm | Name | HMAC | jca/Nonce.java:70:53:70:64 | jca/Nonce.java:70:53:70:64 | +| jca/Nonce.java:70:53:70:64 | HMACAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:70:53:70:64 | jca/Nonce.java:70:53:70:64 | +| jca/Nonce.java:70:53:70:64 | HashAlgorithm | DigestSize | 256 | jca/Nonce.java:70:53:70:64 | jca/Nonce.java:70:53:70:64 | +| jca/Nonce.java:70:53:70:64 | HashAlgorithm | Name | SHA2 | jca/Nonce.java:70:53:70:64 | jca/Nonce.java:70:53:70:64 | +| jca/Nonce.java:70:53:70:64 | HashAlgorithm | RawName | HmacSHA256 | jca/Nonce.java:70:53:70:64 | jca/Nonce.java:70:53:70:64 | | jca/Nonce.java:78:18:78:20 | Key | KeyType | Unknown | jca/Nonce.java:78:18:78:20 | jca/Nonce.java:78:18:78:20 | | jca/Nonce.java:80:28:80:67 | MACOperation | KeyOperationSubtype | Mac | jca/Nonce.java:80:28:80:67 | jca/Nonce.java:80:28:80:67 | | jca/Nonce.java:80:40:80:55 | Constant | Description | "Sensitive Data" | jca/Nonce.java:80:40:80:55 | jca/Nonce.java:80:40:80:55 | | jca/Nonce.java:92:56:92:67 | Constant | Description | "HmacSHA256" | jca/Nonce.java:92:56:92:67 | jca/Nonce.java:92:56:92:67 | | jca/Nonce.java:93:16:93:35 | Key | KeyType | Symmetric | jca/Nonce.java:93:16:93:35 | jca/Nonce.java:93:16:93:35 | -| jca/Nonce.java:98:9:98:43 | RandomNumberGeneration | Description | nextBytes | jca/Nonce.java:98:9:98:43 | jca/Nonce.java:98:9:98:43 | | jca/Nonce.java:98:38:98:42 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/Nonce.java:98:38:98:42 | jca/Nonce.java:98:38:98:42 | +| jca/Nonce.java:104:32:104:36 | RandomNumberGeneration | Description | java.util.Random | jca/Nonce.java:104:32:104:36 | jca/Nonce.java:104:32:104:36 | | jca/Nonce.java:112:16:112:33 | Constant | Description | "BADNONCEBADNONCE" | jca/Nonce.java:112:16:112:33 | jca/Nonce.java:112:16:112:33 | | jca/PrngTest.java:152:56:152:60 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/PrngTest.java:153:21:153:23 | jca/PrngTest.java:153:21:153:23 | | jca/PrngTest.java:152:56:152:60 | KeyOperationAlgorithm | Name | AES | jca/PrngTest.java:152:56:152:60 | jca/PrngTest.java:152:56:152:60 | @@ -1352,6 +1413,7 @@ | jca/PrngTest.java:152:56:152:60 | KeyOperationAlgorithm | Structure | Block | jca/PrngTest.java:152:56:152:60 | jca/PrngTest.java:152:56:152:60 | | jca/PrngTest.java:153:21:153:23 | Constant | Description | 256 | jca/PrngTest.java:153:21:153:23 | jca/PrngTest.java:153:21:153:23 | | jca/PrngTest.java:154:16:154:35 | Key | KeyType | Symmetric | jca/PrngTest.java:154:16:154:35 | jca/PrngTest.java:154:16:154:35 | +| jca/SignEncryptCombinations.java:52:49:52:59 | EllipticCurve | CurveType | SEC | jca/SignEncryptCombinations.java:52:49:52:59 | jca/SignEncryptCombinations.java:52:49:52:59 | | jca/SignEncryptCombinations.java:52:49:52:59 | EllipticCurve | KeySize | 256 | jca/SignEncryptCombinations.java:52:49:52:59 | jca/SignEncryptCombinations.java:52:49:52:59 | | jca/SignEncryptCombinations.java:52:49:52:59 | EllipticCurve | Name | secp256r1 | jca/SignEncryptCombinations.java:52:49:52:59 | jca/SignEncryptCombinations.java:52:49:52:59 | | jca/SignEncryptCombinations.java:52:49:52:59 | EllipticCurve | ParsedName | secp256r1 | jca/SignEncryptCombinations.java:52:49:52:59 | jca/SignEncryptCombinations.java:52:49:52:59 | @@ -1384,7 +1446,6 @@ | jca/SignEncryptCombinations.java:92:44:92:62 | ModeOfOperation | RawName | GCM | jca/SignEncryptCombinations.java:92:44:92:62 | jca/SignEncryptCombinations.java:92:44:92:62 | | jca/SignEncryptCombinations.java:92:44:92:62 | PaddingAlgorithm | Name | UnknownPadding | jca/SignEncryptCombinations.java:92:44:92:62 | jca/SignEncryptCombinations.java:92:44:92:62 | | jca/SignEncryptCombinations.java:92:44:92:62 | PaddingAlgorithm | RawName | NoPadding | jca/SignEncryptCombinations.java:92:44:92:62 | jca/SignEncryptCombinations.java:92:44:92:62 | -| jca/SignEncryptCombinations.java:94:9:94:28 | RandomNumberGeneration | Description | nextBytes | jca/SignEncryptCombinations.java:94:9:94:28 | jca/SignEncryptCombinations.java:94:9:94:28 | | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SignEncryptCombinations.java:94:26:94:27 | jca/SignEncryptCombinations.java:94:26:94:27 | | jca/SignEncryptCombinations.java:96:42:96:44 | Key | KeyType | Unknown | jca/SignEncryptCombinations.java:96:42:96:44 | jca/SignEncryptCombinations.java:96:42:96:44 | | jca/SignEncryptCombinations.java:97:29:97:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SignEncryptCombinations.java:97:29:97:53 | jca/SignEncryptCombinations.java:97:29:97:53 | @@ -1397,8 +1458,11 @@ | jca/SignEncryptCombinations.java:111:44:111:62 | PaddingAlgorithm | RawName | NoPadding | jca/SignEncryptCombinations.java:111:44:111:62 | jca/SignEncryptCombinations.java:111:44:111:62 | | jca/SignEncryptCombinations.java:112:42:112:44 | Key | KeyType | Unknown | jca/SignEncryptCombinations.java:112:42:112:44 | jca/SignEncryptCombinations.java:112:42:112:44 | | jca/SignEncryptCombinations.java:113:16:113:41 | DecryptOperation | KeyOperationSubtype | Decrypt | jca/SignEncryptCombinations.java:113:16:113:41 | jca/SignEncryptCombinations.java:113:16:113:41 | -| jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | Name | HMAC | jca/SignEncryptCombinations.java:121:35:121:46 | jca/SignEncryptCombinations.java:121:35:121:46 | -| jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/SignEncryptCombinations.java:121:35:121:46 | jca/SignEncryptCombinations.java:121:35:121:46 | +| jca/SignEncryptCombinations.java:121:35:121:46 | HMACAlgorithm | Name | HMAC | jca/SignEncryptCombinations.java:121:35:121:46 | jca/SignEncryptCombinations.java:121:35:121:46 | +| jca/SignEncryptCombinations.java:121:35:121:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/SignEncryptCombinations.java:121:35:121:46 | jca/SignEncryptCombinations.java:121:35:121:46 | +| jca/SignEncryptCombinations.java:121:35:121:46 | HashAlgorithm | DigestSize | 256 | jca/SignEncryptCombinations.java:121:35:121:46 | jca/SignEncryptCombinations.java:121:35:121:46 | +| jca/SignEncryptCombinations.java:121:35:121:46 | HashAlgorithm | Name | SHA2 | jca/SignEncryptCombinations.java:121:35:121:46 | jca/SignEncryptCombinations.java:121:35:121:46 | +| jca/SignEncryptCombinations.java:121:35:121:46 | HashAlgorithm | RawName | HmacSHA256 | jca/SignEncryptCombinations.java:121:35:121:46 | jca/SignEncryptCombinations.java:121:35:121:46 | | jca/SignEncryptCombinations.java:122:18:122:20 | Key | KeyType | Unknown | jca/SignEncryptCombinations.java:122:18:122:20 | jca/SignEncryptCombinations.java:122:18:122:20 | | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | KeyOperationSubtype | Mac | jca/SignEncryptCombinations.java:123:16:123:32 | jca/SignEncryptCombinations.java:123:16:123:32 | | jca/SignEncryptCombinations.java:335:26:335:47 | Constant | Description | "Hello, combinations!" | jca/SignEncryptCombinations.java:335:26:335:47 | jca/SignEncryptCombinations.java:335:26:335:47 | @@ -1421,6 +1485,7 @@ | jca/SignatureOperation.java:75:53:75:74 | KeyOperationAlgorithm | RawName | SHA256withRSAandMGF1 | jca/SignatureOperation.java:75:53:75:74 | jca/SignatureOperation.java:75:53:75:74 | | jca/SignatureOperation.java:76:30:76:38 | Key | KeyType | Unknown | jca/SignatureOperation.java:76:30:76:38 | jca/SignatureOperation.java:76:30:76:38 | | jca/SignatureOperation.java:78:16:78:41 | VerifyOperation | KeyOperationSubtype | Verify | jca/SignatureOperation.java:78:16:78:41 | jca/SignatureOperation.java:78:16:78:41 | +| jca/SignatureOperation.java:93:49:93:59 | EllipticCurve | CurveType | SEC | jca/SignatureOperation.java:93:49:93:59 | jca/SignatureOperation.java:93:49:93:59 | | jca/SignatureOperation.java:93:49:93:59 | EllipticCurve | KeySize | 256 | jca/SignatureOperation.java:93:49:93:59 | jca/SignatureOperation.java:93:49:93:59 | | jca/SignatureOperation.java:93:49:93:59 | EllipticCurve | Name | secp256r1 | jca/SignatureOperation.java:93:49:93:59 | jca/SignatureOperation.java:93:49:93:59 | | jca/SignatureOperation.java:93:49:93:59 | EllipticCurve | ParsedName | secp256r1 | jca/SignatureOperation.java:93:49:93:59 | jca/SignatureOperation.java:93:49:93:59 | @@ -1440,7 +1505,8 @@ | jca/SignatureOperation.java:115:53:115:69 | KeyOperationAlgorithm | RawName | SHA256withECDSA | jca/SignatureOperation.java:115:53:115:69 | jca/SignatureOperation.java:115:53:115:69 | | jca/SignatureOperation.java:116:30:116:38 | Key | KeyType | Unknown | jca/SignatureOperation.java:116:30:116:38 | jca/SignatureOperation.java:116:30:116:38 | | jca/SignatureOperation.java:118:16:118:41 | VerifyOperation | KeyOperationSubtype | Verify | jca/SignatureOperation.java:118:16:118:41 | jca/SignatureOperation.java:118:16:118:41 | -| jca/SignatureOperation.java:132:61:132:69 | Constant | Description | "Ed25519" | jca/SignatureOperation.java:132:61:132:69 | jca/SignatureOperation.java:132:61:132:69 | +| jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | Name | EDSA | jca/SignatureOperation.java:132:61:132:69 | jca/SignatureOperation.java:132:61:132:69 | +| jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | RawName | Ed25519 | jca/SignatureOperation.java:132:61:132:69 | jca/SignatureOperation.java:132:61:132:69 | | jca/SignatureOperation.java:133:16:133:36 | Key | KeyType | Asymmetric | jca/SignatureOperation.java:133:16:133:36 | jca/SignatureOperation.java:133:16:133:36 | | jca/SignatureOperation.java:142:53:142:61 | KeyOperationAlgorithm | Name | EDSA | jca/SignatureOperation.java:142:53:142:61 | jca/SignatureOperation.java:142:53:142:61 | | jca/SignatureOperation.java:142:53:142:61 | KeyOperationAlgorithm | RawName | Ed25519 | jca/SignatureOperation.java:142:53:142:61 | jca/SignatureOperation.java:142:53:142:61 | @@ -1506,7 +1572,6 @@ | jca/SymmetricAlgorithm.java:51:44:51:62 | ModeOfOperation | RawName | GCM | jca/SymmetricAlgorithm.java:51:44:51:62 | jca/SymmetricAlgorithm.java:51:44:51:62 | | jca/SymmetricAlgorithm.java:51:44:51:62 | PaddingAlgorithm | Name | UnknownPadding | jca/SymmetricAlgorithm.java:51:44:51:62 | jca/SymmetricAlgorithm.java:51:44:51:62 | | jca/SymmetricAlgorithm.java:51:44:51:62 | PaddingAlgorithm | RawName | NoPadding | jca/SymmetricAlgorithm.java:51:44:51:62 | jca/SymmetricAlgorithm.java:51:44:51:62 | -| jca/SymmetricAlgorithm.java:53:9:53:40 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:53:9:53:40 | jca/SymmetricAlgorithm.java:53:9:53:40 | | jca/SymmetricAlgorithm.java:53:38:53:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:53:38:53:39 | jca/SymmetricAlgorithm.java:53:38:53:39 | | jca/SymmetricAlgorithm.java:55:42:55:44 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:55:42:55:44 | jca/SymmetricAlgorithm.java:55:42:55:44 | | jca/SymmetricAlgorithm.java:56:29:56:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:56:29:56:53 | jca/SymmetricAlgorithm.java:56:29:56:53 | @@ -1528,7 +1593,6 @@ | jca/SymmetricAlgorithm.java:94:44:94:65 | ModeOfOperation | RawName | CBC | jca/SymmetricAlgorithm.java:94:44:94:65 | jca/SymmetricAlgorithm.java:94:44:94:65 | | jca/SymmetricAlgorithm.java:94:44:94:65 | PaddingAlgorithm | Name | PKCS7 | jca/SymmetricAlgorithm.java:94:44:94:65 | jca/SymmetricAlgorithm.java:94:44:94:65 | | jca/SymmetricAlgorithm.java:94:44:94:65 | PaddingAlgorithm | RawName | PKCS5Padding | jca/SymmetricAlgorithm.java:94:44:94:65 | jca/SymmetricAlgorithm.java:94:44:94:65 | -| jca/SymmetricAlgorithm.java:96:9:96:40 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:96:9:96:40 | jca/SymmetricAlgorithm.java:96:9:96:40 | | jca/SymmetricAlgorithm.java:96:38:96:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:96:38:96:39 | jca/SymmetricAlgorithm.java:96:38:96:39 | | jca/SymmetricAlgorithm.java:98:42:98:44 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:98:42:98:44 | jca/SymmetricAlgorithm.java:98:42:98:44 | | jca/SymmetricAlgorithm.java:99:29:99:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:99:29:99:53 | jca/SymmetricAlgorithm.java:99:29:99:53 | @@ -1556,19 +1620,19 @@ | jca/SymmetricAlgorithm.java:146:44:146:65 | ModeOfOperation | RawName | CBC | jca/SymmetricAlgorithm.java:146:44:146:65 | jca/SymmetricAlgorithm.java:146:44:146:65 | | jca/SymmetricAlgorithm.java:146:44:146:65 | PaddingAlgorithm | Name | PKCS7 | jca/SymmetricAlgorithm.java:146:44:146:65 | jca/SymmetricAlgorithm.java:146:44:146:65 | | jca/SymmetricAlgorithm.java:146:44:146:65 | PaddingAlgorithm | RawName | PKCS5Padding | jca/SymmetricAlgorithm.java:146:44:146:65 | jca/SymmetricAlgorithm.java:146:44:146:65 | -| jca/SymmetricAlgorithm.java:148:9:148:40 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:148:9:148:40 | jca/SymmetricAlgorithm.java:148:9:148:40 | | jca/SymmetricAlgorithm.java:148:38:148:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:148:38:148:39 | jca/SymmetricAlgorithm.java:148:38:148:39 | | jca/SymmetricAlgorithm.java:150:42:150:44 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:150:42:150:44 | jca/SymmetricAlgorithm.java:150:42:150:44 | | jca/SymmetricAlgorithm.java:151:29:151:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:151:29:151:53 | jca/SymmetricAlgorithm.java:151:29:151:53 | | jca/SymmetricAlgorithm.java:167:42:167:54 | Parameter | Description | key | jca/SymmetricAlgorithm.java:167:42:167:54 | jca/SymmetricAlgorithm.java:167:42:167:54 | | jca/SymmetricAlgorithm.java:167:57:167:72 | Parameter | Description | plaintext | jca/SymmetricAlgorithm.java:167:57:167:72 | jca/SymmetricAlgorithm.java:167:57:167:72 | -| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Name | Unknown | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | +| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | KeySize | 56 | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | +| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Name | DES | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | | jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | RawName | DESede/CBC/PKCS5Padding | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | +| jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | Structure | Block | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | | jca/SymmetricAlgorithm.java:168:44:168:68 | ModeOfOperation | Name | CBC | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | | jca/SymmetricAlgorithm.java:168:44:168:68 | ModeOfOperation | RawName | CBC | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | | jca/SymmetricAlgorithm.java:168:44:168:68 | PaddingAlgorithm | Name | PKCS7 | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | | jca/SymmetricAlgorithm.java:168:44:168:68 | PaddingAlgorithm | RawName | PKCS5Padding | jca/SymmetricAlgorithm.java:168:44:168:68 | jca/SymmetricAlgorithm.java:168:44:168:68 | -| jca/SymmetricAlgorithm.java:170:9:170:40 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:170:9:170:40 | jca/SymmetricAlgorithm.java:170:9:170:40 | | jca/SymmetricAlgorithm.java:170:38:170:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:170:38:170:39 | jca/SymmetricAlgorithm.java:170:38:170:39 | | jca/SymmetricAlgorithm.java:172:42:172:44 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:172:42:172:44 | jca/SymmetricAlgorithm.java:172:42:172:44 | | jca/SymmetricAlgorithm.java:173:29:173:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:173:29:173:53 | jca/SymmetricAlgorithm.java:173:29:173:53 | @@ -1576,7 +1640,6 @@ | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | Name | ChaCha20 | jca/SymmetricAlgorithm.java:190:44:190:53 | jca/SymmetricAlgorithm.java:190:44:190:53 | | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | RawName | ChaCha20 | jca/SymmetricAlgorithm.java:190:44:190:53 | jca/SymmetricAlgorithm.java:190:44:190:53 | | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | Structure | Stream | jca/SymmetricAlgorithm.java:190:44:190:53 | jca/SymmetricAlgorithm.java:190:44:190:53 | -| jca/SymmetricAlgorithm.java:192:9:192:43 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:192:9:192:43 | jca/SymmetricAlgorithm.java:192:9:192:43 | | jca/SymmetricAlgorithm.java:192:38:192:42 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:192:38:192:42 | jca/SymmetricAlgorithm.java:192:38:192:42 | | jca/SymmetricAlgorithm.java:194:42:194:44 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:194:42:194:44 | jca/SymmetricAlgorithm.java:194:42:194:44 | | jca/SymmetricAlgorithm.java:195:29:195:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:195:29:195:53 | jca/SymmetricAlgorithm.java:195:29:195:53 | @@ -1592,7 +1655,6 @@ | jca/SymmetricAlgorithm.java:218:44:218:62 | ModeOfOperation | RawName | GCM | jca/SymmetricAlgorithm.java:218:44:218:62 | jca/SymmetricAlgorithm.java:218:44:218:62 | | jca/SymmetricAlgorithm.java:218:44:218:62 | PaddingAlgorithm | Name | UnknownPadding | jca/SymmetricAlgorithm.java:218:44:218:62 | jca/SymmetricAlgorithm.java:218:44:218:62 | | jca/SymmetricAlgorithm.java:218:44:218:62 | PaddingAlgorithm | RawName | NoPadding | jca/SymmetricAlgorithm.java:218:44:218:62 | jca/SymmetricAlgorithm.java:218:44:218:62 | -| jca/SymmetricAlgorithm.java:220:9:220:40 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:220:9:220:40 | jca/SymmetricAlgorithm.java:220:9:220:40 | | jca/SymmetricAlgorithm.java:220:38:220:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:220:38:220:39 | jca/SymmetricAlgorithm.java:220:38:220:39 | | jca/SymmetricAlgorithm.java:222:42:222:51 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:222:42:222:51 | jca/SymmetricAlgorithm.java:222:42:222:51 | | jca/SymmetricAlgorithm.java:223:29:223:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:223:29:223:53 | jca/SymmetricAlgorithm.java:223:29:223:53 | @@ -1619,12 +1681,14 @@ | jca/SymmetricAlgorithm.java:295:44:295:62 | ModeOfOperation | RawName | GCM | jca/SymmetricAlgorithm.java:295:44:295:62 | jca/SymmetricAlgorithm.java:295:44:295:62 | | jca/SymmetricAlgorithm.java:295:44:295:62 | PaddingAlgorithm | Name | UnknownPadding | jca/SymmetricAlgorithm.java:295:44:295:62 | jca/SymmetricAlgorithm.java:295:44:295:62 | | jca/SymmetricAlgorithm.java:295:44:295:62 | PaddingAlgorithm | RawName | NoPadding | jca/SymmetricAlgorithm.java:295:44:295:62 | jca/SymmetricAlgorithm.java:295:44:295:62 | -| jca/SymmetricAlgorithm.java:297:9:297:40 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:297:9:297:40 | jca/SymmetricAlgorithm.java:297:9:297:40 | | jca/SymmetricAlgorithm.java:297:38:297:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:297:38:297:39 | jca/SymmetricAlgorithm.java:297:38:297:39 | | jca/SymmetricAlgorithm.java:298:42:298:47 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:298:42:298:47 | jca/SymmetricAlgorithm.java:298:42:298:47 | | jca/SymmetricAlgorithm.java:299:29:299:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricAlgorithm.java:299:29:299:53 | jca/SymmetricAlgorithm.java:299:29:299:53 | -| jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | Name | HMAC | jca/SymmetricAlgorithm.java:301:35:301:46 | jca/SymmetricAlgorithm.java:301:35:301:46 | -| jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | RawName | HmacSHA256 | jca/SymmetricAlgorithm.java:301:35:301:46 | jca/SymmetricAlgorithm.java:301:35:301:46 | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HMACAlgorithm | Name | HMAC | jca/SymmetricAlgorithm.java:301:35:301:46 | jca/SymmetricAlgorithm.java:301:35:301:46 | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HMACAlgorithm | RawName | HmacSHA256 | jca/SymmetricAlgorithm.java:301:35:301:46 | jca/SymmetricAlgorithm.java:301:35:301:46 | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HashAlgorithm | DigestSize | 256 | jca/SymmetricAlgorithm.java:301:35:301:46 | jca/SymmetricAlgorithm.java:301:35:301:46 | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HashAlgorithm | Name | SHA2 | jca/SymmetricAlgorithm.java:301:35:301:46 | jca/SymmetricAlgorithm.java:301:35:301:46 | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HashAlgorithm | RawName | HmacSHA256 | jca/SymmetricAlgorithm.java:301:35:301:46 | jca/SymmetricAlgorithm.java:301:35:301:46 | | jca/SymmetricAlgorithm.java:302:18:302:30 | Key | KeyType | Unknown | jca/SymmetricAlgorithm.java:302:18:302:30 | jca/SymmetricAlgorithm.java:302:18:302:30 | | jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | KeyOperationSubtype | Mac | jca/SymmetricAlgorithm.java:303:30:303:52 | jca/SymmetricAlgorithm.java:303:30:303:52 | | jca/SymmetricAlgorithm.java:331:52:331:56 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/SymmetricAlgorithm.java:332:17:332:19 | jca/SymmetricAlgorithm.java:332:17:332:19 | @@ -1633,7 +1697,6 @@ | jca/SymmetricAlgorithm.java:331:52:331:56 | KeyOperationAlgorithm | Structure | Block | jca/SymmetricAlgorithm.java:331:52:331:56 | jca/SymmetricAlgorithm.java:331:52:331:56 | | jca/SymmetricAlgorithm.java:332:17:332:19 | Constant | Description | 256 | jca/SymmetricAlgorithm.java:332:17:332:19 | jca/SymmetricAlgorithm.java:332:17:332:19 | | jca/SymmetricAlgorithm.java:333:16:333:31 | Key | KeyType | Symmetric | jca/SymmetricAlgorithm.java:333:16:333:31 | jca/SymmetricAlgorithm.java:333:16:333:31 | -| jca/SymmetricAlgorithm.java:345:9:345:42 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricAlgorithm.java:345:9:345:42 | jca/SymmetricAlgorithm.java:345:9:345:42 | | jca/SymmetricAlgorithm.java:345:38:345:41 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricAlgorithm.java:345:38:345:41 | jca/SymmetricAlgorithm.java:345:38:345:41 | | jca/SymmetricModesTest.java:48:52:48:56 | KeyOperationAlgorithm | KeySize | Constant:128 | jca/SymmetricModesTest.java:53:17:53:19 | jca/SymmetricModesTest.java:53:17:53:19 | | jca/SymmetricModesTest.java:48:52:48:56 | KeyOperationAlgorithm | KeySize | Constant:256 | jca/SymmetricModesTest.java:49:17:49:19 | jca/SymmetricModesTest.java:49:17:49:19 | @@ -1660,7 +1723,6 @@ | jca/SymmetricModesTest.java:79:44:79:63 | ModeOfOperation | RawName | OFB8 | jca/SymmetricModesTest.java:79:44:79:63 | jca/SymmetricModesTest.java:79:44:79:63 | | jca/SymmetricModesTest.java:79:44:79:63 | PaddingAlgorithm | Name | UnknownPadding | jca/SymmetricModesTest.java:79:44:79:63 | jca/SymmetricModesTest.java:79:44:79:63 | | jca/SymmetricModesTest.java:79:44:79:63 | PaddingAlgorithm | RawName | NoPadding | jca/SymmetricModesTest.java:79:44:79:63 | jca/SymmetricModesTest.java:79:44:79:63 | -| jca/SymmetricModesTest.java:81:9:81:40 | RandomNumberGeneration | Description | nextBytes | jca/SymmetricModesTest.java:81:9:81:40 | jca/SymmetricModesTest.java:81:9:81:40 | | jca/SymmetricModesTest.java:81:38:81:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/SymmetricModesTest.java:81:38:81:39 | jca/SymmetricModesTest.java:81:38:81:39 | | jca/SymmetricModesTest.java:83:42:83:44 | Key | KeyType | Unknown | jca/SymmetricModesTest.java:83:42:83:44 | jca/SymmetricModesTest.java:83:42:83:44 | | jca/SymmetricModesTest.java:84:29:84:53 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/SymmetricModesTest.java:84:29:84:53 | jca/SymmetricModesTest.java:84:29:84:53 | @@ -1693,7 +1755,6 @@ | jca/UniversalFlowTest.java:28:29:28:47 | ModeOfOperation | RawName | GCM | jca/UniversalFlowTest.java:28:29:28:47 | jca/UniversalFlowTest.java:28:29:28:47 | | jca/UniversalFlowTest.java:28:29:28:47 | PaddingAlgorithm | Name | UnknownPadding | jca/UniversalFlowTest.java:28:29:28:47 | jca/UniversalFlowTest.java:28:29:28:47 | | jca/UniversalFlowTest.java:28:29:28:47 | PaddingAlgorithm | RawName | NoPadding | jca/UniversalFlowTest.java:28:29:28:47 | jca/UniversalFlowTest.java:28:29:28:47 | -| jca/UniversalFlowTest.java:31:9:31:40 | RandomNumberGeneration | Description | nextBytes | jca/UniversalFlowTest.java:31:9:31:40 | jca/UniversalFlowTest.java:31:9:31:40 | | jca/UniversalFlowTest.java:31:38:31:39 | RandomNumberGeneration | Description | java.security.SecureRandom | jca/UniversalFlowTest.java:31:38:31:39 | jca/UniversalFlowTest.java:31:38:31:39 | | jca/UniversalFlowTest.java:33:42:33:44 | Key | KeyType | Unknown | jca/UniversalFlowTest.java:33:42:33:44 | jca/UniversalFlowTest.java:33:42:33:44 | | jca/UniversalFlowTest.java:34:32:34:74 | EncryptOperation | KeyOperationSubtype | Encrypt | jca/UniversalFlowTest.java:34:32:34:74 | jca/UniversalFlowTest.java:34:32:34:74 | diff --git a/java/ql/test/experimental/library-tests/quantum/nodes.expected b/java/ql/test/experimental/library-tests/quantum/nodes.expected index 39816c682343..b9661aaf64f9 100644 --- a/java/ql/test/experimental/library-tests/quantum/nodes.expected +++ b/java/ql/test/experimental/library-tests/quantum/nodes.expected @@ -27,7 +27,6 @@ | jca/AesWrapAndPBEWith.java:108:65:108:82 | KeyDerivationAlgorithm | | jca/AesWrapAndPBEWith.java:109:27:109:54 | Key | | jca/AesWrapAndPBEWith.java:109:27:109:54 | KeyDerivation | -| jca/AesWrapAndPBEWith.java:122:9:122:42 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:122:38:122:41 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:123:42:123:63 | Message | | jca/AesWrapAndPBEWith.java:123:66:123:69 | Salt | @@ -38,7 +37,6 @@ | jca/AesWrapAndPBEWith.java:124:65:124:86 | KeyDerivationAlgorithm | | jca/AesWrapAndPBEWith.java:125:27:125:54 | Key | | jca/AesWrapAndPBEWith.java:125:27:125:54 | KeyDerivation | -| jca/AesWrapAndPBEWith.java:140:9:140:42 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:140:38:140:41 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:141:42:141:63 | Message | | jca/AesWrapAndPBEWith.java:141:66:141:69 | Salt | @@ -50,14 +48,12 @@ | jca/AesWrapAndPBEWith.java:146:44:146:65 | KeyOperationAlgorithm | | jca/AesWrapAndPBEWith.java:146:44:146:65 | ModeOfOperation | | jca/AesWrapAndPBEWith.java:146:44:146:65 | PaddingAlgorithm | -| jca/AesWrapAndPBEWith.java:148:9:148:40 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:148:38:148:39 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:150:42:150:47 | Key | | jca/AesWrapAndPBEWith.java:150:50:150:55 | Nonce | | jca/AesWrapAndPBEWith.java:151:29:151:64 | EncryptOperation | | jca/AesWrapAndPBEWith.java:151:29:151:64 | KeyOperationOutput | | jca/AesWrapAndPBEWith.java:151:44:151:63 | Message | -| jca/AesWrapAndPBEWith.java:167:9:167:42 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:167:38:167:41 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:168:42:168:63 | Message | | jca/AesWrapAndPBEWith.java:168:66:168:69 | Salt | @@ -69,7 +65,6 @@ | jca/AesWrapAndPBEWith.java:173:44:173:65 | KeyOperationAlgorithm | | jca/AesWrapAndPBEWith.java:173:44:173:65 | ModeOfOperation | | jca/AesWrapAndPBEWith.java:173:44:173:65 | PaddingAlgorithm | -| jca/AesWrapAndPBEWith.java:175:9:175:40 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:175:38:175:39 | RandomNumberGeneration | | jca/AesWrapAndPBEWith.java:177:42:177:47 | Key | | jca/AesWrapAndPBEWith.java:177:50:177:55 | Nonce | @@ -109,7 +104,6 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:168:34:168:55 | KeyOperationOutput | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:168:34:168:55 | WrapOperation | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:168:49:168:54 | Message | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:9:171:40 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:171:38:171:39 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | KeyOperationAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:172:47:172:65 | ModeOfOperation | @@ -135,7 +129,6 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:197:29:197:56 | KeyOperationOutput | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:197:47:197:55 | Message | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:215:91:215:96 | KeyAgreementAlgorithm | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:9:220:40 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:220:38:220:39 | RandomNumberGeneration | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | KeyOperationAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:221:44:221:62 | ModeOfOperation | @@ -155,12 +148,14 @@ | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:29:246:53 | KeyOperationOutput | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:246:44:246:52 | Message | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:271:58:271:73 | Parameter | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | KeyOperationAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HMACAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:295:35:295:46 | HashAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:297:18:297:26 | Key | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | KeyOperationOutput | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:16:298:46 | MACOperation | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:298:28:298:45 | Message | -| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | KeyOperationAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HMACAlgorithm | +| jca/AsymmetricEncryptionMacHybridCryptosystem.java:306:35:306:44 | HashAlgorithm | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:308:18:308:26 | Key | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | KeyOperationOutput | | jca/AsymmetricEncryptionMacHybridCryptosystem.java:309:16:309:46 | MACOperation | @@ -172,7 +167,6 @@ | jca/ChainedEncryptionTest.java:19:44:19:62 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:19:44:19:62 | ModeOfOperation | | jca/ChainedEncryptionTest.java:19:44:19:62 | PaddingAlgorithm | -| jca/ChainedEncryptionTest.java:21:9:21:40 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:21:38:21:39 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:23:42:23:44 | Key | | jca/ChainedEncryptionTest.java:23:47:23:50 | Nonce | @@ -188,7 +182,6 @@ | jca/ChainedEncryptionTest.java:35:16:35:41 | KeyOperationOutput | | jca/ChainedEncryptionTest.java:35:31:35:40 | Message | | jca/ChainedEncryptionTest.java:40:44:40:62 | KeyOperationAlgorithm | -| jca/ChainedEncryptionTest.java:42:9:42:43 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:42:38:42:42 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:43:42:43:44 | Key | | jca/ChainedEncryptionTest.java:43:47:43:72 | Nonce | @@ -210,7 +203,6 @@ | jca/ChainedEncryptionTest.java:84:24:84:26 | Constant | | jca/ChainedEncryptionTest.java:85:30:85:52 | Key | | jca/ChainedEncryptionTest.java:85:30:85:52 | KeyGeneration | -| jca/ChainedEncryptionTest.java:89:9:89:43 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:89:38:89:42 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:90:47:90:65 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:90:47:90:65 | ModeOfOperation | @@ -220,7 +212,6 @@ | jca/ChainedEncryptionTest.java:93:34:93:62 | EncryptOperation | | jca/ChainedEncryptionTest.java:93:34:93:62 | KeyOperationOutput | | jca/ChainedEncryptionTest.java:93:52:93:61 | Message | -| jca/ChainedEncryptionTest.java:97:9:97:49 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:97:38:97:48 | RandomNumberGeneration | | jca/ChainedEncryptionTest.java:98:50:98:68 | KeyOperationAlgorithm | | jca/ChainedEncryptionTest.java:99:48:99:55 | Key | @@ -289,7 +280,8 @@ | jca/Digest.java:109:41:109:56 | Message | | jca/Digest.java:117:35:117:46 | Parameter | | jca/Digest.java:117:49:117:58 | Parameter | -| jca/Digest.java:118:36:118:47 | KeyOperationAlgorithm | +| jca/Digest.java:118:36:118:47 | HMACAlgorithm | +| jca/Digest.java:118:36:118:47 | HashAlgorithm | | jca/Digest.java:120:19:120:27 | Key | | jca/Digest.java:121:23:121:52 | KeyOperationOutput | | jca/Digest.java:121:23:121:52 | MACOperation | @@ -321,7 +313,8 @@ | jca/Digest.java:188:29:188:78 | KeyOperationOutput | | jca/Digest.java:188:44:188:66 | Constant | | jca/Digest.java:188:44:188:77 | Message | -| jca/Digest.java:191:35:191:46 | KeyOperationAlgorithm | +| jca/Digest.java:191:35:191:46 | HMACAlgorithm | +| jca/Digest.java:191:35:191:46 | HashAlgorithm | | jca/Digest.java:192:18:192:23 | Key | | jca/Digest.java:193:30:193:52 | KeyOperationOutput | | jca/Digest.java:193:30:193:52 | MACOperation | @@ -337,7 +330,6 @@ | jca/Digest.java:240:21:240:23 | Constant | | jca/Digest.java:241:16:241:35 | Key | | jca/Digest.java:241:16:241:35 | KeyGeneration | -| jca/Digest.java:253:9:253:42 | RandomNumberGeneration | | jca/Digest.java:253:38:253:41 | RandomNumberGeneration | | jca/EllipticCurve1.java:46:66:46:76 | EllipticCurve | | jca/EllipticCurve1.java:47:16:47:36 | Key | @@ -360,7 +352,7 @@ | jca/EllipticCurve1.java:105:66:105:76 | Constant | | jca/EllipticCurve1.java:106:16:106:36 | Key | | jca/EllipticCurve1.java:106:16:106:36 | KeyGeneration | -| jca/EllipticCurve1.java:114:61:114:69 | Constant | +| jca/EllipticCurve1.java:114:61:114:69 | KeyOperationAlgorithm | | jca/EllipticCurve1.java:115:16:115:36 | Key | | jca/EllipticCurve1.java:115:16:115:36 | KeyGeneration | | jca/EllipticCurve2.java:46:47:46:57 | EllipticCurve | @@ -375,7 +367,7 @@ | jca/EllipticCurve2.java:72:61:72:68 | KeyAgreementAlgorithm | | jca/EllipticCurve2.java:73:16:73:36 | Key | | jca/EllipticCurve2.java:73:16:73:36 | KeyGeneration | -| jca/EllipticCurve2.java:80:61:80:69 | Constant | +| jca/EllipticCurve2.java:80:61:80:69 | KeyOperationAlgorithm | | jca/EllipticCurve2.java:81:16:81:36 | Key | | jca/EllipticCurve2.java:81:16:81:36 | KeyGeneration | | jca/EllipticCurve2.java:105:52:105:57 | KeyAgreementAlgorithm | @@ -422,7 +414,6 @@ | jca/EllipticCurve2.java:219:44:219:62 | KeyOperationAlgorithm | | jca/EllipticCurve2.java:219:44:219:62 | ModeOfOperation | | jca/EllipticCurve2.java:219:44:219:62 | PaddingAlgorithm | -| jca/EllipticCurve2.java:221:9:221:40 | RandomNumberGeneration | | jca/EllipticCurve2.java:221:38:221:39 | RandomNumberGeneration | | jca/EllipticCurve2.java:223:42:223:47 | Key | | jca/EllipticCurve2.java:223:50:223:53 | Nonce | @@ -438,7 +429,6 @@ | jca/Encryption1.java:63:44:63:62 | KeyOperationAlgorithm | | jca/Encryption1.java:63:44:63:62 | ModeOfOperation | | jca/Encryption1.java:63:44:63:62 | PaddingAlgorithm | -| jca/Encryption1.java:65:9:65:40 | RandomNumberGeneration | | jca/Encryption1.java:65:38:65:39 | RandomNumberGeneration | | jca/Encryption1.java:67:42:67:44 | Key | | jca/Encryption1.java:67:47:67:53 | Nonce | @@ -508,7 +498,6 @@ | jca/Encryption1.java:171:47:171:65 | KeyOperationAlgorithm | | jca/Encryption1.java:171:47:171:65 | ModeOfOperation | | jca/Encryption1.java:171:47:171:65 | PaddingAlgorithm | -| jca/Encryption1.java:173:9:173:40 | RandomNumberGeneration | | jca/Encryption1.java:173:38:173:39 | RandomNumberGeneration | | jca/Encryption1.java:175:45:175:50 | Key | | jca/Encryption1.java:175:53:175:59 | Nonce | @@ -532,7 +521,6 @@ | jca/Encryption2.java:105:47:105:65 | KeyOperationAlgorithm | | jca/Encryption2.java:105:47:105:65 | ModeOfOperation | | jca/Encryption2.java:105:47:105:65 | PaddingAlgorithm | -| jca/Encryption2.java:107:9:107:40 | RandomNumberGeneration | | jca/Encryption2.java:107:38:107:39 | RandomNumberGeneration | | jca/Encryption2.java:109:45:109:50 | Key | | jca/Encryption2.java:109:53:109:59 | Nonce | @@ -544,7 +532,6 @@ | jca/Encryption2.java:145:47:145:65 | KeyOperationAlgorithm | | jca/Encryption2.java:145:47:145:65 | ModeOfOperation | | jca/Encryption2.java:145:47:145:65 | PaddingAlgorithm | -| jca/Encryption2.java:147:9:147:40 | RandomNumberGeneration | | jca/Encryption2.java:147:38:147:39 | RandomNumberGeneration | | jca/Encryption2.java:149:45:149:50 | Key | | jca/Encryption2.java:149:53:149:59 | Nonce | @@ -552,7 +539,8 @@ | jca/Encryption2.java:150:32:150:98 | KeyOperationOutput | | jca/Encryption2.java:150:50:150:86 | Constant | | jca/Encryption2.java:150:50:150:97 | Message | -| jca/Encryption2.java:173:36:173:47 | KeyOperationAlgorithm | +| jca/Encryption2.java:173:36:173:47 | HMACAlgorithm | +| jca/Encryption2.java:173:36:173:47 | HashAlgorithm | | jca/Encryption2.java:175:19:175:27 | Key | | jca/Encryption2.java:176:31:176:52 | KeyOperationOutput | | jca/Encryption2.java:176:31:176:52 | MACOperation | @@ -590,6 +578,7 @@ | jca/Hash.java:174:23:174:52 | HashOperation | | jca/Hash.java:174:37:174:51 | Message | | jca/Hash.java:190:43:190:54 | Parameter | +| jca/Hash.java:191:31:192:48 | Constant | | jca/Hash.java:191:32:191:38 | HashAlgorithm | | jca/Hash.java:191:41:191:49 | HashAlgorithm | | jca/Hash.java:191:52:191:60 | HashAlgorithm | @@ -598,19 +587,25 @@ | jca/Hash.java:191:85:191:94 | HashAlgorithm | | jca/Hash.java:191:97:191:106 | HashAlgorithm | | jca/Hash.java:192:13:192:25 | HashAlgorithm | -| jca/Hash.java:192:28:192:40 | HashAlgorithm | | jca/Hash.java:192:43:192:47 | HashAlgorithm | | jca/Hash.java:195:27:195:57 | Digest | | jca/Hash.java:195:27:195:57 | HashOperation | | jca/Hash.java:195:41:195:56 | Message | | jca/Hash.java:211:43:211:54 | Parameter | | jca/Hash.java:211:57:211:66 | Parameter | -| jca/Hash.java:212:32:212:41 | KeyOperationAlgorithm | -| jca/Hash.java:212:44:212:55 | KeyOperationAlgorithm | -| jca/Hash.java:212:58:212:69 | KeyOperationAlgorithm | -| jca/Hash.java:212:72:212:83 | KeyOperationAlgorithm | -| jca/Hash.java:212:86:212:99 | KeyOperationAlgorithm | -| jca/Hash.java:212:102:212:115 | KeyOperationAlgorithm | +| jca/Hash.java:212:31:212:116 | Constant | +| jca/Hash.java:212:32:212:41 | HMACAlgorithm | +| jca/Hash.java:212:32:212:41 | HashAlgorithm | +| jca/Hash.java:212:44:212:55 | HMACAlgorithm | +| jca/Hash.java:212:44:212:55 | HashAlgorithm | +| jca/Hash.java:212:58:212:69 | HMACAlgorithm | +| jca/Hash.java:212:58:212:69 | HashAlgorithm | +| jca/Hash.java:212:72:212:83 | HMACAlgorithm | +| jca/Hash.java:212:72:212:83 | HashAlgorithm | +| jca/Hash.java:212:86:212:99 | HMACAlgorithm | +| jca/Hash.java:212:86:212:99 | HashAlgorithm | +| jca/Hash.java:212:102:212:115 | HMACAlgorithm | +| jca/Hash.java:212:102:212:115 | HashAlgorithm | | jca/Hash.java:216:22:216:30 | Key | | jca/Hash.java:217:27:217:55 | KeyOperationOutput | | jca/Hash.java:217:27:217:55 | MACOperation | @@ -629,6 +624,7 @@ | jca/Hash.java:252:23:252:70 | HashOperation | | jca/Hash.java:252:37:252:58 | Constant | | jca/Hash.java:252:37:252:69 | Message | +| jca/Hash.java:266:31:266:76 | Constant | | jca/Hash.java:266:32:266:40 | HashAlgorithm | | jca/Hash.java:266:43:266:51 | HashAlgorithm | | jca/Hash.java:266:54:266:63 | HashAlgorithm | @@ -637,9 +633,9 @@ | jca/Hash.java:270:27:270:30 | Message | | jca/Hash.java:271:40:271:54 | Digest | | jca/Hash.java:271:40:271:54 | HashOperation | +| jca/Hash.java:294:16:294:66 | Constant | | jca/Hash.java:294:16:294:66 | LocalData | | jca/Hash.java:294:57:294:65 | HashAlgorithm | -| jca/Hash.java:310:9:310:42 | RandomNumberGeneration | | jca/Hash.java:310:38:310:41 | RandomNumberGeneration | | jca/IVArtifact.java:30:44:30:65 | KeyOperationAlgorithm | | jca/IVArtifact.java:30:44:30:65 | ModeOfOperation | @@ -656,6 +652,7 @@ | jca/IVArtifact.java:39:29:39:53 | KeyOperationOutput | | jca/IVArtifact.java:39:44:39:52 | Message | | jca/IVArtifact.java:49:27:49:42 | Constant | +| jca/IVArtifact.java:70:16:70:81 | Constant | | jca/IVArtifact.java:70:16:70:81 | LocalData | | jca/IVArtifact.java:70:59:70:80 | KeyOperationAlgorithm | | jca/IVArtifact.java:70:59:70:80 | ModeOfOperation | @@ -664,7 +661,6 @@ | jca/IVArtifact.java:75:21:75:23 | Constant | | jca/IVArtifact.java:76:16:76:35 | Key | | jca/IVArtifact.java:76:16:76:35 | KeyGeneration | -| jca/IVArtifact.java:81:9:81:40 | RandomNumberGeneration | | jca/IVArtifact.java:81:38:81:39 | RandomNumberGeneration | | jca/IVArtifact.java:87:32:87:33 | RandomNumberGeneration | | jca/IVArtifact.java:105:44:105:62 | KeyOperationAlgorithm | @@ -676,7 +672,6 @@ | jca/IVArtifact.java:109:16:109:40 | KeyOperationOutput | | jca/IVArtifact.java:109:31:109:39 | Message | | jca/IVArtifact.java:116:31:116:34 | Constant | -| jca/IVArtifact.java:130:13:130:50 | RandomNumberGeneration | | jca/IVArtifact.java:130:42:130:49 | RandomNumberGeneration | | jca/IVArtifact.java:132:44:132:62 | KeyOperationAlgorithm | | jca/IVArtifact.java:132:44:132:62 | ModeOfOperation | @@ -699,7 +694,6 @@ | jca/IVArtifact.java:159:16:159:40 | EncryptOperation | | jca/IVArtifact.java:159:16:159:40 | KeyOperationOutput | | jca/IVArtifact.java:159:31:159:39 | Message | -| jca/IVArtifact.java:177:9:177:40 | RandomNumberGeneration | | jca/IVArtifact.java:177:38:177:39 | RandomNumberGeneration | | jca/IVArtifact.java:180:48:180:66 | KeyOperationAlgorithm | | jca/IVArtifact.java:180:48:180:66 | ModeOfOperation | @@ -748,7 +742,6 @@ | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | KeyOperationAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | ModeOfOperation | | jca/KeyAgreementHybridCryptosystem.java:108:44:108:62 | PaddingAlgorithm | -| jca/KeyAgreementHybridCryptosystem.java:110:9:110:40 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:110:38:110:39 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:112:42:112:47 | Key | | jca/KeyAgreementHybridCryptosystem.java:112:50:112:53 | Nonce | @@ -770,7 +763,6 @@ | jca/KeyAgreementHybridCryptosystem.java:150:59:150:67 | HashAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:150:77:150:88 | Message | | jca/KeyAgreementHybridCryptosystem.java:153:44:153:62 | KeyOperationAlgorithm | -| jca/KeyAgreementHybridCryptosystem.java:155:9:155:43 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:155:38:155:42 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:156:42:156:50 | Key | | jca/KeyAgreementHybridCryptosystem.java:156:53:156:78 | Nonce | @@ -799,14 +791,14 @@ | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | KeyOperationAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | ModeOfOperation | | jca/KeyAgreementHybridCryptosystem.java:223:44:223:62 | PaddingAlgorithm | -| jca/KeyAgreementHybridCryptosystem.java:225:9:225:40 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:225:38:225:39 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:227:42:227:54 | Key | | jca/KeyAgreementHybridCryptosystem.java:227:57:227:63 | Nonce | | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | EncryptOperation | | jca/KeyAgreementHybridCryptosystem.java:228:29:228:53 | KeyOperationOutput | | jca/KeyAgreementHybridCryptosystem.java:228:44:228:52 | Message | -| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | KeyOperationAlgorithm | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HMACAlgorithm | +| jca/KeyAgreementHybridCryptosystem.java:230:35:230:46 | HashAlgorithm | | jca/KeyAgreementHybridCryptosystem.java:231:18:231:30 | Key | | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | KeyOperationOutput | | jca/KeyAgreementHybridCryptosystem.java:232:30:232:52 | MACOperation | @@ -815,7 +807,6 @@ | jca/KeyAgreementHybridCryptosystem.java:260:17:260:19 | Constant | | jca/KeyAgreementHybridCryptosystem.java:261:16:261:31 | Key | | jca/KeyAgreementHybridCryptosystem.java:261:16:261:31 | KeyGeneration | -| jca/KeyAgreementHybridCryptosystem.java:269:9:269:42 | RandomNumberGeneration | | jca/KeyAgreementHybridCryptosystem.java:269:38:269:41 | RandomNumberGeneration | | jca/KeyArtifact.java:18:56:18:60 | KeyOperationAlgorithm | | jca/KeyArtifact.java:19:21:19:23 | Constant | @@ -836,6 +827,7 @@ | jca/KeyArtifact.java:41:31:41:33 | Constant | | jca/KeyArtifact.java:42:26:42:53 | Key | | jca/KeyArtifact.java:42:26:42:53 | KeyGeneration | +| jca/KeyArtifact.java:62:28:62:73 | Constant | | jca/KeyArtifact.java:62:28:62:73 | LocalData | | jca/KeyArtifact.java:62:68:62:72 | KeyOperationAlgorithm | | jca/KeyArtifact.java:65:21:65:23 | Constant | @@ -844,8 +836,9 @@ | jca/KeyArtifact.java:72:31:72:34 | Constant | | jca/KeyArtifact.java:73:16:73:43 | Key | | jca/KeyArtifact.java:73:16:73:43 | KeyGeneration | +| jca/KeyArtifact.java:78:31:78:54 | Constant | | jca/KeyArtifact.java:78:32:78:36 | KeyOperationAlgorithm | -| jca/KeyArtifact.java:78:45:78:53 | Constant | +| jca/KeyArtifact.java:78:45:78:53 | KeyOperationAlgorithm | | jca/KeyDerivation1.java:78:39:78:53 | Parameter | | jca/KeyDerivation1.java:80:42:80:63 | Message | | jca/KeyDerivation1.java:80:66:80:69 | Salt | @@ -929,11 +922,14 @@ | jca/KeyDerivation1.java:283:43:283:57 | Parameter | | jca/KeyDerivation1.java:283:60:283:78 | Parameter | | jca/KeyDerivation1.java:302:37:302:51 | Parameter | +| jca/KeyDerivation1.java:309:25:309:76 | Constant | | jca/KeyDerivation1.java:309:25:309:76 | LocalData | | jca/KeyDerivation1.java:309:54:309:75 | HMACAlgorithm | | jca/KeyDerivation1.java:309:54:309:75 | HashAlgorithm | | jca/KeyDerivation1.java:309:54:309:75 | KeyDerivationAlgorithm | +| jca/KeyDerivation1.java:310:43:310:86 | Constant | | jca/KeyDerivation1.java:310:43:310:86 | LocalData | +| jca/KeyDerivation1.java:311:40:311:78 | Constant | | jca/KeyDerivation1.java:311:40:311:78 | LocalData | | jca/KeyDerivation1.java:314:42:314:63 | Message | | jca/KeyDerivation1.java:314:66:314:69 | Salt | @@ -948,7 +944,8 @@ | jca/KeyDerivation1.java:334:65:334:86 | KeyDerivationAlgorithm | | jca/KeyDerivation1.java:335:16:335:43 | Key | | jca/KeyDerivation1.java:335:16:335:43 | KeyDerivation | -| jca/KeyDerivation1.java:345:36:345:47 | KeyOperationAlgorithm | +| jca/KeyDerivation1.java:345:36:345:47 | HMACAlgorithm | +| jca/KeyDerivation1.java:345:36:345:47 | HashAlgorithm | | jca/KeyDerivation1.java:347:19:347:27 | Key | | jca/KeyDerivation1.java:348:22:348:38 | KeyOperationOutput | | jca/KeyDerivation1.java:348:22:348:38 | MACOperation | @@ -958,7 +955,6 @@ | jca/KeyDerivation1.java:353:22:353:62 | MACOperation | | jca/KeyDerivation1.java:353:35:353:50 | Constant | | jca/KeyDerivation1.java:353:35:353:61 | Message | -| jca/KeyDerivation1.java:365:9:365:42 | RandomNumberGeneration | | jca/KeyDerivation1.java:365:38:365:41 | RandomNumberGeneration | | jca/KeyEncapsulation.java:60:56:60:60 | KeyOperationAlgorithm | | jca/KeyEncapsulation.java:61:21:61:23 | Constant | @@ -975,7 +971,6 @@ | jca/KeyEncapsulation.java:73:47:73:65 | KeyOperationAlgorithm | | jca/KeyEncapsulation.java:73:47:73:65 | ModeOfOperation | | jca/KeyEncapsulation.java:73:47:73:65 | PaddingAlgorithm | -| jca/KeyEncapsulation.java:75:9:75:40 | RandomNumberGeneration | | jca/KeyEncapsulation.java:75:38:75:39 | RandomNumberGeneration | | jca/KeyEncapsulation.java:77:45:77:50 | Key | | jca/KeyEncapsulation.java:77:53:77:59 | Nonce | @@ -1004,7 +999,6 @@ | jca/KeyEncapsulation.java:133:47:133:65 | KeyOperationAlgorithm | | jca/KeyEncapsulation.java:133:47:133:65 | ModeOfOperation | | jca/KeyEncapsulation.java:133:47:133:65 | PaddingAlgorithm | -| jca/KeyEncapsulation.java:135:9:135:40 | RandomNumberGeneration | | jca/KeyEncapsulation.java:135:38:135:39 | RandomNumberGeneration | | jca/KeyEncapsulation.java:136:45:136:50 | Key | | jca/KeyEncapsulation.java:136:53:136:81 | Nonce | @@ -1074,14 +1068,16 @@ | jca/KeyExchange.java:213:16:213:34 | SharedSecret | | jca/MACOperation.java:59:36:59:49 | Parameter | | jca/MACOperation.java:59:52:59:61 | Parameter | -| jca/MACOperation.java:60:35:60:46 | KeyOperationAlgorithm | +| jca/MACOperation.java:60:35:60:46 | HMACAlgorithm | +| jca/MACOperation.java:60:35:60:46 | HashAlgorithm | | jca/MACOperation.java:62:18:62:26 | Key | | jca/MACOperation.java:63:16:63:46 | KeyOperationOutput | | jca/MACOperation.java:63:16:63:46 | MACOperation | | jca/MACOperation.java:63:28:63:45 | Message | | jca/MACOperation.java:70:34:70:47 | Parameter | | jca/MACOperation.java:70:50:70:59 | Parameter | -| jca/MACOperation.java:71:35:71:48 | KeyOperationAlgorithm | +| jca/MACOperation.java:71:35:71:48 | HMACAlgorithm | +| jca/MACOperation.java:71:35:71:48 | HashAlgorithm | | jca/MACOperation.java:73:18:73:26 | Key | | jca/MACOperation.java:74:16:74:46 | KeyOperationOutput | | jca/MACOperation.java:74:16:74:46 | MACOperation | @@ -1109,7 +1105,8 @@ | jca/MACOperation.java:110:28:110:45 | Message | | jca/MACOperation.java:117:36:117:49 | Parameter | | jca/MACOperation.java:117:52:117:61 | Parameter | -| jca/MACOperation.java:118:35:118:44 | KeyOperationAlgorithm | +| jca/MACOperation.java:118:35:118:44 | HMACAlgorithm | +| jca/MACOperation.java:118:35:118:44 | HashAlgorithm | | jca/MACOperation.java:120:18:120:26 | Key | | jca/MACOperation.java:121:16:121:46 | KeyOperationOutput | | jca/MACOperation.java:121:16:121:46 | MACOperation | @@ -1142,7 +1139,8 @@ | jca/MACOperation.java:182:29:182:78 | KeyOperationOutput | | jca/MACOperation.java:182:44:182:66 | Constant | | jca/MACOperation.java:182:44:182:77 | Message | -| jca/MACOperation.java:185:35:185:46 | KeyOperationAlgorithm | +| jca/MACOperation.java:185:35:185:46 | HMACAlgorithm | +| jca/MACOperation.java:185:35:185:46 | HashAlgorithm | | jca/MACOperation.java:186:18:186:30 | Key | | jca/MACOperation.java:187:30:187:52 | KeyOperationOutput | | jca/MACOperation.java:187:30:187:52 | MACOperation | @@ -1158,16 +1156,20 @@ | jca/MACOperation.java:233:21:233:23 | Constant | | jca/MACOperation.java:234:16:234:35 | Key | | jca/MACOperation.java:234:16:234:35 | KeyGeneration | -| jca/MACOperation.java:246:9:246:42 | RandomNumberGeneration | | jca/MACOperation.java:246:38:246:41 | RandomNumberGeneration | -| jca/Nonce.java:24:35:24:46 | KeyOperationAlgorithm | +| jca/Nonce.java:24:35:24:46 | HMACAlgorithm | +| jca/Nonce.java:24:35:24:46 | HashAlgorithm | | jca/Nonce.java:25:18:25:20 | Key | +| jca/Nonce.java:26:20:26:24 | Message | | jca/Nonce.java:27:28:27:69 | KeyOperationOutput | | jca/Nonce.java:27:28:27:69 | MACOperation | | jca/Nonce.java:27:40:27:57 | Constant | | jca/Nonce.java:27:40:27:68 | Message | -| jca/Nonce.java:37:35:37:46 | KeyOperationAlgorithm | +| jca/Nonce.java:35:24:35:41 | Constant | +| jca/Nonce.java:37:35:37:46 | HMACAlgorithm | +| jca/Nonce.java:37:35:37:46 | HashAlgorithm | | jca/Nonce.java:38:18:38:20 | Key | +| jca/Nonce.java:39:20:39:24 | Message | | jca/Nonce.java:40:28:40:67 | KeyOperationOutput | | jca/Nonce.java:40:28:40:67 | MACOperation | | jca/Nonce.java:40:40:40:55 | Constant | @@ -1192,8 +1194,10 @@ | jca/Nonce.java:63:29:63:53 | EncryptOperation | | jca/Nonce.java:63:29:63:53 | KeyOperationOutput | | jca/Nonce.java:63:44:63:52 | Message | -| jca/Nonce.java:70:53:70:64 | KeyOperationAlgorithm | +| jca/Nonce.java:70:53:70:64 | HMACAlgorithm | +| jca/Nonce.java:70:53:70:64 | HashAlgorithm | | jca/Nonce.java:78:18:78:20 | Key | +| jca/Nonce.java:79:20:79:24 | Message | | jca/Nonce.java:80:28:80:67 | KeyOperationOutput | | jca/Nonce.java:80:28:80:67 | MACOperation | | jca/Nonce.java:80:40:80:55 | Constant | @@ -1201,8 +1205,8 @@ | jca/Nonce.java:92:56:92:67 | Constant | | jca/Nonce.java:93:16:93:35 | Key | | jca/Nonce.java:93:16:93:35 | KeyGeneration | -| jca/Nonce.java:98:9:98:43 | RandomNumberGeneration | | jca/Nonce.java:98:38:98:42 | RandomNumberGeneration | +| jca/Nonce.java:104:32:104:36 | RandomNumberGeneration | | jca/Nonce.java:112:16:112:33 | Constant | | jca/PrngTest.java:152:56:152:60 | KeyOperationAlgorithm | | jca/PrngTest.java:153:21:153:23 | Constant | @@ -1230,7 +1234,6 @@ | jca/SignEncryptCombinations.java:92:44:92:62 | KeyOperationAlgorithm | | jca/SignEncryptCombinations.java:92:44:92:62 | ModeOfOperation | | jca/SignEncryptCombinations.java:92:44:92:62 | PaddingAlgorithm | -| jca/SignEncryptCombinations.java:94:9:94:28 | RandomNumberGeneration | | jca/SignEncryptCombinations.java:94:26:94:27 | RandomNumberGeneration | | jca/SignEncryptCombinations.java:96:42:96:44 | Key | | jca/SignEncryptCombinations.java:96:47:96:50 | Nonce | @@ -1245,7 +1248,8 @@ | jca/SignEncryptCombinations.java:113:16:113:41 | DecryptOperation | | jca/SignEncryptCombinations.java:113:16:113:41 | KeyOperationOutput | | jca/SignEncryptCombinations.java:113:31:113:40 | Message | -| jca/SignEncryptCombinations.java:121:35:121:46 | KeyOperationAlgorithm | +| jca/SignEncryptCombinations.java:121:35:121:46 | HMACAlgorithm | +| jca/SignEncryptCombinations.java:121:35:121:46 | HashAlgorithm | | jca/SignEncryptCombinations.java:122:18:122:20 | Key | | jca/SignEncryptCombinations.java:123:16:123:32 | KeyOperationOutput | | jca/SignEncryptCombinations.java:123:16:123:32 | MACOperation | @@ -1282,7 +1286,7 @@ | jca/SignatureOperation.java:117:26:117:29 | Message | | jca/SignatureOperation.java:118:16:118:41 | VerifyOperation | | jca/SignatureOperation.java:118:33:118:40 | SignatureInput | -| jca/SignatureOperation.java:132:61:132:69 | Constant | +| jca/SignatureOperation.java:132:61:132:69 | KeyOperationAlgorithm | | jca/SignatureOperation.java:133:16:133:36 | Key | | jca/SignatureOperation.java:133:16:133:36 | KeyGeneration | | jca/SignatureOperation.java:142:53:142:61 | KeyOperationAlgorithm | @@ -1335,7 +1339,6 @@ | jca/SymmetricAlgorithm.java:51:44:51:62 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:51:44:51:62 | ModeOfOperation | | jca/SymmetricAlgorithm.java:51:44:51:62 | PaddingAlgorithm | -| jca/SymmetricAlgorithm.java:53:9:53:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:53:38:53:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:55:42:55:44 | Key | | jca/SymmetricAlgorithm.java:55:47:55:50 | Nonce | @@ -1355,7 +1358,6 @@ | jca/SymmetricAlgorithm.java:94:44:94:65 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:94:44:94:65 | ModeOfOperation | | jca/SymmetricAlgorithm.java:94:44:94:65 | PaddingAlgorithm | -| jca/SymmetricAlgorithm.java:96:9:96:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:96:38:96:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:98:42:98:44 | Key | | jca/SymmetricAlgorithm.java:98:47:98:52 | Nonce | @@ -1379,7 +1381,6 @@ | jca/SymmetricAlgorithm.java:146:44:146:65 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:146:44:146:65 | ModeOfOperation | | jca/SymmetricAlgorithm.java:146:44:146:65 | PaddingAlgorithm | -| jca/SymmetricAlgorithm.java:148:9:148:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:148:38:148:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:150:42:150:44 | Key | | jca/SymmetricAlgorithm.java:150:47:150:52 | Nonce | @@ -1391,7 +1392,6 @@ | jca/SymmetricAlgorithm.java:168:44:168:68 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:168:44:168:68 | ModeOfOperation | | jca/SymmetricAlgorithm.java:168:44:168:68 | PaddingAlgorithm | -| jca/SymmetricAlgorithm.java:170:9:170:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:170:38:170:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:172:42:172:44 | Key | | jca/SymmetricAlgorithm.java:172:47:172:52 | Nonce | @@ -1399,7 +1399,6 @@ | jca/SymmetricAlgorithm.java:173:29:173:53 | KeyOperationOutput | | jca/SymmetricAlgorithm.java:173:44:173:52 | Message | | jca/SymmetricAlgorithm.java:190:44:190:53 | KeyOperationAlgorithm | -| jca/SymmetricAlgorithm.java:192:9:192:43 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:192:38:192:42 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:194:42:194:44 | Key | | jca/SymmetricAlgorithm.java:194:47:194:72 | Nonce | @@ -1416,7 +1415,6 @@ | jca/SymmetricAlgorithm.java:218:44:218:62 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:218:44:218:62 | ModeOfOperation | | jca/SymmetricAlgorithm.java:218:44:218:62 | PaddingAlgorithm | -| jca/SymmetricAlgorithm.java:220:9:220:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:220:38:220:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:222:42:222:51 | Key | | jca/SymmetricAlgorithm.java:222:54:222:57 | Nonce | @@ -1439,14 +1437,14 @@ | jca/SymmetricAlgorithm.java:295:44:295:62 | KeyOperationAlgorithm | | jca/SymmetricAlgorithm.java:295:44:295:62 | ModeOfOperation | | jca/SymmetricAlgorithm.java:295:44:295:62 | PaddingAlgorithm | -| jca/SymmetricAlgorithm.java:297:9:297:40 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:297:38:297:39 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:298:42:298:47 | Key | | jca/SymmetricAlgorithm.java:298:50:298:78 | Nonce | | jca/SymmetricAlgorithm.java:299:29:299:53 | EncryptOperation | | jca/SymmetricAlgorithm.java:299:29:299:53 | KeyOperationOutput | | jca/SymmetricAlgorithm.java:299:44:299:52 | Message | -| jca/SymmetricAlgorithm.java:301:35:301:46 | KeyOperationAlgorithm | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HMACAlgorithm | +| jca/SymmetricAlgorithm.java:301:35:301:46 | HashAlgorithm | | jca/SymmetricAlgorithm.java:302:18:302:30 | Key | | jca/SymmetricAlgorithm.java:303:30:303:52 | KeyOperationOutput | | jca/SymmetricAlgorithm.java:303:30:303:52 | MACOperation | @@ -1455,7 +1453,6 @@ | jca/SymmetricAlgorithm.java:332:17:332:19 | Constant | | jca/SymmetricAlgorithm.java:333:16:333:31 | Key | | jca/SymmetricAlgorithm.java:333:16:333:31 | KeyGeneration | -| jca/SymmetricAlgorithm.java:345:9:345:42 | RandomNumberGeneration | | jca/SymmetricAlgorithm.java:345:38:345:41 | RandomNumberGeneration | | jca/SymmetricModesTest.java:48:52:48:56 | KeyOperationAlgorithm | | jca/SymmetricModesTest.java:49:17:49:19 | Constant | @@ -1476,7 +1473,6 @@ | jca/SymmetricModesTest.java:79:44:79:63 | KeyOperationAlgorithm | | jca/SymmetricModesTest.java:79:44:79:63 | ModeOfOperation | | jca/SymmetricModesTest.java:79:44:79:63 | PaddingAlgorithm | -| jca/SymmetricModesTest.java:81:9:81:40 | RandomNumberGeneration | | jca/SymmetricModesTest.java:81:38:81:39 | RandomNumberGeneration | | jca/SymmetricModesTest.java:83:42:83:44 | Key | | jca/SymmetricModesTest.java:83:47:83:52 | Nonce | @@ -1504,7 +1500,6 @@ | jca/UniversalFlowTest.java:28:29:28:47 | KeyOperationAlgorithm | | jca/UniversalFlowTest.java:28:29:28:47 | ModeOfOperation | | jca/UniversalFlowTest.java:28:29:28:47 | PaddingAlgorithm | -| jca/UniversalFlowTest.java:31:9:31:40 | RandomNumberGeneration | | jca/UniversalFlowTest.java:31:38:31:39 | RandomNumberGeneration | | jca/UniversalFlowTest.java:33:42:33:44 | Key | | jca/UniversalFlowTest.java:33:47:33:53 | Nonce | diff --git a/java/ql/test/experimental/query-tests/quantum/NonceReuse/NonceReuse.expected b/java/ql/test/experimental/query-tests/quantum/NonceReuse/NonceReuse.expected deleted file mode 100644 index 38ba6187b595..000000000000 --- a/java/ql/test/experimental/query-tests/quantum/NonceReuse/NonceReuse.expected +++ /dev/null @@ -1,4 +0,0 @@ -| Test.java:40:47:40:52 | Nonce | Reuse with nonce $@ | Test.java:49:47:49:52 | Nonce | Nonce | -| Test.java:49:47:49:52 | Nonce | Reuse with nonce $@ | Test.java:40:47:40:52 | Nonce | Nonce | -| Test.java:76:48:76:54 | Nonce | Reuse with nonce $@ | Test.java:82:49:82:55 | Nonce | Nonce | -| Test.java:82:49:82:55 | Nonce | Reuse with nonce $@ | Test.java:76:48:76:54 | Nonce | Nonce | diff --git a/java/ql/test/experimental/query-tests/quantum/NonceReuse/NonceReuse.qlref b/java/ql/test/experimental/query-tests/quantum/NonceReuse/NonceReuse.qlref deleted file mode 100644 index bfe67a6c2e8e..000000000000 --- a/java/ql/test/experimental/query-tests/quantum/NonceReuse/NonceReuse.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/quantum/Analysis/ReusedNonce.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.expected b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.expected new file mode 100644 index 000000000000..ba74f3dffce5 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.expected @@ -0,0 +1,36 @@ +#select +| BadMacUse.java:152:42:152:51 | ciphertext | BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:152:42:152:51 | ciphertext | Incorrect decryption and MAC order: Decryption of cipher text occurs before validation of MAC on cipher text. | +edges +| BadMacUse.java:84:42:84:53 | bytes : byte[] | BadMacUse.java:92:31:92:35 | bytes : byte[] | provenance | | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:100:39:100:48 | ciphertext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:100:39:100:48 | ciphertext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:108:39:108:47 | plaintext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:108:39:108:47 | plaintext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:118:52:118:60 | plaintext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:118:52:118:60 | plaintext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:146:48:146:57 | ciphertext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:146:48:146:57 | ciphertext : byte[] | provenance | Config | +| BadMacUse.java:99:39:99:55 | ciphertext : byte[] | BadMacUse.java:100:39:100:48 | ciphertext : byte[] | provenance | | +| BadMacUse.java:100:39:100:48 | ciphertext : byte[] | BadMacUse.java:84:42:84:53 | bytes : byte[] | provenance | | +| BadMacUse.java:100:39:100:48 | ciphertext : byte[] | BadMacUse.java:84:42:84:53 | bytes : byte[] | provenance | | +| BadMacUse.java:108:39:108:47 | plaintext : byte[] | BadMacUse.java:84:42:84:53 | bytes : byte[] | provenance | | +| BadMacUse.java:118:52:118:60 | plaintext : byte[] | BadMacUse.java:84:42:84:53 | bytes : byte[] | provenance | | +| BadMacUse.java:146:48:146:57 | ciphertext : byte[] | BadMacUse.java:99:39:99:55 | ciphertext : byte[] | provenance | | +| BadMacUse.java:146:48:146:57 | ciphertext : byte[] | BadMacUse.java:152:42:152:51 | ciphertext | provenance | | +nodes +| BadMacUse.java:84:42:84:53 | bytes : byte[] | semmle.label | bytes : byte[] | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| BadMacUse.java:99:39:99:55 | ciphertext : byte[] | semmle.label | ciphertext : byte[] | +| BadMacUse.java:100:39:100:48 | ciphertext : byte[] | semmle.label | ciphertext : byte[] | +| BadMacUse.java:100:39:100:48 | ciphertext : byte[] | semmle.label | ciphertext : byte[] | +| BadMacUse.java:108:39:108:47 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:118:52:118:60 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:146:48:146:57 | ciphertext : byte[] | semmle.label | ciphertext : byte[] | +| BadMacUse.java:152:42:152:51 | ciphertext | semmle.label | ciphertext | +subpaths +testFailures +| BadMacUse.java:50:56:50:65 | // $Source | Missing result: Source | +| BadMacUse.java:63:118:63:127 | // $Source | Missing result: Source | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | Unexpected result: Source | +| BadMacUse.java:146:95:146:104 | // $Source | Missing result: Source | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.qlref b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.qlref new file mode 100644 index 000000000000..811a6cbac130 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptThenMac.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/BadMacOrderDecryptThenMac.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.expected b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.expected new file mode 100644 index 000000000000..f73f0f25e0aa --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.expected @@ -0,0 +1,37 @@ +#select +| BadMacUse.java:56:42:56:50 | plaintext | BadMacUse.java:50:28:50:53 | doFinal(...) : byte[] | BadMacUse.java:56:42:56:50 | plaintext | Incorrect decryption and MAC order: decryption output plaintext flows to MAC message input. | +| BadMacUse.java:124:42:124:51 | ciphertext | BadMacUse.java:92:16:92:36 | doFinal(...) : byte[] | BadMacUse.java:124:42:124:51 | ciphertext | Incorrect decryption and MAC order: decryption output plaintext flows to MAC message input. | +edges +| BadMacUse.java:27:29:27:53 | doFinal(...) : byte[] | BadMacUse.java:32:42:32:51 | ciphertext | provenance | | +| BadMacUse.java:50:28:50:53 | doFinal(...) : byte[] | BadMacUse.java:56:42:56:50 | plaintext | provenance | | +| BadMacUse.java:84:83:84:91 | iv : byte[] | BadMacUse.java:90:63:90:64 | iv : byte[] | provenance | | +| BadMacUse.java:90:43:90:65 | new IvParameterSpec(...) : IvParameterSpec | BadMacUse.java:91:42:91:56 | ivParameterSpec | provenance | Sink:MaD:1 | +| BadMacUse.java:90:63:90:64 | iv : byte[] | BadMacUse.java:90:43:90:65 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| BadMacUse.java:90:63:90:64 | iv : byte[] | BadMacUse.java:90:43:90:65 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:2 | +| BadMacUse.java:92:16:92:36 | doFinal(...) : byte[] | BadMacUse.java:118:29:118:106 | cipherOperationWrapper(...) : byte[] | provenance | | +| BadMacUse.java:117:38:117:39 | iv : byte[] | BadMacUse.java:118:83:118:84 | iv : byte[] | provenance | | +| BadMacUse.java:118:29:118:106 | cipherOperationWrapper(...) : byte[] | BadMacUse.java:124:42:124:51 | ciphertext | provenance | | +| BadMacUse.java:118:83:118:84 | iv : byte[] | BadMacUse.java:84:83:84:91 | iv : byte[] | provenance | | +models +| 1 | Sink: javax.crypto; Cipher; true; init; (int,Key,AlgorithmParameterSpec); ; Argument[2]; encryption-iv; manual | +| 2 | Summary: javax.crypto.spec; IvParameterSpec; true; IvParameterSpec; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| BadMacUse.java:27:29:27:53 | doFinal(...) : byte[] | semmle.label | doFinal(...) : byte[] | +| BadMacUse.java:32:42:32:51 | ciphertext | semmle.label | ciphertext | +| BadMacUse.java:50:28:50:53 | doFinal(...) : byte[] | semmle.label | doFinal(...) : byte[] | +| BadMacUse.java:56:42:56:50 | plaintext | semmle.label | plaintext | +| BadMacUse.java:84:83:84:91 | iv : byte[] | semmle.label | iv : byte[] | +| BadMacUse.java:90:43:90:65 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| BadMacUse.java:90:63:90:64 | iv : byte[] | semmle.label | iv : byte[] | +| BadMacUse.java:91:42:91:56 | ivParameterSpec | semmle.label | ivParameterSpec | +| BadMacUse.java:92:16:92:36 | doFinal(...) : byte[] | semmle.label | doFinal(...) : byte[] | +| BadMacUse.java:117:38:117:39 | iv : byte[] | semmle.label | iv : byte[] | +| BadMacUse.java:118:29:118:106 | cipherOperationWrapper(...) : byte[] | semmle.label | cipherOperationWrapper(...) : byte[] | +| BadMacUse.java:118:83:118:84 | iv : byte[] | semmle.label | iv : byte[] | +| BadMacUse.java:124:42:124:51 | ciphertext | semmle.label | ciphertext | +subpaths +testFailures +| BadMacUse.java:63:118:63:127 | // $Source | Missing result: Source | +| BadMacUse.java:92:16:92:36 | doFinal(...) : byte[] | Unexpected result: Source | +| BadMacUse.java:124:42:124:51 | ciphertext | Unexpected result: Alert | +| BadMacUse.java:146:95:146:104 | // $Source | Missing result: Source | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.qlref b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.qlref new file mode 100644 index 000000000000..6ee58d936818 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderDecryptToMac.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/BadMacOrderDecryptToMac.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.expected b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.expected new file mode 100644 index 000000000000..ea4273613611 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.expected @@ -0,0 +1,51 @@ +#select +| BadMacUse.java:76:44:76:52 | plaintext | BadMacUse.java:63:82:63:97 | plaintext : byte[] | BadMacUse.java:76:44:76:52 | plaintext | Incorrect MAC usage: Encryption plaintext also used for MAC. Flow shows plaintext to final use through intermediate mac or encryption operation here $@ | BadMacUse.java:71:42:71:50 | plaintext | plaintext | +| BadMacUse.java:152:42:152:51 | ciphertext | BadMacUse.java:139:79:139:90 | input : byte[] | BadMacUse.java:152:42:152:51 | ciphertext | Incorrect MAC usage: Encryption plaintext also used for MAC. Flow shows plaintext to final use through intermediate mac or encryption operation here $@ | BadMacUse.java:92:31:92:35 | bytes | bytes | +edges +| BadMacUse.java:63:82:63:97 | plaintext : byte[] | BadMacUse.java:71:42:71:50 | plaintext : byte[] | provenance | | +| BadMacUse.java:71:42:71:50 | plaintext : byte[] | BadMacUse.java:71:42:71:50 | plaintext : byte[] | provenance | Config | +| BadMacUse.java:71:42:71:50 | plaintext : byte[] | BadMacUse.java:76:44:76:52 | plaintext | provenance | | +| BadMacUse.java:84:42:84:53 | bytes : byte[] | BadMacUse.java:92:31:92:35 | bytes : byte[] | provenance | | +| BadMacUse.java:84:42:84:53 | bytes : byte[] [[]] : Object | BadMacUse.java:92:31:92:35 | bytes : byte[] [[]] : Object | provenance | | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | BadMacUse.java:146:48:146:57 | ciphertext : byte[] | provenance | Config | +| BadMacUse.java:92:31:92:35 | bytes : byte[] [[]] : Object | BadMacUse.java:146:48:146:57 | ciphertext : byte[] | provenance | Config | +| BadMacUse.java:99:39:99:55 | ciphertext : byte[] [[]] : Object | BadMacUse.java:100:39:100:48 | ciphertext : byte[] [[]] : Object | provenance | | +| BadMacUse.java:100:39:100:48 | ciphertext : byte[] [[]] : Object | BadMacUse.java:84:42:84:53 | bytes : byte[] [[]] : Object | provenance | | +| BadMacUse.java:107:39:107:54 | plaintext : byte[] | BadMacUse.java:108:39:108:47 | plaintext : byte[] | provenance | | +| BadMacUse.java:108:39:108:47 | plaintext : byte[] | BadMacUse.java:84:42:84:53 | bytes : byte[] | provenance | | +| BadMacUse.java:114:92:114:107 | plaintext : byte[] | BadMacUse.java:118:52:118:60 | plaintext : byte[] | provenance | | +| BadMacUse.java:118:52:118:60 | plaintext : byte[] | BadMacUse.java:84:42:84:53 | bytes : byte[] | provenance | | +| BadMacUse.java:139:79:139:90 | input : byte[] | BadMacUse.java:142:48:142:52 | input : byte[] | provenance | | +| BadMacUse.java:142:29:142:82 | copyOfRange(...) : byte[] [[]] : Object | BadMacUse.java:146:48:146:57 | ciphertext : byte[] [[]] : Object | provenance | | +| BadMacUse.java:142:48:142:52 | input : byte[] | BadMacUse.java:142:29:142:82 | copyOfRange(...) : byte[] [[]] : Object | provenance | MaD:1 | +| BadMacUse.java:146:48:146:57 | ciphertext : byte[] | BadMacUse.java:152:42:152:51 | ciphertext | provenance | | +| BadMacUse.java:146:48:146:57 | ciphertext : byte[] [[]] : Object | BadMacUse.java:99:39:99:55 | ciphertext : byte[] [[]] : Object | provenance | | +models +| 1 | Summary: java.util; Arrays; false; copyOfRange; ; ; Argument[0].ArrayElement; ReturnValue.ArrayElement; value; manual | +nodes +| BadMacUse.java:63:82:63:97 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:71:42:71:50 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:71:42:71:50 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:76:44:76:52 | plaintext | semmle.label | plaintext | +| BadMacUse.java:84:42:84:53 | bytes : byte[] | semmle.label | bytes : byte[] | +| BadMacUse.java:84:42:84:53 | bytes : byte[] [[]] : Object | semmle.label | bytes : byte[] [[]] : Object | +| BadMacUse.java:92:31:92:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| BadMacUse.java:92:31:92:35 | bytes : byte[] [[]] : Object | semmle.label | bytes : byte[] [[]] : Object | +| BadMacUse.java:99:39:99:55 | ciphertext : byte[] [[]] : Object | semmle.label | ciphertext : byte[] [[]] : Object | +| BadMacUse.java:100:39:100:48 | ciphertext : byte[] [[]] : Object | semmle.label | ciphertext : byte[] [[]] : Object | +| BadMacUse.java:107:39:107:54 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:108:39:108:47 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:114:92:114:107 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:118:52:118:60 | plaintext : byte[] | semmle.label | plaintext : byte[] | +| BadMacUse.java:139:79:139:90 | input : byte[] | semmle.label | input : byte[] | +| BadMacUse.java:142:29:142:82 | copyOfRange(...) : byte[] [[]] : Object | semmle.label | copyOfRange(...) : byte[] [[]] : Object | +| BadMacUse.java:142:48:142:52 | input : byte[] | semmle.label | input : byte[] | +| BadMacUse.java:146:48:146:57 | ciphertext : byte[] | semmle.label | ciphertext : byte[] | +| BadMacUse.java:146:48:146:57 | ciphertext : byte[] [[]] : Object | semmle.label | ciphertext : byte[] [[]] : Object | +| BadMacUse.java:152:42:152:51 | ciphertext | semmle.label | ciphertext | +subpaths +testFailures +| BadMacUse.java:50:56:50:65 | // $Source | Missing result: Source | +| BadMacUse.java:139:79:139:90 | input : byte[] | Unexpected result: Source | +| BadMacUse.java:146:95:146:104 | // $Source | Missing result: Source | +| BadMacUse.java:152:42:152:51 | ciphertext | Unexpected result: Alert | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.qlref b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.qlref new file mode 100644 index 000000000000..f094aa14a467 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacOrderMacOnEncryptPlaintext.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/BadMacOrderMacOnEncryptPlaintext.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacUse.java b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacUse.java new file mode 100644 index 000000000000..5c442d4bca76 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/BadMacUse/BadMacUse.java @@ -0,0 +1,158 @@ + +import java.security.*; +import java.util.Arrays; +import javax.crypto.Cipher; +import javax.crypto.Mac; +import javax.crypto.SecretKey; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +class BadMacUse { + + private byte[] generateSalt(int length) { + byte[] salt = new byte[length]; + new SecureRandom().nextBytes(salt); + return salt; + } + + public void CipherThenMac(byte[] encryptionKeyBytes, byte[] macKeyBytes) throws Exception { + // Create keys directly from provided byte arrays + SecretKey encryptionKey = new SecretKeySpec(encryptionKeyBytes, "AES"); + SecretKey macKey = new SecretKeySpec(macKeyBytes, "HmacSHA256"); + + // Encrypt some sample data using the encryption key + Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); + cipher.init(Cipher.ENCRYPT_MODE, encryptionKey, new SecureRandom()); + byte[] plaintext = "Further Use Test Data".getBytes(); + byte[] ciphertext = cipher.doFinal(plaintext); + + // Compute HMAC over the ciphertext using the MAC key + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(macKey); + byte[] computedMac = mac.doFinal(ciphertext); + + // Concatenate ciphertext and MAC + byte[] output = new byte[ciphertext.length + computedMac.length]; + System.arraycopy(ciphertext, 0, output, 0, ciphertext.length); + System.arraycopy(computedMac, 0, output, ciphertext.length, computedMac.length); + } + + public void BadDecryptThenMacOnPlaintextVerify(byte[] encryptionKeyBytes, byte[] macKeyBytes, byte[] input) throws Exception { + // Split input into ciphertext and MAC + int macLength = 32; // HMAC-SHA256 output length + byte[] ciphertext = Arrays.copyOfRange(input, 0, input.length - macLength); + byte[] receivedMac = Arrays.copyOfRange(input, input.length - macLength, input.length); + + // Decrypt first (unsafe) + SecretKey encryptionKey = new SecretKeySpec(encryptionKeyBytes, "AES"); + Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); + cipher.init(Cipher.DECRYPT_MODE, encryptionKey, new SecureRandom()); + byte[] plaintext = cipher.doFinal(ciphertext); // $Source + + // Now verify MAC (too late) + SecretKey macKey = new SecretKeySpec(macKeyBytes, "HmacSHA256"); + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(macKey); + byte[] computedMac = mac.doFinal(plaintext); // $Alert[java/quantum/examples/bad-mac-order-decrypt-to-mac] + + if (!MessageDigest.isEqual(receivedMac, computedMac)) { + throw new SecurityException("MAC verification failed"); + } + } + + public void BadMacOnPlaintext(byte[] encryptionKeyBytes, byte[] macKeyBytes, byte[] plaintext) throws Exception {// $Source + // Create keys directly from provided byte arrays + SecretKey encryptionKey = new SecretKeySpec(encryptionKeyBytes, "AES"); + SecretKey macKey = new SecretKeySpec(macKeyBytes, "HmacSHA256"); + + // BAD Compute MAC over plaintext (not ciphertext) + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(macKey); + byte[] computedMac = mac.doFinal(plaintext); // Integrity not tied to encrypted data + + // Encrypt the plaintext + Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); + cipher.init(Cipher.ENCRYPT_MODE, encryptionKey, new SecureRandom()); + byte[] ciphertext = cipher.doFinal(plaintext); // $Alert[java/quantum/examples/bad-mac-order-encrypt-plaintext-also-in-mac] + + // Concatenate ciphertext and MAC + byte[] output = new byte[ciphertext.length + computedMac.length]; + System.arraycopy(ciphertext, 0, output, 0, ciphertext.length); + System.arraycopy(computedMac, 0, output, ciphertext.length, computedMac.length); + } + + public byte[] cipherOperationWrapper(byte[] bytes, byte[] encryptionKeyBytes, byte[] iv, int mode) + throws Exception { + + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + SecretKeySpec secretKeySpec = new SecretKeySpec(encryptionKeyBytes, "AES"); + + IvParameterSpec ivParameterSpec = new IvParameterSpec(iv); + cipher.init(mode, secretKeySpec, ivParameterSpec); + return cipher.doFinal(bytes); + } + + /** + * A use of the cipher operation wrapper for decryption to throw off the + * analysis + */ + public byte[] decryptUsingWrapper(byte[] ciphertext, byte[] encryptionKeyBytes, byte[] iv) throws Exception { + return cipherOperationWrapper(ciphertext, encryptionKeyBytes, iv, Cipher.DECRYPT_MODE); + } + + /** + * A use of the cipher operation wrapper for encryption to throw off the + * analysis + */ + public byte[] encryptUsingWrapper(byte[] plaintext, byte[] encryptionKeyBytes, byte[] iv) throws Exception { + return cipherOperationWrapper(plaintext, encryptionKeyBytes, iv, Cipher.ENCRYPT_MODE); + } + + /** + * Encrypt then mac using the wrapper function + */ + public byte[] falsePositiveDecryptToMac(byte[] encryptionKeyBytes, byte[] macKeyBytes, byte[] plaintext) throws Exception { + // Encrypt the plaintext + byte[] iv = new byte[16]; + new SecureRandom().nextBytes(iv); + byte[] ciphertext = cipherOperationWrapper(plaintext, encryptionKeyBytes, iv, Cipher.ENCRYPT_MODE); + + // Compute HMAC over the ciphertext using the MAC key + SecretKey macKey = new SecretKeySpec(macKeyBytes, "HmacSHA256"); + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(macKey); + byte[] computedMac = mac.doFinal(ciphertext); // False Positive + + // Concatenate ciphertext and MAC + byte[] output = new byte[ciphertext.length + computedMac.length]; + System.arraycopy(ciphertext, 0, output, 0, ciphertext.length); + System.arraycopy(computedMac, 0, output, ciphertext.length, computedMac.length); + return output; + } + + + /** + * Correct inputs to a decrypt and MAC operation, but the ordering is unsafe. + * The function decrypts THEN computes the MAC on the plaintext. + * It should have the MAC computed on the ciphertext first. + */ + public void decryptThenMac(byte[] encryptionKeyBytes, byte[] macKeyBytes, byte[] input) throws Exception { + // Split input into ciphertext and MAC + int macLength = 32; // HMAC-SHA256 output length + byte[] ciphertext = Arrays.copyOfRange(input, 0, input.length - macLength); + byte[] receivedMac = Arrays.copyOfRange(input, input.length - macLength, input.length); + + // Decrypt first (unsafe) + byte[] plaintext = decryptUsingWrapper(ciphertext, encryptionKeyBytes, new byte[16]); // $Source + + // Now verify MAC (too late) + SecretKey macKey = new SecretKeySpec(macKeyBytes, "HmacSHA256"); + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(macKey); + byte[] computedMac = mac.doFinal(ciphertext); // $Alert[java/quantum/examples/bad-mac-order-decrypt-then-mac], False positive for Plaintext reuse + + if (!MessageDigest.isEqual(receivedMac, computedMac)) { + throw new SecurityException("MAC verification failed"); + } + } +} diff --git a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.expected b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.expected new file mode 100644 index 000000000000..3ad1b08e4762 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.expected @@ -0,0 +1,130 @@ +#select +| InsecureIVorNonceSource.java:20:51:20:56 | ivSpec | InsecureIVorNonceSource.java:14:21:14:81 | {...} : byte[] | InsecureIVorNonceSource.java:20:51:20:56 | ivSpec | Nonce or IV uses constant source $@ | InsecureIVorNonceSource.java:14:21:14:81 | Constant | Constant | InsecureIVorNonceSource.java:20:51:20:56 | Nonce | Nonce | +| InsecureIVorNonceSource.java:49:51:49:56 | ivSpec | InsecureIVorNonceSource.java:42:21:42:21 | 1 : Number | InsecureIVorNonceSource.java:49:51:49:56 | ivSpec | Nonce or IV uses constant source $@ | InsecureIVorNonceSource.java:42:21:42:21 | Constant | Constant | InsecureIVorNonceSource.java:49:51:49:56 | Nonce | Nonce | +| InsecureIVorNonceSource.java:65:51:65:56 | ivSpec | InsecureIVorNonceSource.java:57:13:57:62 | {...} : byte[] | InsecureIVorNonceSource.java:65:51:65:56 | ivSpec | Nonce or IV uses constant source $@ | InsecureIVorNonceSource.java:57:13:57:62 | Constant | Constant | InsecureIVorNonceSource.java:65:51:65:56 | Nonce | Nonce | +| InsecureIVorNonceSource.java:65:51:65:56 | ivSpec | InsecureIVorNonceSource.java:58:13:58:63 | {...} : byte[] | InsecureIVorNonceSource.java:65:51:65:56 | ivSpec | Nonce or IV uses constant source $@ | InsecureIVorNonceSource.java:58:13:58:63 | Constant | Constant | InsecureIVorNonceSource.java:65:51:65:56 | Nonce | Nonce | +| InsecureIVorNonceSource.java:81:51:81:56 | ivSpec | InsecureIVorNonceSource.java:73:13:73:73 | {...} : byte[] | InsecureIVorNonceSource.java:81:51:81:56 | ivSpec | Nonce or IV uses constant source $@ | InsecureIVorNonceSource.java:73:13:73:73 | Constant | Constant | InsecureIVorNonceSource.java:81:51:81:56 | Nonce | Nonce | +| InsecureIVorNonceSource.java:81:51:81:56 | ivSpec | InsecureIVorNonceSource.java:74:13:74:74 | {...} : byte[] | InsecureIVorNonceSource.java:81:51:81:56 | ivSpec | Nonce or IV uses constant source $@ | InsecureIVorNonceSource.java:74:13:74:74 | Constant | Constant | InsecureIVorNonceSource.java:81:51:81:56 | Nonce | Nonce | +| InsecureIVorNonceSource.java:206:51:206:56 | ivSpec | InsecureIVorNonceSource.java:194:26:194:30 | bytes : byte[] | InsecureIVorNonceSource.java:206:51:206:56 | ivSpec | Nonce or IV uses insecure source $@ at encryption operation $@ | InsecureIVorNonceSource.java:194:26:194:30 | RandomNumberGeneration | RandomNumberGeneration | InsecureIVorNonceSource.java:208:16:208:31 | EncryptOperation | EncryptOperation | +edges +| InsecureIVorNonceSource.java:14:21:14:81 | {...} : byte[] | InsecureIVorNonceSource.java:16:61:16:62 | iv : byte[] | provenance | | +| InsecureIVorNonceSource.java:16:35:16:63 | new GCMParameterSpec(...) : GCMParameterSpec | InsecureIVorNonceSource.java:20:51:20:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:16:61:16:62 | iv : byte[] | InsecureIVorNonceSource.java:16:35:16:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:16:61:16:62 | iv : byte[] | InsecureIVorNonceSource.java:16:35:16:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | MaD:4 | +| InsecureIVorNonceSource.java:42:13:42:14 | iv [post update] : byte[] [[]] : Number | InsecureIVorNonceSource.java:45:54:45:55 | iv : byte[] [[]] : Number | provenance | | +| InsecureIVorNonceSource.java:42:21:42:21 | 1 : Number | InsecureIVorNonceSource.java:42:13:42:14 | iv [post update] : byte[] [[]] : Number | provenance | | +| InsecureIVorNonceSource.java:45:34:45:56 | new IvParameterSpec(...) : IvParameterSpec | InsecureIVorNonceSource.java:49:51:49:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:45:54:45:55 | iv : byte[] [[]] : Number | InsecureIVorNonceSource.java:45:34:45:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:56:30:59:9 | {...} : byte[][] [[]] : byte[] | InsecureIVorNonceSource.java:61:61:61:69 | staticIvs : byte[][] [[]] : byte[] | provenance | | +| InsecureIVorNonceSource.java:57:13:57:62 | {...} : byte[] | InsecureIVorNonceSource.java:56:30:59:9 | {...} : byte[][] [[]] : byte[] | provenance | | +| InsecureIVorNonceSource.java:58:13:58:63 | {...} : byte[] | InsecureIVorNonceSource.java:56:30:59:9 | {...} : byte[][] [[]] : byte[] | provenance | | +| InsecureIVorNonceSource.java:61:35:61:73 | new GCMParameterSpec(...) : GCMParameterSpec | InsecureIVorNonceSource.java:65:51:65:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:61:61:61:69 | staticIvs : byte[][] [[]] : byte[] | InsecureIVorNonceSource.java:61:61:61:72 | ...[...] : byte[] | provenance | | +| InsecureIVorNonceSource.java:61:61:61:72 | ...[...] : byte[] | InsecureIVorNonceSource.java:61:35:61:73 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:61:61:61:72 | ...[...] : byte[] | InsecureIVorNonceSource.java:61:35:61:73 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | MaD:4 | +| InsecureIVorNonceSource.java:72:30:75:9 | {...} : byte[][] [[]] : byte[] | InsecureIVorNonceSource.java:77:61:77:69 | staticIvs : byte[][] [[]] : byte[] | provenance | | +| InsecureIVorNonceSource.java:73:13:73:73 | {...} : byte[] | InsecureIVorNonceSource.java:72:30:75:9 | {...} : byte[][] [[]] : byte[] | provenance | | +| InsecureIVorNonceSource.java:74:13:74:74 | {...} : byte[] | InsecureIVorNonceSource.java:72:30:75:9 | {...} : byte[][] [[]] : byte[] | provenance | | +| InsecureIVorNonceSource.java:77:35:77:73 | new GCMParameterSpec(...) : GCMParameterSpec | InsecureIVorNonceSource.java:81:51:81:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:77:61:77:69 | staticIvs : byte[][] [[]] : byte[] | InsecureIVorNonceSource.java:77:61:77:72 | ...[...] : byte[] | provenance | | +| InsecureIVorNonceSource.java:77:61:77:72 | ...[...] : byte[] | InsecureIVorNonceSource.java:77:35:77:73 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:77:61:77:72 | ...[...] : byte[] | InsecureIVorNonceSource.java:77:35:77:73 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | MaD:4 | +| InsecureIVorNonceSource.java:107:26:107:27 | iv : byte[] | InsecureIVorNonceSource.java:109:61:109:62 | iv : byte[] | provenance | | +| InsecureIVorNonceSource.java:109:35:109:63 | new GCMParameterSpec(...) : GCMParameterSpec | InsecureIVorNonceSource.java:113:51:113:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:109:61:109:62 | iv : byte[] | InsecureIVorNonceSource.java:109:35:109:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:109:61:109:62 | iv : byte[] | InsecureIVorNonceSource.java:109:35:109:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | MaD:4 | +| InsecureIVorNonceSource.java:123:13:123:14 | iv [post update] : byte[] [[]] : Number | InsecureIVorNonceSource.java:126:61:126:62 | iv : byte[] [[]] : Number | provenance | | +| InsecureIVorNonceSource.java:123:21:123:43 | (...)... : Number | InsecureIVorNonceSource.java:123:13:123:14 | iv [post update] : byte[] [[]] : Number | provenance | | +| InsecureIVorNonceSource.java:123:28:123:43 | nextInt(...) : Number | InsecureIVorNonceSource.java:123:21:123:43 | (...)... : Number | provenance | | +| InsecureIVorNonceSource.java:126:35:126:63 | new GCMParameterSpec(...) : GCMParameterSpec | InsecureIVorNonceSource.java:130:51:130:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:126:61:126:62 | iv : byte[] [[]] : Number | InsecureIVorNonceSource.java:126:35:126:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:138:52:138:62 | randomBytes : byte[] | InsecureIVorNonceSource.java:141:26:141:36 | randomBytes : byte[] | provenance | | +| InsecureIVorNonceSource.java:141:26:141:36 | randomBytes : byte[] | InsecureIVorNonceSource.java:141:42:141:43 | iv [post update] : byte[] | provenance | MaD:2 | +| InsecureIVorNonceSource.java:141:42:141:43 | iv [post update] : byte[] | InsecureIVorNonceSource.java:143:61:143:62 | iv : byte[] | provenance | | +| InsecureIVorNonceSource.java:143:35:143:63 | new GCMParameterSpec(...) : GCMParameterSpec | InsecureIVorNonceSource.java:147:51:147:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:143:61:143:62 | iv : byte[] | InsecureIVorNonceSource.java:143:35:143:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:143:61:143:62 | iv : byte[] | InsecureIVorNonceSource.java:143:35:143:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | MaD:4 | +| InsecureIVorNonceSource.java:155:52:155:62 | randomBytes : byte[] | InsecureIVorNonceSource.java:158:28:158:38 | randomBytes : byte[] | provenance | | +| InsecureIVorNonceSource.java:158:14:158:43 | copyOf(...) : byte[] [[]] : Object | InsecureIVorNonceSource.java:160:61:160:62 | iv : byte[] [[]] : Object | provenance | | +| InsecureIVorNonceSource.java:158:28:158:38 | randomBytes : byte[] | InsecureIVorNonceSource.java:158:14:158:43 | copyOf(...) : byte[] [[]] : Object | provenance | MaD:3 | +| InsecureIVorNonceSource.java:160:35:160:63 | new GCMParameterSpec(...) : GCMParameterSpec | InsecureIVorNonceSource.java:164:51:164:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:160:61:160:62 | iv : byte[] [[]] : Object | InsecureIVorNonceSource.java:160:35:160:63 | new GCMParameterSpec(...) : GCMParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:174:52:174:62 | randomBytes : byte[] | InsecureIVorNonceSource.java:175:16:175:26 | randomBytes : byte[] | provenance | | +| InsecureIVorNonceSource.java:175:16:175:26 | randomBytes : byte[] | InsecureIVorNonceSource.java:180:21:180:32 | generate(...) : byte[] | provenance | | +| InsecureIVorNonceSource.java:180:21:180:32 | generate(...) : byte[] | InsecureIVorNonceSource.java:182:54:182:55 | iv : byte[] | provenance | | +| InsecureIVorNonceSource.java:182:34:182:56 | new IvParameterSpec(...) : IvParameterSpec | InsecureIVorNonceSource.java:186:51:186:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:182:54:182:55 | iv : byte[] | InsecureIVorNonceSource.java:182:34:182:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:182:54:182:55 | iv : byte[] | InsecureIVorNonceSource.java:182:34:182:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:5 | +| InsecureIVorNonceSource.java:194:26:194:30 | bytes : byte[] | InsecureIVorNonceSource.java:195:16:195:20 | bytes : byte[] | provenance | | +| InsecureIVorNonceSource.java:195:16:195:20 | bytes : byte[] | InsecureIVorNonceSource.java:200:21:200:51 | generateInsecureRandomBytes(...) : byte[] | provenance | | +| InsecureIVorNonceSource.java:200:21:200:51 | generateInsecureRandomBytes(...) : byte[] | InsecureIVorNonceSource.java:202:54:202:55 | iv : byte[] | provenance | | +| InsecureIVorNonceSource.java:202:34:202:56 | new IvParameterSpec(...) : IvParameterSpec | InsecureIVorNonceSource.java:206:51:206:56 | ivSpec | provenance | Sink:MaD:1 | +| InsecureIVorNonceSource.java:202:54:202:55 | iv : byte[] | InsecureIVorNonceSource.java:202:34:202:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| InsecureIVorNonceSource.java:202:54:202:55 | iv : byte[] | InsecureIVorNonceSource.java:202:34:202:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:5 | +models +| 1 | Sink: javax.crypto; Cipher; true; init; (int,Key,AlgorithmParameterSpec); ; Argument[2]; encryption-iv; manual | +| 2 | Summary: java.lang; System; false; arraycopy; ; ; Argument[0]; Argument[2]; taint; manual | +| 3 | Summary: java.util; Arrays; false; copyOf; ; ; Argument[0].ArrayElement; ReturnValue.ArrayElement; value; manual | +| 4 | Summary: javax.crypto.spec; GCMParameterSpec; true; GCMParameterSpec; ; ; Argument[1]; Argument[this]; taint; manual | +| 5 | Summary: javax.crypto.spec; IvParameterSpec; true; IvParameterSpec; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| InsecureIVorNonceSource.java:14:21:14:81 | {...} : byte[] | semmle.label | {...} : byte[] | +| InsecureIVorNonceSource.java:16:35:16:63 | new GCMParameterSpec(...) : GCMParameterSpec | semmle.label | new GCMParameterSpec(...) : GCMParameterSpec | +| InsecureIVorNonceSource.java:16:61:16:62 | iv : byte[] | semmle.label | iv : byte[] | +| InsecureIVorNonceSource.java:20:51:20:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:42:13:42:14 | iv [post update] : byte[] [[]] : Number | semmle.label | iv [post update] : byte[] [[]] : Number | +| InsecureIVorNonceSource.java:42:21:42:21 | 1 : Number | semmle.label | 1 : Number | +| InsecureIVorNonceSource.java:45:34:45:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| InsecureIVorNonceSource.java:45:54:45:55 | iv : byte[] [[]] : Number | semmle.label | iv : byte[] [[]] : Number | +| InsecureIVorNonceSource.java:49:51:49:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:56:30:59:9 | {...} : byte[][] [[]] : byte[] | semmle.label | {...} : byte[][] [[]] : byte[] | +| InsecureIVorNonceSource.java:57:13:57:62 | {...} : byte[] | semmle.label | {...} : byte[] | +| InsecureIVorNonceSource.java:58:13:58:63 | {...} : byte[] | semmle.label | {...} : byte[] | +| InsecureIVorNonceSource.java:61:35:61:73 | new GCMParameterSpec(...) : GCMParameterSpec | semmle.label | new GCMParameterSpec(...) : GCMParameterSpec | +| InsecureIVorNonceSource.java:61:61:61:69 | staticIvs : byte[][] [[]] : byte[] | semmle.label | staticIvs : byte[][] [[]] : byte[] | +| InsecureIVorNonceSource.java:61:61:61:72 | ...[...] : byte[] | semmle.label | ...[...] : byte[] | +| InsecureIVorNonceSource.java:65:51:65:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:72:30:75:9 | {...} : byte[][] [[]] : byte[] | semmle.label | {...} : byte[][] [[]] : byte[] | +| InsecureIVorNonceSource.java:73:13:73:73 | {...} : byte[] | semmle.label | {...} : byte[] | +| InsecureIVorNonceSource.java:74:13:74:74 | {...} : byte[] | semmle.label | {...} : byte[] | +| InsecureIVorNonceSource.java:77:35:77:73 | new GCMParameterSpec(...) : GCMParameterSpec | semmle.label | new GCMParameterSpec(...) : GCMParameterSpec | +| InsecureIVorNonceSource.java:77:61:77:69 | staticIvs : byte[][] [[]] : byte[] | semmle.label | staticIvs : byte[][] [[]] : byte[] | +| InsecureIVorNonceSource.java:77:61:77:72 | ...[...] : byte[] | semmle.label | ...[...] : byte[] | +| InsecureIVorNonceSource.java:81:51:81:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:107:26:107:27 | iv : byte[] | semmle.label | iv : byte[] | +| InsecureIVorNonceSource.java:109:35:109:63 | new GCMParameterSpec(...) : GCMParameterSpec | semmle.label | new GCMParameterSpec(...) : GCMParameterSpec | +| InsecureIVorNonceSource.java:109:61:109:62 | iv : byte[] | semmle.label | iv : byte[] | +| InsecureIVorNonceSource.java:113:51:113:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:123:13:123:14 | iv [post update] : byte[] [[]] : Number | semmle.label | iv [post update] : byte[] [[]] : Number | +| InsecureIVorNonceSource.java:123:21:123:43 | (...)... : Number | semmle.label | (...)... : Number | +| InsecureIVorNonceSource.java:123:28:123:43 | nextInt(...) : Number | semmle.label | nextInt(...) : Number | +| InsecureIVorNonceSource.java:126:35:126:63 | new GCMParameterSpec(...) : GCMParameterSpec | semmle.label | new GCMParameterSpec(...) : GCMParameterSpec | +| InsecureIVorNonceSource.java:126:61:126:62 | iv : byte[] [[]] : Number | semmle.label | iv : byte[] [[]] : Number | +| InsecureIVorNonceSource.java:130:51:130:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:138:52:138:62 | randomBytes : byte[] | semmle.label | randomBytes : byte[] | +| InsecureIVorNonceSource.java:141:26:141:36 | randomBytes : byte[] | semmle.label | randomBytes : byte[] | +| InsecureIVorNonceSource.java:141:42:141:43 | iv [post update] : byte[] | semmle.label | iv [post update] : byte[] | +| InsecureIVorNonceSource.java:143:35:143:63 | new GCMParameterSpec(...) : GCMParameterSpec | semmle.label | new GCMParameterSpec(...) : GCMParameterSpec | +| InsecureIVorNonceSource.java:143:61:143:62 | iv : byte[] | semmle.label | iv : byte[] | +| InsecureIVorNonceSource.java:147:51:147:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:155:52:155:62 | randomBytes : byte[] | semmle.label | randomBytes : byte[] | +| InsecureIVorNonceSource.java:158:14:158:43 | copyOf(...) : byte[] [[]] : Object | semmle.label | copyOf(...) : byte[] [[]] : Object | +| InsecureIVorNonceSource.java:158:28:158:38 | randomBytes : byte[] | semmle.label | randomBytes : byte[] | +| InsecureIVorNonceSource.java:160:35:160:63 | new GCMParameterSpec(...) : GCMParameterSpec | semmle.label | new GCMParameterSpec(...) : GCMParameterSpec | +| InsecureIVorNonceSource.java:160:61:160:62 | iv : byte[] [[]] : Object | semmle.label | iv : byte[] [[]] : Object | +| InsecureIVorNonceSource.java:164:51:164:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:174:52:174:62 | randomBytes : byte[] | semmle.label | randomBytes : byte[] | +| InsecureIVorNonceSource.java:175:16:175:26 | randomBytes : byte[] | semmle.label | randomBytes : byte[] | +| InsecureIVorNonceSource.java:180:21:180:32 | generate(...) : byte[] | semmle.label | generate(...) : byte[] | +| InsecureIVorNonceSource.java:182:34:182:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| InsecureIVorNonceSource.java:182:54:182:55 | iv : byte[] | semmle.label | iv : byte[] | +| InsecureIVorNonceSource.java:186:51:186:56 | ivSpec | semmle.label | ivSpec | +| InsecureIVorNonceSource.java:194:26:194:30 | bytes : byte[] | semmle.label | bytes : byte[] | +| InsecureIVorNonceSource.java:195:16:195:20 | bytes : byte[] | semmle.label | bytes : byte[] | +| InsecureIVorNonceSource.java:200:21:200:51 | generateInsecureRandomBytes(...) : byte[] | semmle.label | generateInsecureRandomBytes(...) : byte[] | +| InsecureIVorNonceSource.java:202:34:202:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| InsecureIVorNonceSource.java:202:54:202:55 | iv : byte[] | semmle.label | iv : byte[] | +| InsecureIVorNonceSource.java:206:51:206:56 | ivSpec | semmle.label | ivSpec | +subpaths +testFailures +| InsecureIVorNonceSource.java:42:21:42:21 | 1 : Number | Unexpected result: Source | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.java b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.java new file mode 100644 index 000000000000..549c56dbd981 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.java @@ -0,0 +1,210 @@ +import javax.crypto.Cipher; +import javax.crypto.spec.GCMParameterSpec; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.util.Random; + +import java.security.SecureRandom; +import java.util.Arrays; + +public class InsecureIVorNonceSource { + + // BAD: AES-GCM with static IV from a byte array + public byte[] encryptWithStaticIvByteArrayWithInitializer(byte[] key, byte[] plaintext) throws Exception { + byte[] iv = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 }; // $Source + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); // $Alert[java/quantum/examples/insecure-iv-or-nonce] + cipher.update(plaintext); + return cipher.doFinal(); + } + + // BAD: AES-GCM with static IV from zero-initialized byte array + public byte[] encryptWithZeroStaticIvByteArray(byte[] key, byte[] plaintext) throws Exception { + byte[] iv = new byte[16]; + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); // $Alert[java/quantum/examples/unknown-iv-or-nonce-source] + cipher.update(plaintext); + return cipher.doFinal(); + } + + // BAD: AES-CBC with static IV from 1-initialized byte array + public byte[] encryptWithStaticIvByteArray(byte[] key, byte[] plaintext) throws Exception { + byte[] iv = new byte[16]; + for (byte i = 0; i < iv.length; i++) { + iv[i] = 1; + } + + IvParameterSpec ivSpec = new IvParameterSpec(iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); // $Alert[java/quantum/examples/insecure-iv-or-nonce] + cipher.update(plaintext); + return cipher.doFinal(); + } + + // BAD: AES-GCM with static IV from a multidimensional byte array + public byte[] encryptWithOneOfStaticIvs01(byte[] key, byte[] plaintext) throws Exception { + byte[][] staticIvs = new byte[][] { + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 }, // $Source + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 42 } // $Source + }; + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, staticIvs[1]); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); // $Alert[java/quantum/examples/insecure-iv-or-nonce] + cipher.update(plaintext); + return cipher.doFinal(); + } + + // BAD: AES-GCM with static IV from a multidimensional byte array + public byte[] encryptWithOneOfStaticIvs02(byte[] key, byte[] plaintext) throws Exception { + byte[][] staticIvs = new byte[][] { + new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5 }, // $Source + new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 42 } // $Source + }; + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, staticIvs[1]); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); // $Alert[java/quantum/examples/insecure-iv-or-nonce] + cipher.update(plaintext); + return cipher.doFinal(); + } + + // BAD: AES-GCM with static IV from a zero-initialized multidimensional byte array + public byte[] encryptWithOneOfStaticZeroIvs(byte[] key, byte[] plaintext) throws Exception { + byte[][] ivs = new byte[][] { + new byte[8], + new byte[16] + }; + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, ivs[1]); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); // $Alert[java/quantum/examples/unknown-iv-or-nonce-source] + cipher.update(plaintext); + return cipher.doFinal(); + } + + // GOOD: AES-GCM with a random IV + public byte[] encryptWithRandomIv(byte[] key, byte[] plaintext) throws Exception { + byte[] iv = new byte[16]; + + SecureRandom random = SecureRandom.getInstanceStrong(); + random.nextBytes(iv); + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); + cipher.update(plaintext); + return cipher.doFinal(); + } + + // GOOD: AES-GCM with a random IV + public byte[] encryptWithRandomIvByteByByte(byte[] key, byte[] plaintext) throws Exception { + SecureRandom random = SecureRandom.getInstanceStrong(); + byte[] iv = new byte[16]; + for (int i = 0; i < iv.length; i++) { + iv[i] = (byte) random.nextInt(); + } + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); + cipher.update(plaintext); + return cipher.doFinal(); + } + + // GOOD: AES-GCM with a random IV + public byte[] encryptWithRandomIvWithSystemArrayCopy(byte[] key, byte[] plaintext) throws Exception { + byte[] randomBytes = new byte[16]; + SecureRandom.getInstanceStrong().nextBytes(randomBytes); + + byte[] iv = new byte[16]; + System.arraycopy(randomBytes, 0, iv, 0, 16); + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); + cipher.update(plaintext); + return cipher.doFinal(); + } + + // GOOD: AES-GCM with a random IV + public byte[] encryptWithRandomIvWithArraysCopy(byte[] key, byte[] plaintext) throws Exception { + byte[] randomBytes = new byte[16]; + SecureRandom.getInstanceStrong().nextBytes(randomBytes); + + byte[] iv = new byte[16]; + iv = Arrays.copyOf(randomBytes, 16); + + GCMParameterSpec ivSpec = new GCMParameterSpec(128, iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/GCM/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); + cipher.update(plaintext); + return cipher.doFinal(); + } + + public byte[] generate(int size) throws Exception { + if (size == 0) { + return new byte[0]; + } + byte[] randomBytes = new byte[size]; + SecureRandom.getInstanceStrong().nextBytes(randomBytes); + return randomBytes; + } + + // GOOD: AES-CBC with a random IV + public byte[] encryptWithGeneratedIvByteArray(byte[] key, byte[] plaintext) throws Exception { + byte[] iv = generate(16); + + IvParameterSpec ivSpec = new IvParameterSpec(iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); + cipher.update(plaintext); + return cipher.doFinal(); + } + + public byte[] generateInsecureRandomBytes(int numBytes) { + Random random = new Random(); + byte[] bytes = new byte[numBytes]; + random.nextBytes(bytes); // $Source + return bytes; + } + + // BAD: AES-CBC with an insecure random IV + public byte[] encryptWithGeneratedIvByteArrayInsecure(byte[] key, byte[] plaintext) throws Exception { + byte[] iv = generateInsecureRandomBytes(16); + + IvParameterSpec ivSpec = new IvParameterSpec(iv); + SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); + + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); // $Alert[java/quantum/examples/insecure-iv-or-nonce]] + cipher.update(plaintext); + return cipher.doFinal(); + } +} diff --git a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.qlref b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.qlref new file mode 100644 index 000000000000..1b26475bb356 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/InsecureIVorNonceSource.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/InsecureIVorNonceSource.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/UnknownIVorNonceSource.expected b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/UnknownIVorNonceSource.expected new file mode 100644 index 000000000000..3759e19826b5 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/UnknownIVorNonceSource.expected @@ -0,0 +1,2 @@ +| InsecureIVorNonceSource.java:33:51:33:56 | Nonce | Unknown IV/Nonce initialization source at encryption operation $@ | InsecureIVorNonceSource.java:35:16:35:31 | EncryptOperation | EncryptOperation | +| InsecureIVorNonceSource.java:97:51:97:56 | Nonce | Unknown IV/Nonce initialization source at encryption operation $@ | InsecureIVorNonceSource.java:99:16:99:31 | EncryptOperation | EncryptOperation | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/UnknownIVorNonceSource.qlref b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/UnknownIVorNonceSource.qlref new file mode 100644 index 000000000000..8bdc38026ad0 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/InsecureOrUnknownNonceSource/UnknownIVorNonceSource.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/UnknownIVorNonceSource.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/NonceReuse.expected b/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/NonceReuse.expected new file mode 100644 index 000000000000..cf03a9053eb5 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/NonceReuse.expected @@ -0,0 +1,91 @@ +edges +| Test.java:19:38:19:40 | val : byte[] | Test.java:20:16:20:18 | val : byte[] | provenance | | +| Test.java:20:16:20:18 | val : byte[] | Test.java:25:15:25:33 | getRandomWrapper1(...) : byte[] | provenance | | +| Test.java:20:16:20:18 | val : byte[] | Test.java:32:15:32:33 | getRandomWrapper1(...) : byte[] | provenance | | +| Test.java:25:15:25:33 | getRandomWrapper1(...) : byte[] | Test.java:26:16:26:18 | val : byte[] | provenance | | +| Test.java:25:15:25:33 | getRandomWrapper1(...) : byte[] | Test.java:27:16:27:18 | val : byte[] | provenance | | +| Test.java:26:16:26:18 | val : byte[] | Test.java:36:32:36:40 | iv : byte[] | provenance | | +| Test.java:27:16:27:18 | val : byte[] | Test.java:45:21:45:40 | getRandomWrapper2A(...) : byte[] | provenance | | +| Test.java:32:15:32:33 | getRandomWrapper1(...) : byte[] | Test.java:33:16:33:18 | val : byte[] | provenance | | +| Test.java:33:16:33:18 | val : byte[] | Test.java:54:21:54:40 | getRandomWrapper2b(...) : byte[] | provenance | | +| Test.java:33:16:33:18 | val : byte[] | Test.java:63:21:63:40 | getRandomWrapper2b(...) : byte[] | provenance | | +| Test.java:33:16:33:18 | val : byte[] | Test.java:72:21:72:40 | getRandomWrapper2b(...) : byte[] | provenance | | +| Test.java:36:32:36:40 | iv : byte[] | Test.java:37:54:37:55 | iv : byte[] | provenance | | +| Test.java:37:34:37:56 | new IvParameterSpec(...) : IvParameterSpec | Test.java:40:47:40:52 | ivSpec | provenance | Sink:MaD:45890 | +| Test.java:37:54:37:55 | iv : byte[] | Test.java:37:34:37:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:37:54:37:55 | iv : byte[] | Test.java:37:34:37:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +| Test.java:45:21:45:40 | getRandomWrapper2A(...) : byte[] | Test.java:46:54:46:55 | iv : byte[] | provenance | | +| Test.java:46:34:46:56 | new IvParameterSpec(...) : IvParameterSpec | Test.java:49:47:49:52 | ivSpec | provenance | Sink:MaD:45890 | +| Test.java:46:54:46:55 | iv : byte[] | Test.java:46:34:46:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:46:54:46:55 | iv : byte[] | Test.java:46:34:46:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +| Test.java:54:21:54:40 | getRandomWrapper2b(...) : byte[] | Test.java:55:54:55:55 | iv : byte[] | provenance | | +| Test.java:55:34:55:56 | new IvParameterSpec(...) : IvParameterSpec | Test.java:58:47:58:52 | ivSpec | provenance | Sink:MaD:45890 | +| Test.java:55:54:55:55 | iv : byte[] | Test.java:55:34:55:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:55:54:55:55 | iv : byte[] | Test.java:55:34:55:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +| Test.java:63:21:63:40 | getRandomWrapper2b(...) : byte[] | Test.java:64:54:64:55 | iv : byte[] | provenance | | +| Test.java:64:34:64:56 | new IvParameterSpec(...) : IvParameterSpec | Test.java:67:47:67:52 | ivSpec | provenance | Sink:MaD:45890 | +| Test.java:64:54:64:55 | iv : byte[] | Test.java:64:34:64:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:64:54:64:55 | iv : byte[] | Test.java:64:34:64:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +| Test.java:72:21:72:40 | getRandomWrapper2b(...) : byte[] | Test.java:73:55:73:56 | iv : byte[] | provenance | | +| Test.java:73:35:73:57 | new IvParameterSpec(...) : IvParameterSpec | Test.java:76:48:76:54 | ivSpec1 | provenance | Sink:MaD:45890 | +| Test.java:73:55:73:56 | iv : byte[] | Test.java:73:35:73:57 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:73:55:73:56 | iv : byte[] | Test.java:73:35:73:57 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +| Test.java:73:55:73:56 | iv : byte[] | Test.java:79:55:79:56 | iv : byte[] | provenance | | +| Test.java:79:35:79:57 | new IvParameterSpec(...) : IvParameterSpec | Test.java:82:49:82:55 | ivSpec2 | provenance | Sink:MaD:45890 | +| Test.java:79:55:79:56 | iv : byte[] | Test.java:79:35:79:57 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:79:55:79:56 | iv : byte[] | Test.java:79:35:79:57 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +| Test.java:88:38:88:39 | iv : byte[] | Test.java:89:54:89:55 | iv : byte[] | provenance | | +| Test.java:89:34:89:56 | new IvParameterSpec(...) : IvParameterSpec | Test.java:93:51:93:56 | ivSpec | provenance | Sink:MaD:45890 | +| Test.java:89:34:89:56 | new IvParameterSpec(...) : IvParameterSpec | Test.java:96:51:96:56 | ivSpec | provenance | Sink:MaD:45890 | +| Test.java:89:54:89:55 | iv : byte[] | Test.java:89:34:89:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:89:54:89:55 | iv : byte[] | Test.java:89:34:89:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +| Test.java:103:38:103:39 | iv : byte[] | Test.java:104:54:104:55 | iv : byte[] | provenance | | +| Test.java:104:34:104:56 | new IvParameterSpec(...) : IvParameterSpec | Test.java:107:47:107:52 | ivSpec | provenance | Sink:MaD:45890 | +| Test.java:104:54:104:55 | iv : byte[] | Test.java:104:34:104:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | Config | +| Test.java:104:54:104:55 | iv : byte[] | Test.java:104:34:104:56 | new IvParameterSpec(...) : IvParameterSpec | provenance | MaD:45920 | +nodes +| Test.java:19:38:19:40 | val : byte[] | semmle.label | val : byte[] | +| Test.java:20:16:20:18 | val : byte[] | semmle.label | val : byte[] | +| Test.java:25:15:25:33 | getRandomWrapper1(...) : byte[] | semmle.label | getRandomWrapper1(...) : byte[] | +| Test.java:26:16:26:18 | val : byte[] | semmle.label | val : byte[] | +| Test.java:27:16:27:18 | val : byte[] | semmle.label | val : byte[] | +| Test.java:32:15:32:33 | getRandomWrapper1(...) : byte[] | semmle.label | getRandomWrapper1(...) : byte[] | +| Test.java:33:16:33:18 | val : byte[] | semmle.label | val : byte[] | +| Test.java:36:32:36:40 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:37:34:37:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:37:54:37:55 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:40:47:40:52 | ivSpec | semmle.label | ivSpec | +| Test.java:45:21:45:40 | getRandomWrapper2A(...) : byte[] | semmle.label | getRandomWrapper2A(...) : byte[] | +| Test.java:46:34:46:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:46:54:46:55 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:49:47:49:52 | ivSpec | semmle.label | ivSpec | +| Test.java:54:21:54:40 | getRandomWrapper2b(...) : byte[] | semmle.label | getRandomWrapper2b(...) : byte[] | +| Test.java:55:34:55:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:55:54:55:55 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:58:47:58:52 | ivSpec | semmle.label | ivSpec | +| Test.java:63:21:63:40 | getRandomWrapper2b(...) : byte[] | semmle.label | getRandomWrapper2b(...) : byte[] | +| Test.java:64:34:64:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:64:54:64:55 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:67:47:67:52 | ivSpec | semmle.label | ivSpec | +| Test.java:72:21:72:40 | getRandomWrapper2b(...) : byte[] | semmle.label | getRandomWrapper2b(...) : byte[] | +| Test.java:73:35:73:57 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:73:55:73:56 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:76:48:76:54 | ivSpec1 | semmle.label | ivSpec1 | +| Test.java:79:35:79:57 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:79:55:79:56 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:82:49:82:55 | ivSpec2 | semmle.label | ivSpec2 | +| Test.java:88:38:88:39 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:89:34:89:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:89:54:89:55 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:93:51:93:56 | ivSpec | semmle.label | ivSpec | +| Test.java:96:51:96:56 | ivSpec | semmle.label | ivSpec | +| Test.java:103:38:103:39 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:104:34:104:56 | new IvParameterSpec(...) : IvParameterSpec | semmle.label | new IvParameterSpec(...) : IvParameterSpec | +| Test.java:104:54:104:55 | iv : byte[] | semmle.label | iv : byte[] | +| Test.java:107:47:107:52 | ivSpec | semmle.label | ivSpec | +subpaths +#select +| Test.java:40:47:40:52 | ivSpec | Test.java:19:38:19:40 | val : byte[] | Test.java:40:47:40:52 | ivSpec | Nonce source is reused, see alternate sink $@ | Test.java:49:47:49:52 | Nonce | Nonce | +| Test.java:49:47:49:52 | ivSpec | Test.java:19:38:19:40 | val : byte[] | Test.java:49:47:49:52 | ivSpec | Nonce source is reused, see alternate sink $@ | Test.java:40:47:40:52 | Nonce | Nonce | +| Test.java:76:48:76:54 | ivSpec1 | Test.java:19:38:19:40 | val : byte[] | Test.java:76:48:76:54 | ivSpec1 | Nonce source is reused, see alternate sink $@ | Test.java:82:49:82:55 | Nonce | Nonce | +| Test.java:82:49:82:55 | ivSpec2 | Test.java:19:38:19:40 | val : byte[] | Test.java:82:49:82:55 | ivSpec2 | Nonce source is reused, see alternate sink $@ | Test.java:76:48:76:54 | Nonce | Nonce | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/NonceReuse.qlref b/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/NonceReuse.qlref new file mode 100644 index 000000000000..6f8aa4b838b8 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/NonceReuse.qlref @@ -0,0 +1 @@ +experimental/quantum/Examples/ReusedNonce.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/NonceReuse/Test.java b/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/Test.java similarity index 74% rename from java/ql/test/experimental/query-tests/quantum/NonceReuse/Test.java rename to java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/Test.java index 1b65e324275b..e384143db086 100644 --- a/java/ql/test/experimental/query-tests/quantum/NonceReuse/Test.java +++ b/java/ql/test/experimental/query-tests/quantum/examples/NonceReuse/Test.java @@ -83,6 +83,34 @@ private static void funcA3() throws Exception { byte[] ciphertext2 = cipher2.doFinal("Simple Test Data".getBytes()); } + public void falsePositive1() throws Exception { + byte[] iv = null; + new SecureRandom().nextBytes(iv); + IvParameterSpec ivSpec = new IvParameterSpec(iv); + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + SecretKey key = generateAESKey(); + if (iv != null) { + cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec); // GOOD + byte[] ciphertext = cipher.doFinal("Simple Test Data".getBytes()); + } else if(iv.length > 0) { + cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec); // GOOD + byte[] ciphertext = cipher.doFinal("Simple Test Data".getBytes()); + } + } + + public void falsePositive2() throws Exception { + byte[] iv = null; + new SecureRandom().nextBytes(iv); + IvParameterSpec ivSpec = new IvParameterSpec(iv); + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + SecretKey key = generateAESKey(); + cipher.init(Cipher.ENCRYPT_MODE, key, ivSpec); // GOOD + byte[] ciphertext = cipher.doFinal("Simple Test Data".getBytes()); + + cipher.init(Cipher.DECRYPT_MODE, key, ivSpec); // GOOD + byte[] decryptedData = cipher.doFinal(ciphertext); + } + public static void main(String[] args) { try { funcA2(); diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/InsufficientAsymmetricKeySize.java b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/InsufficientAsymmetricKeySize.java new file mode 100644 index 000000000000..c330bf82a054 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/InsufficientAsymmetricKeySize.java @@ -0,0 +1,28 @@ +import java.security.*; +public class InsufficientAsymmetricKeySize{ + public static void test() throws Exception{ + KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance("RSA"); + keyPairGen1.initialize(1024); // $Alert[java/quantum/examples/weak-asymmetric-key-gen-size] + keyPairGen1.generateKeyPair(); + + KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance("DSA"); + keyPairGen2.initialize(1024); // $Alert[java/quantum/examples/weak-asymmetric-key-gen-size] + keyPairGen2.generateKeyPair(); + + KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance("DH"); + keyPairGen3.initialize(1024); // $Alert[java/quantum/examples/weak-asymmetric-key-gen-size] + keyPairGen3.generateKeyPair(); + + KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance("RSA"); + keyPairGen4.initialize(2048); // GOOD + keyPairGen4.generateKeyPair(); + + KeyPairGenerator keyPairGen5 = KeyPairGenerator.getInstance("DSA"); + keyPairGen5.initialize(2048); // GOOD + keyPairGen5.generateKeyPair(); + + KeyPairGenerator keyPairGen6 = KeyPairGenerator.getInstance("DH"); + keyPairGen6.initialize(2048); // GOOD + keyPairGen6.generateKeyPair(); + } +} \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/WeakAsymmetricKeyGenSize.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/WeakAsymmetricKeyGenSize.expected new file mode 100644 index 000000000000..26dc1bfad245 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/WeakAsymmetricKeyGenSize.expected @@ -0,0 +1,13 @@ +edges +nodes +| InsufficientAsymmetricKeySize.java:5:32:5:35 | 1024 | semmle.label | 1024 | +| InsufficientAsymmetricKeySize.java:9:32:9:35 | 1024 | semmle.label | 1024 | +| InsufficientAsymmetricKeySize.java:13:32:13:35 | 1024 | semmle.label | 1024 | +| InsufficientAsymmetricKeySize.java:17:32:17:35 | 2048 | semmle.label | 2048 | +| InsufficientAsymmetricKeySize.java:21:32:21:35 | 2048 | semmle.label | 2048 | +| InsufficientAsymmetricKeySize.java:25:32:25:35 | 2048 | semmle.label | 2048 | +subpaths +#select +| InsufficientAsymmetricKeySize.java:5:32:5:35 | 1024 | InsufficientAsymmetricKeySize.java:5:32:5:35 | 1024 | InsufficientAsymmetricKeySize.java:5:32:5:35 | 1024 | Use of weak asymmetric key size (1024 bits) for algorithm $@ | InsufficientAsymmetricKeySize.java:4:69:4:73 | KeyOperationAlgorithm | RSA | +| InsufficientAsymmetricKeySize.java:9:32:9:35 | 1024 | InsufficientAsymmetricKeySize.java:9:32:9:35 | 1024 | InsufficientAsymmetricKeySize.java:9:32:9:35 | 1024 | Use of weak asymmetric key size (1024 bits) for algorithm $@ | InsufficientAsymmetricKeySize.java:8:69:8:73 | KeyOperationAlgorithm | DSA | +| InsufficientAsymmetricKeySize.java:13:32:13:35 | 1024 | InsufficientAsymmetricKeySize.java:13:32:13:35 | 1024 | InsufficientAsymmetricKeySize.java:13:32:13:35 | 1024 | Use of weak asymmetric key size (1024 bits) for algorithm $@ | InsufficientAsymmetricKeySize.java:12:69:12:72 | KeyAgreementAlgorithm | DH | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/WeakAsymmetricKeyGenSize.qlref b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/WeakAsymmetricKeyGenSize.qlref new file mode 100644 index 000000000000..085cf3e0b2a2 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownAsymmetricKeySize/WeakAsymmetricKeyGenSize.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/WeakAsymmetricKeyGenSize.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/Test.java b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/Test.java new file mode 100644 index 000000000000..0c8b3b6691db --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/Test.java @@ -0,0 +1,57 @@ +import javax.crypto.Cipher; +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; +import javax.crypto.spec.IvParameterSpec; + +public class Test { + public static void main(String[] args) throws Exception { + SecretKey key = KeyGenerator.getInstance("AES").generateKey(); + IvParameterSpec iv = new IvParameterSpec(new byte[16]); + byte[] data = "SensitiveData".getBytes(); + + // Insecure block mode: ECB + Cipher cipherECB = Cipher.getInstance("AES/ECB/PKCS5Padding"); // $Alert + cipherECB.init(Cipher.ENCRYPT_MODE, key); + byte[] ecbEncrypted = cipherECB.doFinal(data); + System.out.println("ECB encrypted: " + bytesToHex(ecbEncrypted)); + + // Insecure block mode: CFB + Cipher cipherCFB = Cipher.getInstance("AES/CFB/PKCS5Padding"); // $Alert + cipherCFB.init(Cipher.ENCRYPT_MODE, key, iv); + byte[] cfbEncrypted = cipherCFB.doFinal(data); + System.out.println("CFB encrypted: " + bytesToHex(cfbEncrypted)); + + // Insecure block mode: OFB + Cipher cipherOFB = Cipher.getInstance("AES/OFB/PKCS5Padding"); // $Alert + cipherOFB.init(Cipher.ENCRYPT_MODE, key, iv); + byte[] ofbEncrypted = cipherOFB.doFinal(data); + System.out.println("OFB encrypted: " + bytesToHex(ofbEncrypted)); + + // Insecure block mode: CTR + Cipher cipherCTR = Cipher.getInstance("AES/CTR/NoPadding"); // $Alert + cipherCTR.init(Cipher.ENCRYPT_MODE, key, iv); + byte[] ctrEncrypted = cipherCTR.doFinal(data); + System.out.println("CTR encrypted: " + bytesToHex(ctrEncrypted)); + + // Secure block mode: CBC with random IV + IvParameterSpec randomIv = new IvParameterSpec(KeyGenerator.getInstance("AES").generateKey().getEncoded()); + Cipher cipherCBCRandomIV = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipherCBCRandomIV.init(Cipher.ENCRYPT_MODE, key, randomIv); + byte[] cbcRandomIVEncrypted = cipherCBCRandomIV.doFinal(data); + System.out.println("CBC (random IV) encrypted: " + bytesToHex(cbcRandomIVEncrypted)); + + // Secure block mode: GCM (authenticated encryption) + IvParameterSpec gcmIv = new IvParameterSpec(new byte[12]); + Cipher cipherGCM = Cipher.getInstance("AES/GCM/NoPadding"); + cipherGCM.init(Cipher.ENCRYPT_MODE, key, gcmIv); + byte[] gcmEncrypted = cipherGCM.doFinal(data); + System.out.println("GCM encrypted: " + bytesToHex(gcmEncrypted)); + } + + private static String bytesToHex(byte[] bytes) { + StringBuilder sb = new StringBuilder(); + for (byte b : bytes) + sb.append(String.format("%02x", b)); + return sb.toString(); + } +} \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/WeakBlockMode.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/WeakBlockMode.expected new file mode 100644 index 000000000000..859a138d3ebd --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/WeakBlockMode.expected @@ -0,0 +1,4 @@ +| Test.java:13:47:13:68 | KeyOperationAlgorithm | Weak AES block mode instance $@. | Test.java:13:47:13:68 | ModeOfOperation | ModeOfOperation | +| Test.java:19:47:19:68 | KeyOperationAlgorithm | Weak AES block mode instance $@. | Test.java:19:47:19:68 | ModeOfOperation | ModeOfOperation | +| Test.java:25:47:25:68 | KeyOperationAlgorithm | Weak AES block mode instance $@. | Test.java:25:47:25:68 | ModeOfOperation | ModeOfOperation | +| Test.java:31:47:31:65 | KeyOperationAlgorithm | Weak AES block mode instance $@. | Test.java:31:47:31:65 | ModeOfOperation | ModeOfOperation | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/WeakBlockMode.qlref b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/WeakBlockMode.qlref new file mode 100644 index 000000000000..ec8500ddda7c --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownBlockMode/WeakBlockMode.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/WeakBlockModes.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHash.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHash.expected new file mode 100644 index 000000000000..77eadf06cd3f --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHash.expected @@ -0,0 +1,4 @@ +| WeakHashing.java:15:55:15:83 | HashAlgorithm | Use of unapproved hash algorithm or API: MD5. | +| WeakHashing.java:18:56:18:95 | HashAlgorithm | Use of unapproved hash algorithm or API: MD5. | +| WeakHashing.java:21:86:21:90 | HashAlgorithm | Use of unapproved hash algorithm or API: MD5. | +| WeakHashing.java:24:56:24:62 | HashAlgorithm | Use of unapproved hash algorithm or API: SHA1. | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHash.qlref b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHash.qlref new file mode 100644 index 000000000000..c5faee88aba7 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHash.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/WeakHash.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHashing.java b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHashing.java new file mode 100644 index 000000000000..cc3b9a859d1d --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/WeakHashing.java @@ -0,0 +1,50 @@ +package test.cwe327.semmle.tests; + +import java.util.Properties; +import java.io.FileInputStream; +import java.io.IOException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class WeakHashing { + void hashing() throws NoSuchAlgorithmException, IOException { + java.util.Properties props = new java.util.Properties(); + props.load(new FileInputStream("example.properties")); + + // BAD: Using a weak hashing algorithm even with a secure default + MessageDigest bad = MessageDigest.getInstance(props.getProperty("hashAlg1")); // $Alert[java/quantum/examples/weak-hash] + + // BAD: Using a weak hashing algorithm even with a secure default + MessageDigest bad2 = MessageDigest.getInstance(props.getProperty("hashAlg1", "SHA-256")); // $Alert[java/quantum/examples/weak-hash] + + // BAD: Using a strong hashing algorithm but with a weak default + MessageDigest bad3 = MessageDigest.getInstance(props.getProperty("hashAlg2", "MD5")); // $Alert[java/quantum/examples/weak-hash] + + // BAD: Using a weak hash + MessageDigest bad4 = MessageDigest.getInstance("SHA-1"); // $Alert[java/quantum/examples/weak-hash] + + // BAD: Property does not exist and default (used value) is unknown + MessageDigest bad5 = MessageDigest.getInstance(props.getProperty("non-existent_property", "non-existent_default")); // $Alert[java/quantum/examples/unknown-hash] + + java.util.Properties props2 = new java.util.Properties(); + + props2.load(new FileInputStream("unobserved-file.properties")); + + // BAD: "hashAlg2" is not visible in the file loaded for props2, should be an unknown + // FALSE NEGATIVE for unknown hash + MessageDigest bad6 = MessageDigest.getInstance(props2.getProperty("hashAlg2", "SHA-256")); // $Alert[java/quantum/examples/unknown-hash] + + // GOOD: Using a strong hashing algorithm + MessageDigest ok = MessageDigest.getInstance(props.getProperty("hashAlg2")); + + // BAD?: Property does not exist (considered unknown) and but default is secure + MessageDigest ok2 = MessageDigest.getInstance(props.getProperty("non-existent-property", "SHA-256")); // $Alert[java/quantum/examples/unknown-hash] + + // GOOD: Using a strong hashing algorithm + MessageDigest ok3 = MessageDigest.getInstance("SHA3-512"); + + // GOOD: Using a strong hashing algorithm + MessageDigest ok4 = MessageDigest.getInstance("SHA384"); + + } +} diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/example.properties b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/example.properties new file mode 100644 index 000000000000..512e8090bee6 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownHash/example.properties @@ -0,0 +1,2 @@ +hashAlg1=MD5 +hashAlg2=SHA-256 \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/Test.java b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/Test.java new file mode 100644 index 000000000000..13f6d03ec720 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/Test.java @@ -0,0 +1,63 @@ +import java.io.FileInputStream; +import java.io.IOException; +import java.security.MessageDigest; +import java.security.SecureRandom; +import java.util.Arrays; +import java.util.Base64; +import java.util.Properties; +import javax.crypto.Mac; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.SecretKeySpec; + +public class Test { + + public static byte[] generateSalt(int length) { + SecureRandom random = new SecureRandom(); + byte[] salt = new byte[length]; + random.nextBytes(salt); + return salt; + } + + /** + * PBKDF2 derivation with a very low iteration count. + * + * SAST/CBOM: - Parent: PBKDF2. - Iteration count is only 10, which is far + * below acceptable security standards. - Flagged as insecure. + */ + public void pbkdf2LowIteration(String password) throws Exception { + byte[] salt = generateSalt(16); + int iterationCount = 10; // $Source + PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, iterationCount, 256); // $Alert[java/quantum/examples/weak-kdf-iteration-count] + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); + byte[] key = factory.generateSecret(spec).getEncoded(); + } + + /** + * PBKDF2 derivation with a very low iteration count. + * + * SAST/CBOM: - Parent: PBKDF2. - Iteration count is only 10, which is far + * below acceptable security standards. - Flagged as insecure. + */ + public void pbkdf2LowIteration(String password, int iterationCount) throws Exception { // $Source + byte[] salt = generateSalt(16); + PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, iterationCount, 256); // $Alert[java/quantum/examples/unknown-kdf-iteration-count] + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); + byte[] key = factory.generateSecret(spec).getEncoded(); + } + + /** + * PBKDF2 derivation with a high iteration count. + * + * SAST/CBOM: - Parent: PBKDF2. - Uses 1,000,000 iterations; this is secure + * but may impact performance. + */ + public void pbkdf2HighIteration(String password) throws Exception { + byte[] salt = generateSalt(16); + int iterationCount = 1_000_000; + PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, iterationCount, 256); + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); + byte[] key = factory.generateSecret(spec).getEncoded(); + } +} \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.expected new file mode 100644 index 000000000000..472d79090496 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.expected @@ -0,0 +1,5 @@ +#select +| Test.java:47:22:47:49 | KeyDerivation | Key derivation operation with unknown iteration: $@ | Test.java:43:53:43:70 | iterationCount | iterationCount | +testFailures +| Test.java:45:94:45:153 | // $Alert[java/quantum/examples/unknown-kdf-iteration-count] | Missing result: Alert[java/quantum/examples/unknown-kdf-iteration-count] | +| Test.java:47:22:47:49 | Key derivation operation with unknown iteration: $@ | Unexpected result: Alert | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.qlref b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.qlref new file mode 100644 index 000000000000..a285aac54ade --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/UnknownKDFIterationCount.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/UnknownKDFIterationCount.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.expected new file mode 100644 index 000000000000..3567afd03221 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.expected @@ -0,0 +1,16 @@ +#select +| Test.java:32:72:32:85 | iterationCount | Test.java:31:30:31:31 | 10 : Number | Test.java:32:72:32:85 | iterationCount | Key derivation operation configures iteration count below 100k: $@ | Test.java:31:30:31:31 | 10 | 10 | +edges +| Test.java:31:30:31:31 | 10 : Number | Test.java:32:72:32:85 | iterationCount | provenance | | +| Test.java:43:53:43:70 | iterationCount : Number | Test.java:45:72:45:85 | iterationCount | provenance | | +| Test.java:58:30:58:38 | 1_000_000 : Number | Test.java:59:72:59:85 | iterationCount | provenance | | +nodes +| Test.java:31:30:31:31 | 10 : Number | semmle.label | 10 : Number | +| Test.java:32:72:32:85 | iterationCount | semmle.label | iterationCount | +| Test.java:43:53:43:70 | iterationCount : Number | semmle.label | iterationCount : Number | +| Test.java:45:72:45:85 | iterationCount | semmle.label | iterationCount | +| Test.java:58:30:58:38 | 1_000_000 : Number | semmle.label | 1_000_000 : Number | +| Test.java:59:72:59:85 | iterationCount | semmle.label | iterationCount | +subpaths +testFailures +| Test.java:43:92:43:101 | // $Source | Missing result: Source | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.qlref b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.qlref new file mode 100644 index 000000000000..1145083bf0d8 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFIterationCount/WeakKDFIterationCount.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/WeakKDFIterationCount.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/Test.java b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/Test.java new file mode 100644 index 000000000000..21619c8c5743 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/Test.java @@ -0,0 +1,42 @@ +import java.security.SecureRandom; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.PBEKeySpec; + +public class Test { + + public static byte[] generateSalt(int length) { + SecureRandom random = new SecureRandom(); + byte[] salt = new byte[length]; + random.nextBytes(salt); + return salt; + } + + /** + * PBKDF2 derivation with a weak key size. + * + * SAST/CBOM: - Parent: PBKDF2. - Key size is only 64 bits, which is far below acceptable security standards. + * - Flagged as insecure. + */ + public void pbkdf2WeakKeySize(String password) throws Exception { + byte[] salt = generateSalt(16); + int iterationCount = 100_000; + int keySize = 64; // $Source + PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, iterationCount, keySize); // $Alert[java/quantum/examples/weak-kdf-key-size] + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); + byte[] key = factory.generateSecret(spec).getEncoded(); + } + + /** + * PBKDF2 derivation with a secure key size. + * + * SAST/CBOM: - Parent: PBKDF2. - Key size is 256 bits, which meets modern security standards. + */ + public void pbkdf2SecureKeySize(String password) throws Exception { + byte[] salt = generateSalt(16); + int iterationCount = 100_000; + int keySize = 256; + PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, iterationCount, keySize); + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); + byte[] key = factory.generateSecret(spec).getEncoded(); + } +} \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/WeakKDFKeySize.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/WeakKDFKeySize.expected new file mode 100644 index 000000000000..63df79a9f9b2 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/WeakKDFKeySize.expected @@ -0,0 +1,11 @@ +#select +| Test.java:24:88:24:94 | keySize | Test.java:23:23:23:24 | 64 : Number | Test.java:24:88:24:94 | keySize | Key derivation operation configures output key length below 256: $@ | Test.java:23:23:23:24 | 64 | 64 | +edges +| Test.java:23:23:23:24 | 64 : Number | Test.java:24:88:24:94 | keySize | provenance | | +| Test.java:37:23:37:25 | 256 : Number | Test.java:38:88:38:94 | keySize | provenance | | +nodes +| Test.java:23:23:23:24 | 64 : Number | semmle.label | 64 : Number | +| Test.java:24:88:24:94 | keySize | semmle.label | keySize | +| Test.java:37:23:37:25 | 256 : Number | semmle.label | 256 : Number | +| Test.java:38:88:38:94 | keySize | semmle.label | keySize | +subpaths diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/WeakKDFKeySize.qlref b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/WeakKDFKeySize.qlref new file mode 100644 index 000000000000..2b2b1228de27 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownKDFKeySize/WeakKDFKeySize.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/WeakKDFKeySize.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/Test.java b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/Test.java new file mode 100644 index 000000000000..fde9f9a24d19 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/Test.java @@ -0,0 +1,81 @@ +import javax.crypto.Cipher; +import javax.crypto.KeyGenerator; +import javax.crypto.SecretKey; +import java.security.Key; +import java.security.NoSuchAlgorithmException; +import javax.crypto.SecretKeyFactory; + +public class Test { + public static void main(String[] args) throws Exception { + byte[] data = "Sensitive Data".getBytes(); + + // BAD: DES (unsafe) + KeyGenerator desKeyGen = KeyGenerator.getInstance("DES"); // $Alert + SecretKey desKey = desKeyGen.generateKey(); + Cipher desCipher = Cipher.getInstance("DES"); // $Alert + desCipher.init(Cipher.ENCRYPT_MODE, desKey); + byte[] desEncrypted = desCipher.doFinal(data); + + // BAD: DESede (Triple DES, considered weak) + KeyGenerator desedeKeyGen = KeyGenerator.getInstance("DESede"); // $Alert + SecretKey desedeKey = desedeKeyGen.generateKey(); + Cipher desedeCipher = Cipher.getInstance("DESede"); // $Alert + desedeCipher.init(Cipher.ENCRYPT_MODE, desedeKey); + byte[] desedeEncrypted = desedeCipher.doFinal(data); + + // BAD: Blowfish (considered weak) + KeyGenerator blowfishKeyGen = KeyGenerator.getInstance("Blowfish"); // $Alert + SecretKey blowfishKey = blowfishKeyGen.generateKey(); + Cipher blowfishCipher = Cipher.getInstance("Blowfish"); // $Alert + blowfishCipher.init(Cipher.ENCRYPT_MODE, blowfishKey); + byte[] blowfishEncrypted = blowfishCipher.doFinal(data); + + // BAD: RC2 (unsafe) + KeyGenerator rc2KeyGen = KeyGenerator.getInstance("RC2"); // $Alert + SecretKey rc2Key = rc2KeyGen.generateKey(); + Cipher rc2Cipher = Cipher.getInstance("RC2"); // $Alert + rc2Cipher.init(Cipher.ENCRYPT_MODE, rc2Key); + byte[] rc2Encrypted = rc2Cipher.doFinal(data); + + // BAD: RC4 (stream cipher, unsafe) + KeyGenerator rc4KeyGen = KeyGenerator.getInstance("RC4"); // $Alert + SecretKey rc4Key = rc4KeyGen.generateKey(); + Cipher rc4Cipher = Cipher.getInstance("RC4"); // $Alert + rc4Cipher.init(Cipher.ENCRYPT_MODE, rc4Key); + byte[] rc4Encrypted = rc4Cipher.doFinal(data); + + // BAD: IDEA (considered weak) + KeyGenerator ideaKeyGen = KeyGenerator.getInstance("IDEA"); // $Alert + SecretKey ideaKey = ideaKeyGen.generateKey(); + Cipher ideaCipher = Cipher.getInstance("IDEA"); // $Alert + ideaCipher.init(Cipher.ENCRYPT_MODE, ideaKey); + byte[] ideaEncrypted = ideaCipher.doFinal(data); + + // BAD: Skipjack (unsafe) + KeyGenerator skipjackKeyGen = KeyGenerator.getInstance("Skipjack"); // $Alert + SecretKey skipjackKey = skipjackKeyGen.generateKey(); + Cipher skipjackCipher = Cipher.getInstance("Skipjack"); // $Alert + skipjackCipher.init(Cipher.ENCRYPT_MODE, skipjackKey); + byte[] skipjackEncrypted = skipjackCipher.doFinal(data); + + // GOOD: AES (safe) + KeyGenerator aesKeyGen = KeyGenerator.getInstance("AES"); + SecretKey aesKey = aesKeyGen.generateKey(); + Cipher aesCipher = Cipher.getInstance("AES"); + aesCipher.init(Cipher.ENCRYPT_MODE, aesKey); + byte[] aesEncrypted = aesCipher.doFinal(data); + + // GOOD: AES with CBC mode and PKCS5Padding + Cipher aesCbcCipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + aesCbcCipher.init(Cipher.ENCRYPT_MODE, aesKey); + byte[] aesCbcEncrypted = aesCbcCipher.doFinal(data); + + // GOOD: AES with GCM mode (authenticated encryption) + Cipher aesGcmCipher = Cipher.getInstance("AES/GCM/NoPadding"); + aesGcmCipher.init(Cipher.ENCRYPT_MODE, aesKey); + byte[] aesGcmEncrypted = aesGcmCipher.doFinal(data); + + // GOOD: not a symmetric cipher (Sanity check) + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); + } +} \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/WeakSymmetricCipher.expected b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/WeakSymmetricCipher.expected new file mode 100644 index 000000000000..3ba5071e0264 --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/WeakSymmetricCipher.expected @@ -0,0 +1,14 @@ +| Test.java:13:59:13:63 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: DES. | +| Test.java:15:47:15:51 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: DES. | +| Test.java:20:62:20:69 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: DES. | +| Test.java:22:50:22:57 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: DES. | +| Test.java:27:64:27:73 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: Blowfish. | +| Test.java:29:52:29:61 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: Blowfish. | +| Test.java:34:59:34:63 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: RC2. | +| Test.java:36:47:36:51 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: RC2. | +| Test.java:41:59:41:63 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: RC4. | +| Test.java:43:47:43:51 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: RC4. | +| Test.java:48:60:48:65 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: IDEA. | +| Test.java:50:48:50:53 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: IDEA. | +| Test.java:55:64:55:73 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: Skipjack. | +| Test.java:57:52:57:61 | KeyOperationAlgorithm | Use of unapproved symmetric cipher algorithm or API: Skipjack. | diff --git a/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/WeakSymmetricCipher.qlref b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/WeakSymmetricCipher.qlref new file mode 100644 index 000000000000..d27fed11bfcd --- /dev/null +++ b/java/ql/test/experimental/query-tests/quantum/examples/WeakOrUnknownSymmetricCipher/WeakSymmetricCipher.qlref @@ -0,0 +1,4 @@ +query: experimental/quantum/Examples/WeakSymmetricCipher.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.qlref b/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.qlref deleted file mode 100644 index 9c7ce3d63299..000000000000 --- a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.qlref +++ /dev/null @@ -1,2 +0,0 @@ -query: experimental/Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql -postprocess: utils/test/PrettyPrintModels.ql diff --git a/java/ql/test/experimental/query-tests/security/CWE-1004/options b/java/ql/test/experimental/query-tests/security/CWE-1004/options deleted file mode 100644 index 00e92689af58..000000000000 --- a/java/ql/test/experimental/query-tests/security/CWE-1004/options +++ /dev/null @@ -1 +0,0 @@ -// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/jsr311-api-1.1.1:${testdir}/../../../../stubs/springframework-5.8.x diff --git a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected b/java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected similarity index 93% rename from java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected rename to java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected index caecb52fe454..f00a00c72586 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected +++ b/java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected @@ -1,3 +1,14 @@ +#select +| SensitiveCookieNotHttpOnly.java:31:28:31:36 | jwtCookie | SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" : String | SensitiveCookieNotHttpOnly.java:31:28:31:36 | jwtCookie | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:49 | "token=" : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:42:42:42:49 | "token=" : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:57 | ... + ... : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:42:42:42:57 | ... + ... : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:52:42:52:124 | toString(...) | SensitiveCookieNotHttpOnly.java:52:56:52:75 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:52:42:52:124 | toString(...) | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:52:56:52:75 | "session-access-key" : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:65:42:65:47 | keyStr | SensitiveCookieNotHttpOnly.java:63:51:63:70 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:65:42:65:47 | keyStr | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:63:51:63:70 | "session-access-key" : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | SensitiveCookieNotHttpOnly.java:70:28:70:35 | "token=" : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:70:28:70:35 | "token=" : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | SensitiveCookieNotHttpOnly.java:70:28:70:43 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:70:28:70:43 | ... + ... : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | SensitiveCookieNotHttpOnly.java:70:28:70:55 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:70:28:70:55 | ... + ... : String | This sensitive cookie | +| SensitiveCookieNotHttpOnly.java:111:28:111:33 | cookie | SensitiveCookieNotHttpOnly.java:88:35:88:51 | "Presto-UI-Token" : String | SensitiveCookieNotHttpOnly.java:111:28:111:33 | cookie | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:88:35:88:51 | "Presto-UI-Token" : String | This sensitive cookie | edges | SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" : String | SensitiveCookieNotHttpOnly.java:25:39:25:52 | tokenCookieStr : String | provenance | | | SensitiveCookieNotHttpOnly.java:25:28:25:64 | new Cookie(...) : Cookie | SensitiveCookieNotHttpOnly.java:31:28:31:36 | jwtCookie | provenance | Sink:MaD:1 | @@ -53,15 +64,4 @@ nodes | SensitiveCookieNotHttpOnly.java:91:16:91:21 | cookie : Cookie | semmle.label | cookie : Cookie | | SensitiveCookieNotHttpOnly.java:110:25:110:64 | createAuthenticationCookie(...) : Cookie | semmle.label | createAuthenticationCookie(...) : Cookie | | SensitiveCookieNotHttpOnly.java:111:28:111:33 | cookie | semmle.label | cookie | -problems -| SensitiveCookieNotHttpOnly.java:31:28:31:36 | jwtCookie | SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" : String | SensitiveCookieNotHttpOnly.java:31:28:31:36 | jwtCookie | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:49 | "token=" : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:42:42:42:49 | "token=" | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:57 | ... + ... : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:42:42:42:57 | ... + ... | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:52:42:52:124 | toString(...) | SensitiveCookieNotHttpOnly.java:52:56:52:75 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:52:42:52:124 | toString(...) | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:52:56:52:75 | "session-access-key" | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:65:42:65:47 | keyStr | SensitiveCookieNotHttpOnly.java:63:51:63:70 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:65:42:65:47 | keyStr | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:63:51:63:70 | "session-access-key" | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | SensitiveCookieNotHttpOnly.java:70:28:70:35 | "token=" : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:70:28:70:35 | "token=" | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | SensitiveCookieNotHttpOnly.java:70:28:70:43 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:70:28:70:43 | ... + ... | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | SensitiveCookieNotHttpOnly.java:70:28:70:55 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:70:28:70:55 | ... + ... | This sensitive cookie | -| SensitiveCookieNotHttpOnly.java:111:28:111:33 | cookie | SensitiveCookieNotHttpOnly.java:88:35:88:51 | "Presto-UI-Token" : String | SensitiveCookieNotHttpOnly.java:111:28:111:33 | cookie | $@ doesn't have the HttpOnly flag set. | SensitiveCookieNotHttpOnly.java:88:35:88:51 | "Presto-UI-Token" | This sensitive cookie | subpaths diff --git a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.java b/java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.java similarity index 92% rename from java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.java rename to java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.java index 627575c84034..91f8f3ad4cee 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.java +++ b/java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.java @@ -21,14 +21,14 @@ public void addCookie(String jwt_token, HttpServletRequest request, HttpServletR // BAD - Tests adding a sensitive cookie without the `HttpOnly` flag set. public void addCookie2(String jwt_token, String userId, HttpServletRequest request, HttpServletResponse response) { - String tokenCookieStr = "jwt_token"; + String tokenCookieStr = "jwt_token"; // $Source Cookie jwtCookie = new Cookie(tokenCookieStr, jwt_token); Cookie userIdCookie = new Cookie("user_id", userId); jwtCookie.setPath("/"); userIdCookie.setPath("/"); jwtCookie.setMaxAge(3600*24*7); userIdCookie.setMaxAge(3600*24*7); - response.addCookie(jwtCookie); + response.addCookie(jwtCookie); // $Alert response.addCookie(userIdCookie); } @@ -39,7 +39,7 @@ public void addCookie3(String authId, HttpServletRequest request, HttpServletRes // BAD - Tests set a sensitive cookie header without the `HttpOnly` flag set. public void addCookie4(String authId, HttpServletRequest request, HttpServletResponse response) { - response.addHeader("Set-Cookie", "token=" +authId + ";Secure"); + response.addHeader("Set-Cookie", "token=" +authId + ";Secure"); // $Alert } // GOOD - Tests set a sensitive cookie header using the class `javax.ws.rs.core.Cookie` with the `HttpOnly` flag set through string concatenation. @@ -49,7 +49,7 @@ public void addCookie5(String accessKey, HttpServletRequest request, HttpServlet // BAD - Tests set a sensitive cookie header using the class `javax.ws.rs.core.Cookie` without the `HttpOnly` flag set. public void addCookie6(String accessKey, HttpServletRequest request, HttpServletResponse response) { - response.setHeader("Set-Cookie", new NewCookie("session-access-key", accessKey, "/", null, null, 0, true).toString()); + response.setHeader("Set-Cookie", new NewCookie("session-access-key", accessKey, "/", null, null, 0, true).toString()); // $Alert } // GOOD - Tests set a sensitive cookie header using the class `javax.ws.rs.core.Cookie` with the `HttpOnly` flag set through the constructor. @@ -60,15 +60,15 @@ public void addCookie7(String accessKey, HttpServletRequest request, HttpServlet // BAD - Tests set a sensitive cookie header using the class `javax.ws.rs.core.Cookie` without the `HttpOnly` flag set. public void addCookie8(String accessKey, HttpServletRequest request, HttpServletResponse response) { - NewCookie accessKeyCookie = new NewCookie("session-access-key", accessKey, "/", null, 0, null, 86400, true); + NewCookie accessKeyCookie = new NewCookie("session-access-key", accessKey, "/", null, 0, null, 86400, true); // $Source String keyStr = accessKeyCookie.toString(); - response.setHeader("Set-Cookie", keyStr); + response.setHeader("Set-Cookie", keyStr); // $Alert } // BAD - Tests set a sensitive cookie header using a variable without the `HttpOnly` flag set. public void addCookie9(String authId, HttpServletRequest request, HttpServletResponse response) { - String secString = "token=" +authId + ";Secure"; - response.addHeader("Set-Cookie", secString); + String secString = "token=" +authId + ";Secure"; // $Source + response.addHeader("Set-Cookie", secString); // $Alert } // GOOD - Tests set a sensitive cookie header with the `HttpOnly` flag set using `String.format(...)`. @@ -85,7 +85,7 @@ public Cookie createHttpOnlyAuthenticationCookie(HttpServletRequest request, Str } public Cookie createAuthenticationCookie(HttpServletRequest request, String jwt) { - String PRESTO_UI_COOKIE = "Presto-UI-Token"; + String PRESTO_UI_COOKIE = "Presto-UI-Token"; // $Source Cookie cookie = new Cookie(PRESTO_UI_COOKIE, jwt); cookie.setPath("/ui"); return cookie; @@ -108,7 +108,7 @@ public void addCookie11(HttpServletRequest request, HttpServletResponse response // BAD - Tests set a sensitive cookie header without the `HttpOnly` flag set using a wrapper method. public void addCookie12(HttpServletRequest request, HttpServletResponse response, String jwt) { Cookie cookie = createAuthenticationCookie(request, jwt); - response.addCookie(cookie); + response.addCookie(cookie); // $Alert } // GOOD - Tests remove a sensitive cookie header without the `HttpOnly` flag set using a wrapper method. @@ -141,7 +141,7 @@ public void addCookie14(HttpServletRequest request, HttpServletResponse response // This example is missed because the `cookie.setHttpOnly` call in `createCookie` is thought to maybe set the HTTP-only flag, and the `cookie` // object flows to this `addCookie` call. public void addCookie15(HttpServletRequest request, HttpServletResponse response, String refreshToken) { - response.addCookie(createCookie("refresh_token", refreshToken, false)); + response.addCookie(createCookie("refresh_token", refreshToken, false)); // $MISSING:Alert } // GOOD - CSRF token doesn't need to have the `HttpOnly` flag set. diff --git a/java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.qlref b/java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.qlref new file mode 100644 index 000000000000..fd347f0adf80 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-1004/SensitiveCookieNotHttpOnly.ql +postprocess: +- utils/test/InlineExpectationsTestQuery.ql +- utils/test/PrettyPrintModels.ql \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-1004/options b/java/ql/test/query-tests/security/CWE-1004/options new file mode 100644 index 000000000000..0db0b6e72425 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-1004/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/servlet-api-2.4:${testdir}/../../../stubs/jsr311-api-1.1.1:${testdir}/../../../stubs/springframework-5.8.x diff --git a/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java b/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java index 03a61cfcf97d..f32de324a1de 100644 --- a/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java +++ b/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java @@ -119,8 +119,26 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) String unsafeUri10 = String.format("%s://%s:%s%s", "http", "myserver.com", "80", request.getParameter("baduri10")); // $ Source HttpRequest unsafer10 = HttpRequest.newBuilder(new URI(unsafeUri10)).build(); // $ Alert client.send(unsafer10, null); // $ Alert + + // GOOD: sanitisation by regexp validation + String param10 = request.getParameter("uri10"); + if (param10.matches("[a-zA-Z0-9_-]+")) { + HttpRequest r10 = HttpRequest.newBuilder(new URI(param10)).build(); + client.send(r10, null); + } + + String param11 = request.getParameter("uri11"); + validate(param11); + HttpRequest r11 = HttpRequest.newBuilder(new URI(param11)).build(); + client.send(r11, null); } catch (Exception e) { // TODO: handle exception } } + + private void validate(String s) { + if (!s.matches("[a-zA-Z0-9_-]+")) { + throw new IllegalArgumentException("Invalid ID"); + } + } } diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected index 1d2d3c1ff8ce..c9407089189e 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected @@ -71,7 +71,6 @@ ql/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql ql/javascript/ql/src/LanguageFeatures/SetterReturn.ql ql/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql ql/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql -ql/javascript/ql/src/LanguageFeatures/SyntaxError.ql ql/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql ql/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql ql/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected index 6894a776b379..b550c2c82492 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected @@ -63,7 +63,6 @@ ql/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql ql/javascript/ql/src/LanguageFeatures/SetterReturn.ql ql/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql ql/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql -ql/javascript/ql/src/LanguageFeatures/SyntaxError.ql ql/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql ql/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql ql/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 975d14e10988..1e874227c37b 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.6.13 + +No user-facing changes. + ## 2.6.12 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/2.6.13.md b/javascript/ql/lib/change-notes/released/2.6.13.md new file mode 100644 index 000000000000..475bfb69be95 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.13.md @@ -0,0 +1,3 @@ +## 2.6.13 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 8b34428a8454..9240f755da88 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.12 +lastReleaseVersion: 2.6.13 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index da942ea28a88..1ee1c8c78150 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.13-dev +version: 2.6.14-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/lib/semmle/javascript/internal/NameResolution.qll b/javascript/ql/lib/semmle/javascript/internal/NameResolution.qll index b25c98fd693b..43ae4ffd43e6 100644 --- a/javascript/ql/lib/semmle/javascript/internal/NameResolution.qll +++ b/javascript/ql/lib/semmle/javascript/internal/NameResolution.qll @@ -73,6 +73,7 @@ module NameResolution { * * May also include some type-specific steps in cases where this is harmless when tracking values. */ + pragma[nomagic] private predicate commonStep(Node node1, Node node2) { // Import paths are part of the graph and has an incoming edge from the imported module, if found. // This ensures we can also use the PathExpr as a source when working with external (unresolved) modules. @@ -187,6 +188,7 @@ module NameResolution { /** * Holds if there is a read from `node1` to `node2` that accesses the member `name`. */ + pragma[nomagic] predicate readStep(Node node1, string name, Node node2) { exists(QualifiedTypeAccess access | node1 = access.getQualifier() and @@ -321,6 +323,7 @@ module NameResolution { /** * Gets the exported member of `mod` named `name`. */ + pragma[nomagic] Node getModuleExport(ModuleLike mod, string name) { exists(ExportDeclaration exprt | mod = exprt.getContainer() and @@ -362,6 +365,7 @@ module NameResolution { * Holds if `value` is stored in `target.prop`. Only needs to recognise assignments * that are also recognised by JSDoc tooling such as the Closure compiler. */ + pragma[nomagic] private predicate storeToVariable(Expr value, string prop, LocalVariableLike target) { exists(AssignExpr assign | // target.name = value @@ -374,6 +378,7 @@ module NameResolution { } /** Steps that only apply for this configuration. */ + pragma[nomagic] private predicate specificStep(Node node1, Node node2) { exists(LexicalName var | S::isRelevantVariable(var) | node1.(LexicalDecl).getALexicalName() = var and @@ -406,6 +411,7 @@ module NameResolution { /** Helps track flow from a particular set of source nodes. */ module Track { /** Gets the set of nodes reachable from `source`. */ + pragma[nomagic] Node track(Node source) { isSource(source) and result = source @@ -419,6 +425,7 @@ module NameResolution { /** Helps track flow from a particular set of source nodes. */ module TrackNode { /** Gets the set of nodes reachable from `source`. */ + pragma[nomagic] Node track(Source source) { result = source or @@ -482,6 +489,7 @@ module NameResolution { * * Unlike `trackModule`, this is intended to track uses of external packages. */ + pragma[nomagic] predicate nodeRefersToModule(Node node, string mod, string qualifiedName) { exists(Expr path | path = any(Import imprt).getImportedPathExpr() or diff --git a/javascript/ql/lib/semmle/javascript/internal/TypeResolution.qll b/javascript/ql/lib/semmle/javascript/internal/TypeResolution.qll index a158ed6421a5..73885f833051 100644 --- a/javascript/ql/lib/semmle/javascript/internal/TypeResolution.qll +++ b/javascript/ql/lib/semmle/javascript/internal/TypeResolution.qll @@ -12,6 +12,7 @@ module TypeResolution { * We track through underlying types as an approximate way to handle calls to a type * that is a union/intersection involving functions. */ + pragma[nomagic] Node trackUnderlyingFunctionType(Function fun) { result = fun or @@ -139,6 +140,28 @@ module TypeResolution { ) } + /** + * `ContentSet.getAReadContent` restricted to the content sets and contents relevant for type resolution. + */ + pragma[nomagic] + private DataFlow::Content getAReadContentRestricted(DataFlow::ContentSet cs) { + valueReadStep(_, cs, _) and + result = cs.getAReadContent() and + typeMember(_, result, _) + } + + /** + * `valueReadStep` where the `ContentSet` has been mapped to the set of relevant read-contents. + */ + pragma[nomagic] + private predicate valueReadStepOnContent(Node object, DataFlow::Content content, Node member) { + exists(DataFlow::ContentSet contents | + valueReadStep(object, contents, member) and + content = getAReadContentRestricted(contents) + ) + } + + pragma[nomagic] predicate callTarget(InvokeExpr call, Function target) { exists(ClassDefinition cls | valueHasType(call.(NewExpr).getCallee(), trackClassValue(cls)) and @@ -198,6 +221,7 @@ module TypeResolution { ) } + pragma[nomagic] predicate contextualType(Node value, Node type) { exists(LocalVariableLike v | type = v.getADeclaration().getTypeAnnotation() and @@ -239,6 +263,7 @@ module TypeResolution { /** * Holds if `value` has the given `type`. */ + cached predicate valueHasType(Node value, Node type) { value.(BindingPattern).getTypeAnnotation() = type or @@ -293,11 +318,18 @@ module TypeResolution { or exists(Node mid | valueHasType(mid, type) | ValueFlow::step(mid, value)) or - exists(Node mid, Node midType, DataFlow::ContentSet contents, Node host | - valueReadStep(mid, contents, value) and + exists(DataFlow::Content content, Node host | + typeMemberHostRead(host, content, value) and + typeMember(host, content, type) + ) + } + + pragma[nomagic] + private predicate typeMemberHostRead(Node host, DataFlow::Content content, Node target) { + exists(Node mid, Node midType | + valueReadStepOnContent(mid, content, target) and valueHasType(mid, midType) and - typeMemberHostReaches(host, midType) and - typeMember(host, contents.getAReadContent(), type) + typeMemberHostReaches(host, midType) ) } @@ -309,6 +341,7 @@ module TypeResolution { * - a union type has the property if all its members have the property */ module TrackMustProp { + pragma[nomagic] predicate hasProperty(Node node) { directlyHasProperty(node) or @@ -341,6 +374,7 @@ module TypeResolution { } module ValueHasProperty { + pragma[nomagic] predicate valueHasProperty(Node value) { exists(Node type | valueHasType(value, type) and @@ -405,6 +439,7 @@ module TypeResolution { /** * Holds if `type` contains `string` or `any`, possibly wrapped in a promise. */ + pragma[nomagic] predicate hasUnderlyingStringOrAnyType(Node type) { type.(TypeAnnotation).isStringy() or diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 46aae437f779..f03b3a66e4d3 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.1.2 + +No user-facing changes. + ## 2.1.1 No user-facing changes. diff --git a/javascript/ql/src/Expressions/ExprHasNoEffect.qhelp b/javascript/ql/src/Expressions/ExprHasNoEffect.qhelp index da9db7c2ac0c..d9907689f8f7 100644 --- a/javascript/ql/src/Expressions/ExprHasNoEffect.qhelp +++ b/javascript/ql/src/Expressions/ExprHasNoEffect.qhelp @@ -51,10 +51,4 @@ assign it an initial value, which also serves to document its expected type: - - -
  • JSLint Error Explanations: Expected an assignment or function call.
  • - - -
    diff --git a/javascript/ql/src/LanguageFeatures/DeleteVar.qhelp b/javascript/ql/src/LanguageFeatures/DeleteVar.qhelp index 79d7ec970357..69ccb83f0838 100644 --- a/javascript/ql/src/LanguageFeatures/DeleteVar.qhelp +++ b/javascript/ql/src/LanguageFeatures/DeleteVar.qhelp @@ -35,11 +35,4 @@ function compute to the outside world): - - - -
  • JSLint Error Explanations: Only properties should be deleted.
  • - - -
    diff --git a/javascript/ql/src/LanguageFeatures/SyntaxError.ql b/javascript/ql/src/LanguageFeatures/SyntaxError.ql index 0c9a69490f7c..d4428c75774e 100644 --- a/javascript/ql/src/LanguageFeatures/SyntaxError.ql +++ b/javascript/ql/src/LanguageFeatures/SyntaxError.ql @@ -4,8 +4,7 @@ * @kind problem * @problem.severity recommendation * @id js/syntax-error - * @tags quality - * reliability + * @tags reliability * correctness * language-features * @precision very-high diff --git a/javascript/ql/src/Security/CWE-327/BrokenCryptoAlgorithm.qhelp b/javascript/ql/src/Security/CWE-327/BrokenCryptoAlgorithm.qhelp index e0ccf71572f7..bdd1071b6134 100644 --- a/javascript/ql/src/Security/CWE-327/BrokenCryptoAlgorithm.qhelp +++ b/javascript/ql/src/Security/CWE-327/BrokenCryptoAlgorithm.qhelp @@ -4,17 +4,34 @@

    - Using broken or weak cryptographic algorithms can leave data - vulnerable to being decrypted or forged by an attacker. + Using broken or weak cryptographic algorithms may compromise + security guarantees such as confidentiality, integrity, and + authenticity.

    - Many cryptographic algorithms provided by cryptography - libraries are known to be weak, or flawed. Using such an - algorithm means that encrypted or hashed data is less - secure than it appears to be. + Many cryptographic algorithms are known to be weak or flawed. The + security guarantees of a system often rely on the underlying + cryptography, so using a weak algorithm can have severe consequences. + For example:

    +
      +
    • + If a weak encryption algorithm is used, an attacker may be able to + decrypt sensitive data. +
    • +
    • + If a weak hashing algorithm is used to protect data integrity, an + attacker may be able to craft a malicious input that has the same + hash as a benign one. +
    • +
    • + If a weak algorithm is used for digital signatures, an attacker may + be able to forge signatures and impersonate legitimate users. +
    • +
    +
    diff --git a/javascript/ql/src/change-notes/released/2.1.2.md b/javascript/ql/src/change-notes/released/2.1.2.md new file mode 100644 index 000000000000..6e72407c8c7a --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.1.2.md @@ -0,0 +1,3 @@ +## 2.1.2 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 576c2ea18d68..1a4e53e87724 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.1.1 +lastReleaseVersion: 2.1.2 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 2581f9476291..df854af7e2b2 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.1.2-dev +version: 2.1.3-dev groups: - javascript - queries diff --git a/misc/bazel/3rdparty/BUILD.bazel b/misc/bazel/3rdparty/BUILD.bazel index 4e12f92edee7..6f5f1f77fef9 100644 --- a/misc/bazel/3rdparty/BUILD.bazel +++ b/misc/bazel/3rdparty/BUILD.bazel @@ -5,15 +5,7 @@ crates_vendor( name = "vendor_tree_sitter_extractors", cargo_lockfile = "//:Cargo.lock", generate_build_scripts = True, - manifests = [ - "//:Cargo.toml", - "//ruby/extractor:Cargo.toml", - "//rust/extractor:Cargo.toml", - "//rust/extractor/macros:Cargo.toml", - "//rust/ast-generator:Cargo.toml", - "//rust/autobuild:Cargo.toml", - "//shared/tree-sitter-extractor:Cargo.toml", - ], + manifests = ["//:Cargo.toml"], mode = "remote", repository_name = "vendor_ts", tags = ["manual"], @@ -24,10 +16,7 @@ crates_vendor( name = "vendor_py_deps", cargo_lockfile = "//python/extractor/tsg-python:Cargo.lock", generate_build_scripts = True, - manifests = [ - "//python/extractor/tsg-python:Cargo.toml", - "//python/extractor/tsg-python/tsp:Cargo.toml", - ], + manifests = ["//python/extractor/tsg-python:Cargo.toml"], mode = "remote", repository_name = "vendor_py", tags = ["manual"], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel b/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel index 8c66fc77a561..e8bbd96a1c5a 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel index 19d6745d7573..dba6f5a53133 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel index 200bb05804ca..a6c3752b60f1 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel index 1de0f16e9b9d..5f8c366ff875 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel index f785c8416a1f..598ea5da3af8 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel index 384ace979acd..ce4d5dc8abda 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel index 9a3ea416d144..34ea952cd267 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel b/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel index 0fc47086bfb7..e3f89bafb19a 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel b/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel index 70e833a34bcf..7ddd490dffc2 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel b/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel index be920c5727a2..c44b8554ad47 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel b/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel index fb906059fd16..231ff9c856ea 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel b/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel index 43ca3c94eb1d..94d462097184 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel b/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel index 495713baf568..6528f5edc545 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel b/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel index aa5ba49e524f..b9b1384da8d3 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel b/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel index 130fcc98569e..5d8cb464baf5 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel b/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel index 371600a694bf..290610f2234d 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel b/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel index 87394011b301..ad2cdfd44f64 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel b/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel index cd9e4a8f0d8d..0dc7bb180d1d 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel b/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel index 0c966529bdf3..f14687523f04 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel b/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel index a4408253a92e..a450cf23e5b2 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel @@ -89,12 +89,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel b/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel index b72ce8f99a2e..95353401fa84 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel @@ -94,12 +94,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel b/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel index e5c758d7484a..be5fade3f8b4 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel @@ -82,12 +82,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel b/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel index 7d930f72d8af..7f8fb8721139 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel b/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel index e3927c2e2cf6..c2f3f0b2f1e5 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel b/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel index 134d08a022bf..49ca3826b701 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel b/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel index 2e144608c025..6f981174de74 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel index 1fd5763f4b22..3a7b5dd13f31 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel index 01002bf50e53..5ef3609e8659 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel b/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel index 2e3575479e84..c693289d0d52 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel b/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel index 70e01c3cd7aa..89f35680ecdb 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel b/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel index a136852520ba..74c276c55b20 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel index 5a9ef0784729..c085df67e5c4 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel index d2ed4ad02fe6..f2dc22a0d19b 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel index 312b70e23379..a37116c26fba 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel index ad8dd864b008..3917bb3d1651 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel index 409bc07da9f9..de6215593a4c 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel b/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel index 00509c7dfe1b..cf6899aafa06 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel b/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel index ce31b354d5c8..caf972ae7c80 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel index 0e640044247b..aba90d60cc20 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel index 2ceda06e690a..469d31b2fec4 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel index 43e3d458b61d..f4b8a614e6f7 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel index d2d560db7f67..82e1c57e2abb 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel index d16a88914f7d..b0904b98ca8f 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel index 14c2f9bff043..78e37e28693e 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel index c6526b6edc48..6406d8c7c690 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel index 2629a55f49b6..e5e5950f6439 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel index e71a9a4a2e8e..9107aa2b3644 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel index 443821cda2cc..326deb217507 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/py_deps/defs.bzl b/misc/bazel/3rdparty/py_deps/defs.bzl index ea04edbae037..90b5a7b640c8 100644 --- a/misc/bazel/3rdparty/py_deps/defs.bzl +++ b/misc/bazel/3rdparty/py_deps/defs.bzl @@ -425,12 +425,16 @@ _CONDITIONS = { "i686-unknown-linux-gnu": ["@rules_rust//rust/platform:i686-unknown-linux-gnu"], "powerpc-unknown-linux-gnu": ["@rules_rust//rust/platform:powerpc-unknown-linux-gnu"], "riscv32imc-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imc-unknown-none-elf"], + "riscv64gc-unknown-linux-gnu": ["@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu"], "riscv64gc-unknown-none-elf": ["@rules_rust//rust/platform:riscv64gc-unknown-none-elf"], "s390x-unknown-linux-gnu": ["@rules_rust//rust/platform:s390x-unknown-linux-gnu"], "thumbv7em-none-eabi": ["@rules_rust//rust/platform:thumbv7em-none-eabi"], "thumbv8m.main-none-eabi": ["@rules_rust//rust/platform:thumbv8m.main-none-eabi"], + "wasm32-unknown-emscripten": ["@rules_rust//rust/platform:wasm32-unknown-emscripten"], "wasm32-unknown-unknown": ["@rules_rust//rust/platform:wasm32-unknown-unknown"], "wasm32-wasip1": ["@rules_rust//rust/platform:wasm32-wasip1"], + "wasm32-wasip1-threads": ["@rules_rust//rust/platform:wasm32-wasip1-threads"], + "wasm32-wasip2": ["@rules_rust//rust/platform:wasm32-wasip2"], "x86_64-apple-darwin": ["@rules_rust//rust/platform:x86_64-apple-darwin"], "x86_64-apple-ios": ["@rules_rust//rust/platform:x86_64-apple-ios"], "x86_64-linux-android": ["@rules_rust//rust/platform:x86_64-linux-android"], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel index 61dd4b8015d0..15d108fcbec5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel index 6d911d0cd9fa..d47c7298b755 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel index 043bb8717dfa..b1ca8b4a42d0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel index d53f2d8803f3..a133ae2799bd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.20.bazel index 612f153cad1e..ebd0e844157f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-0.6.20.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.11.bazel index 0680166780b6..bf8779d93c97 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.11.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-0.2.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-0.2.7.bazel index ac933291b6a3..4a81b5ca7fa1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-0.2.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-0.2.7.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.4.bazel index 56c6b1fe9214..2004f465f534 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.10.bazel index 6be501fabe1c..cc610fb0aa96 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.10.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.100.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.100.bazel index 26ed6194b686..5d8502998aa3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.100.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.100.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel index 5b77349d60f3..32b9ff0d9c71 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-0.2.1.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.6.bazel index 92ffe37c58b2..b9e36249cf7f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel index f81c241a363e..b0be5564bb5c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.0.bazel index 66631184b2fd..2be65fdc967e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.22.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.22.1.bazel index dc8e3b891248..17d891f3c2c9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.22.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.22.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel index 951fa2156ebc..b9b25068599c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.4.bazel index f4b462ce1317..1bfb8cf8e159 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.5.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.5.7.bazel index f1cef840bb80..cf4d5c3aaa19 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.5.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.5.7.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel index 2286d8017db1..cfc997b9101c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.0.bazel index 0433f5fe9071..04c40d430163 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.19.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.19.0.bazel index 8b8e72859900..bd48b980b9a2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.19.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.19.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.23.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.23.2.bazel index ce1e2725e32f..05edb30b6088 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.23.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.23.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.12.bazel index 8f8a62dbdd84..b138a8c2f3db 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.12.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.2.0.bazel index 315a77ded829..e4ee9d80fbde 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.2.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel index f74bdea2fe1c..7564be022f1a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel index 12ce8fc813d9..95acbcc53aaa 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.37.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.37.bazel index ab0df21161a2..ef757a77cacc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.37.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.37.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -115,6 +119,9 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # powerpc-unknown-linux-gnu ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # riscv64gc-unknown-linux-gnu + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # s390x-unknown-linux-gnu ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.3.bazel index ca5231827c85..6df1698a8b41 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.1.bazel index 045b9c7d3e11..093182c2bdd5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel index 89aadd71e2ef..09fe4a1d1949 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel index c5bea0da8449..6f83f8a31283 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel index efafd49d342b..61c81e205d31 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel index 60a6ae9176f7..01017b869eb4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.103.0.bazel index a8959b395ef4..4f15fef15d68 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.103.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel index 834e4c9b2051..3b35ec7bf2b0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.42.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.42.bazel index 806fa5bd5a52..0b5f1b3f916e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.42.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.42.bazel @@ -85,12 +85,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -162,9 +166,15 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # powerpc-unknown-linux-gnu ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # riscv64gc-unknown-linux-gnu + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # s390x-unknown-linux-gnu ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__iana-time-zone-0.1.63//:iana_time_zone", # wasm32-unknown-emscripten + ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ "@vendor_ts__js-sys-0.3.78//:js_sys", # wasm32-unknown-unknown "@vendor_ts__wasm-bindgen-0.2.101//:wasm_bindgen", # wasm32-unknown-unknown diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.48.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.48.bazel index c689eac509f6..07b70d3c00e3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.48.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.48.bazel @@ -83,12 +83,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.48.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.48.bazel index b1d6e28a676d..d4778d3ba494 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.48.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.48.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.47.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.47.bazel index f4d794c20eb8..30ec5af6c1f4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.47.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.47.bazel @@ -73,12 +73,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-0.7.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-0.7.5.bazel index 1762f5e85149..54194c27503f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-0.7.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-0.7.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.4.bazel index 19f14814c6bd..3fde0013d957 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel index 961ed6da5a7f..d7c24a33e091 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel index 3d52a6a65d2b..6471b14ab04f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.1.0.bazel index a63921c3b4a8..934e00d1c705 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.1.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel index b3a40b976a8f..f626b633f132 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.15.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.15.bazel index 8d06af4b20d0..c179f7d4da09 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.15.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.15.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.6.bazel index 275da3cb388c..0208adb97be1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.18.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.18.bazel index ca30e79b83e6..627145e84eea 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.18.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.18.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.12.bazel index 2de25a15e6cb..52201cf8a8b3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.12.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.21.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.21.bazel index 5efee8b6bd16..18ae31e2ecae 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.21.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.21.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.21.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.21.3.bazel index b40385ef20f3..4c292c1d7101 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.21.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.21.3.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.21.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.21.3.bazel index 79e5b9b385f3..85fc26280aef 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.21.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.21.3.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.21.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.21.3.bazel index c150f931e327..84a6db16b684 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.21.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.21.3.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel index 6a7ea4215532..9dfad53ceb57 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.3.bazel index 262c356a1ba4..68432d606f89 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel index 87651e8bda35..c021a09033ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel index e1753384d51d..2d4581a50d97 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel index 107c3ffebb5d..df9735fb0447 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel index 0510a6239027..c810715cbc80 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.15.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.15.0.bazel index f0e4ed753a98..7889b2bacd18 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.15.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.15.0.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel index 50d4b33db9a6..bc79eea8cb9d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel index a244aae188cd..c9577c65f88a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel index 364bb52518bf..2479888abce6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel index 20bed276c3df..4bfdf59c2866 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel index d351a58ac130..8b4274d602b0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel index f5842e0a4ead..a53f1999f2cf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel index bbee3fd0412a..b6a7ad2993b1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel index 38f81f0a3819..a68310e470d6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel index 0c774d24ada4..c262f8362d78 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel index 8e03c63e500c..3eebca66b451 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel index 641e4f015233..9f707fe589ab 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel @@ -81,12 +81,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -143,12 +147,21 @@ rust_library( "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [ "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], "@rules_rust//rust/platform:wasm32-wasip1": [ "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) ], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [ + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + ], + "@rules_rust//rust/platform:wasm32-wasip2": [ + "@vendor_ts__atomic-0.6.1//:atomic", # cfg(any(target_pointer_width = "8", target_pointer_width = "16", target_pointer_width = "32")) + ], "//conditions:default": [], }), ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.1.bazel index d956f0084449..c04dd7706d65 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.4.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.4.2.bazel index 75630f1b6ffd..2e2ffe86c6a6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.4.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.4.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.2.bazel index b06683055f36..6b919bce0b8f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.2.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fnv-1.0.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fnv-1.0.7.bazel index 54f682b45eb8..c3eab8bc83ce 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fnv-1.0.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fnv-1.0.7.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel index 766dc7a15dc1..7d6f47fa04f4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.2.bazel index e0bb0c5b348a..e496ef247dad 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.2.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fs-err-2.11.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fs-err-2.11.0.bazel index ae8912b43404..263df3abe827 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fs-err-2.11.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fs-err-2.11.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel index ae27e0cf00e7..ece66edee6c6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel index 4512e7e59c20..060ec5e07d9f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel index 49103f0d3037..47a353d3df92 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.3.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -145,9 +149,18 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(all(target_os = "linux", target_env = ""), getrandom_backend = "custom", getrandom_backend = "linux_raw", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) + ], + "@rules_rust//rust/platform:wasm32-wasip2": [ + "@vendor_ts__wasi-0.14.5-wasi-0.2.4//:wasi", # cfg(all(target_arch = "wasm32", target_os = "wasi", target_env = "p2")) + ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.3.bazel index da1a76791096..6ce6e3c97199 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.16.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.16.bazel index cdcb709b6513..8a77be50b7f4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.16.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.16.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel index aa0a973bafec..57dc7dc0b07e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel index ba496ad4471b..dadefeac311a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel index 4f57dca3c972..b7b644fb6815 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel index 785d16ee2930..c4549368f6c8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.10.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel index 8332feb628b7..78a22ad01401 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel index a8ce19b74070..a7fa4e0c9e1c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel index c04fd290de85..2d7ca484cadc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.home-0.5.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.home-0.5.11.bazel index 8f5c82b71d02..3f5d6f3e7112 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.home-0.5.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.home-0.5.11.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel index b3e809c20906..2363e88f60ec 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.63.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel index 7de07c3e66d1..0a2ab447f067 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel index c15de7a0de7f..03ec6ed98b2e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel index fe541bdd5d91..78b39e2617e0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel index 0d7fa879c944..a99daf34fd7f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel index 1bc714152c0d..a54e63d5cbc4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel index 0775afcb043c..31ae1bf654d0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel index 4779fee40dd1..f74ecbdc568e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel index 42dc4eb7c341..cdb3b7c9449f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel index e4bc23dc1aff..de24b64e74be 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.1.0.bazel index 1e4fe273978b..c79d20f3a9e3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.1.0.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel index ca74505a0646..538648fc1ebd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel index 9af800b92dcf..f3c41fc7d205 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.4.bazel index be7b81b49f14..339324bc8977 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.4.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel index 6a2221969bfd..838f8dfd6ce6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel index 31a69e5e7609..687f07ab93b3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel index 757c2e30a5b1..c9e73bfb91c4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.9.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.9.7.bazel index 42a92804c85a..4135430c0dd5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.9.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.9.7.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.1.bazel index 196b9d70b344..178eb9ea801b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.1.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.12.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.12.1.bazel index 4a7838edb6fa..8c01d09ec29c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.12.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.12.1.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.14.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.14.0.bazel index d0885a15d3d0..ff6f7e18e767 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.14.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.14.0.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.15.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.15.bazel index d0d13ab1a570..64e8b1bf5dba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.15.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.15.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.34.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.34.bazel index c92c87746bf9..6f7696c7983e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.34.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.34.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -144,9 +148,15 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel index 46ed18db7c98..9659dec0e4b0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.78.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.78.bazel index e7d05a34f21a..3a2d6e01b808 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.78.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.78.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel index 81d5b18a81bb..2163666cef7a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.1.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel index 46c5f37608fb..a162ce9265a5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel index 63ae48cb758a..078852cfe3c4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.0.bazel index 8fdf1e161e9e..204862e396e4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.175.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.175.bazel index 4aad3afd224a..b00d5c2476cd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.175.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.175.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel index 95a868e1ad32..6570e76db934 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel index 0e547980f69f..47e14a2a214e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.13.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.13.bazel index e0bfa81b31f3..e369edeb4556 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.13.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.13.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel index 961aa4b6dabb..a2b546f05207 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.28.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.28.bazel index 8d88e063c67d..b3bed18c81c4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.28.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.28.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel index da67f321d99f..cc8ef40941ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.5.bazel index 9af3cd4c572c..03b04580ea97 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.5.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel index 41234413ee70..3485ee47710e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel index 80d0e6c3fc06..6f1ca1a97da0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel index 28e096bc418e..539da180bb79 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.4.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -152,13 +156,27 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:wasm32-wasip1": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(target_os = "wasi") "@vendor_ts__wasi-0.11.1-wasi-snapshot-preview1//:wasi", # cfg(target_os = "wasi") ], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(target_os = "wasi") + "@vendor_ts__wasi-0.11.1-wasi-snapshot-preview1//:wasi", # cfg(target_os = "wasi") + ], + "@rules_rust//rust/platform:wasm32-wasip2": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(target_os = "wasi") + "@vendor_ts__wasi-0.11.1-wasi-snapshot-preview1//:wasi", # cfg(target_os = "wasi") + ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel index af5955087e3f..8025e8f3b2c0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel index cfaa72fda832..aec7c2bd00bc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel index ed88ea3eebb0..6ed4e8027e77 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel index ffba79680267..6d024f0d1d9f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -162,6 +166,10 @@ rust_library( "@vendor_ts__inotify-0.11.0//:inotify", # cfg(any(target_os = "linux", target_os = "android")) "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__inotify-0.11.0//:inotify", # cfg(any(target_os = "linux", target_os = "android")) + "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__inotify-0.11.0//:inotify", # cfg(any(target_os = "linux", target_os = "android")) "@vendor_ts__mio-1.0.4//:mio", # cfg(any(target_os = "linux", target_os = "android")) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.0.0.bazel index 4ec350cba963..643378311dd3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.0.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.1.bazel index 1e9f6c7d54a3..a12b6b5e5d74 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.1.bazel @@ -82,12 +82,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.1.0.bazel index ee85d2c29618..7f7685c0d5be 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.1.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel index 3b7620f1e5ad..97a0e0a2f132 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel index 84ac7e536d76..0cd3c5c33dd7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -144,6 +148,9 @@ rust_library( "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) + ], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], @@ -156,12 +163,21 @@ rust_library( "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) + ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:wasm32-wasip1": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) + ], + "@rules_rust//rust/platform:wasm32-wasip2": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) + ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(not(windows)) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.3.bazel index 1611f8ad4e83..686dd8f6a799 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.3.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.1.bazel index 08819b64aa44..dc02094678d0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.1.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel index a712daf39048..826c14777f0a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel index be67bf877f43..e9e1714252bc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.1.1.bazel index 96010fb2e467..b957f54c9504 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.1.1.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.papaya-0.2.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.papaya-0.2.3.bazel index 214b3d3caab9..d10b3e75896b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.papaya-0.2.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.papaya-0.2.3.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.4.bazel index 60ff4d9e26d4..4bc7f4f9bb89 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.4.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel index ffcde4b57f26..e602d4cf3580 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.11.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -152,9 +156,15 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel index 6a781ccec50a..a806ba783a61 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel index a8e7ad4bf41c..d37a7916d11c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.2.bazel index 06f5a6f9f7e9..925777f7837f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.2.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel index bd473ae5a3f9..3dcdb7841a8d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel index 3f12c00274f0..66c6d44fb9c4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel index 7c88eb609031..96b02e10e076 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.16.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.16.bazel index 1c7ae29aa312..613c24f7cbcc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.16.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.16.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel index 10e8e40e1f19..e03ef295d214 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.32.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.11.1.bazel index c481da86e5de..c8afae58b26c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.11.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.11.1.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.3.bazel index f4fc2d5dee04..343962c45855 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.3.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel index eee2906ed43b..9d58835a336b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel index 68d235c36842..8043ecaee06a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ppv-lite86-0.2.21.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.101.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.101.bazel index e09b5045cc33..b979922bfcf3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.101.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.101.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel index 84323b7da799..e97d61f229ba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.41.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.41.bazel index de02a99d0de0..bf89a7251f30 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.41.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.41.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-5.3.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-5.3.0.bazel index 7a7f59d9f4c0..778a94832fb8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-5.3.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-5.3.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel index 0d136750f61b..de56de7393c7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.123.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.123.0.bazel index 65ca37ead027..5d4250c41bc4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.123.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.123.0.bazel index d3b5c92abd24..bf33fe6c8925 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.123.0.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel index c0dff7478449..b3dcedb0ec57 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.123.0.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.121.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.121.0.bazel index 8190270b4876..88d4046a03a4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.121.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.121.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.123.0.bazel index fe2f610ab25e..4971fc67e036 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.123.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.121.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.121.0.bazel index 7fedf84a6194..c5eaeddb6830 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.121.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.121.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.123.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.123.0.bazel index b21233957f39..bd2180aa2c50 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.123.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.123.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel index 73ba2f1d47fd..2c5fe2ea2442 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel @@ -82,12 +82,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.301.bazel index f36d971d226b..a3eb4397b88c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.301.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.301.bazel index 900a93657940..648552243c8e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.301.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel index 668aa255fbe6..a138ff5c8877 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel @@ -82,12 +82,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel index 77782b1df3ce..8811733c6902 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel @@ -86,12 +86,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.301.bazel index f5ad3aa61e0c..87e6fa6e904e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.301.bazel @@ -87,12 +87,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel index 74b8972eda04..c9b81576e38c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel @@ -85,12 +85,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel index da23d55cdd2c..6c023eedf9a6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel @@ -85,12 +85,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.301.bazel index 556a788d138b..4542092adf99 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.301.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.301.bazel index 51fdf30d0bb9..137cdb42e448 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.301.bazel @@ -81,12 +81,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.301.bazel index 58d0a9a3d87b..2fbff68fc773 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.301.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.301.bazel index f27215feb49d..e31fb6afe34a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.301.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.301.bazel index 68cfd57af753..d3627c8e09d4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.301.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel index 37f3378bd629..62382cb6834c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel @@ -80,12 +80,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.301.bazel index 89463b1ab354..bda44ea0ec59 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.301.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -122,6 +126,10 @@ rust_library( "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel index 29b6d793366a..e54b95b9252d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel @@ -82,12 +82,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.301.bazel index ae0f619a3baa..d1a49cd5f957 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.301.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.301.bazel index e9e64e5fa085..fa784c663a86 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.301.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.301.bazel index 71c7a91ccf40..4d81268c7baf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.301.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -152,9 +156,15 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ "@vendor_ts__libc-0.2.175//:libc", # cfg(unix) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.301.bazel index 277ab6b967c0..2413110f2557 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.301.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.301.bazel index 9894d99260ca..4f0ccf66d07a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.301.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.301.bazel index dd6e2e7de24d..8688fe6dde81 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.301.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.301.bazel index 3eb42ebd0196..4e3842c4f092 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.301.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel index 868107cddc5b..bca4bbf5f853 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.301.bazel index 1e93e6aa96d9..8f09f78c4b09 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.301.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.2.bazel index 76eee3e10fc7..1e5b380c8e83 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.2.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_chacha-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_chacha-0.9.0.bazel index 23a86fd3b81c..d95c304574ef 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_chacha-0.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_chacha-0.9.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.9.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.9.3.bazel index 7d2ea3945b8c..02b349c691ad 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.9.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.9.3.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.11.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.11.0.bazel index 25d4bda52c87..b022fcc5c8f5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.11.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.11.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel index 9925b0366bda..293c42477819 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.17.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.17.bazel index f9aa145a63c8..4f235ca509ff 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.17.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.17.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel index 7db5ebf02c74..aa00cedf8112 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel index 70bc6acb1161..283e6bf5a8fd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.3.bazel index 2e26723c4785..67446df2cc35 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.3.bazel @@ -89,12 +89,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.11.bazel index 3f008ea863c7..b921cf34fd26 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.11.bazel @@ -98,12 +98,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.6.bazel index 678ff923f0b4..8591bbb61ada 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.6.bazel @@ -82,12 +82,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.15.15.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.15.15.bazel index 730dcab37bae..8dd1734cb0bc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.15.15.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.15.15.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel index b1c27aea91a9..2e1e394414bc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.1.bazel index 5af0f94dc4ba..3510d2a1ecb2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.4.bazel index 6636618777f1..e28c0bc4178d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel index b087a116ce20..adfeba65d212 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel index 7947e6e3b806..0120f3ea41b2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.22.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.22.bazel index 20ead5c4d95d..03476d43a933 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.22.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.22.bazel @@ -74,12 +74,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.20.bazel index 4a971256e838..5b099b034d26 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.20.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel index 5ba01a304a85..6a57925fb36e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.23.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.23.0.bazel index d351f598b7ba..2fa60dda2d72 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.23.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.23.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel index 8d763b3ef958..622d28177813 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.23.0.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel index fd655a0ce783..01d9cc94d56f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel index 6f1dd98fa177..7229003a1d0b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel index 81d7aa89ab54..757f0deab3c5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.0.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scoped-tls-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scoped-tls-1.0.1.bazel index b7ee62857905..6083076913dd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scoped-tls-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scoped-tls-1.0.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel index 268fe36a09b9..e9f53614a255 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel index b54e1b89da30..1a284015551b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.seize-0.5.0.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.26.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.26.bazel index b0460d053ae2..b50da61882ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.26.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.26.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.228.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.228.bazel index e58b661dec8f..c8b33b40bfe9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.228.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.228.bazel @@ -84,12 +84,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.8.bazel index f04da9de1ad5..61298a6ffb6a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.8.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel index c897b79e5c77..4225c41bd210 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.228.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.228.bazel index cfca5c545ab0..2052a7e95a1a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.228.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.228.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.228.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.228.bazel index e3b6733407b3..55489195f291 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.228.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.228.bazel @@ -73,12 +73,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel index 5d6298313e49..c1beaef58968 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel @@ -75,6 +75,10 @@ rust_library( "indexmap", # powerpc-unknown-linux-gnu "preserve_order", # powerpc-unknown-linux-gnu ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "indexmap", # riscv64gc-unknown-linux-gnu + "preserve_order", # riscv64gc-unknown-linux-gnu + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "indexmap", # s390x-unknown-linux-gnu "preserve_order", # s390x-unknown-linux-gnu @@ -137,12 +141,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], @@ -187,6 +195,9 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__indexmap-2.11.4//:indexmap", # powerpc-unknown-linux-gnu ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__indexmap-2.11.4//:indexmap", # riscv64gc-unknown-linux-gnu + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "@vendor_ts__indexmap-2.11.4//:indexmap", # s390x-unknown-linux-gnu ], @@ -265,6 +276,10 @@ cargo_build_script( "indexmap", # powerpc-unknown-linux-gnu "preserve_order", # powerpc-unknown-linux-gnu ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "indexmap", # riscv64gc-unknown-linux-gnu + "preserve_order", # riscv64gc-unknown-linux-gnu + ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ "indexmap", # s390x-unknown-linux-gnu "preserve_order", # s390x-unknown-linux-gnu diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.9.bazel index c596adf490ce..cfd8057e4922 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.9.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.0.2.bazel index e51f544db4f1..6e22434699e9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.0.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.0.2.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.14.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.14.1.bazel index 39a38f4f337c..b34c3aebce92 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.14.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.14.1.bazel @@ -80,12 +80,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.1.bazel index e6c0864d9f0f..adec2841a5fa 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.14.1.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel index 63410f30d1c3..0baae2b420dd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel index 848d1e2a4e57..d51e394269a8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-1.3.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-1.3.0.bazel index b9f77c42ca32..9c85601923bf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-1.3.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-1.3.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.15.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.15.1.bazel index baeaf39f21e4..ef1a58e47b6f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.15.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.15.1.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.2.bazel index 93dd67a02aa6..ba66fdd7cff3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.2.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel index 38f9881b0b7a..d01e13293283 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel index 595be8e1eaff..702431638895 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel index 69afe594ca70..3b807674bb66 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.106.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.106.bazel index 234b52999694..b771972149bb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.106.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.106.bazel @@ -83,12 +83,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel index 1043ced13843..100a3963472a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.temp-dir-0.1.16.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.temp-dir-0.1.16.bazel index 97833eecfaf0..b8c9c3fa8901 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.temp-dir-0.1.16.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.temp-dir-0.1.16.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel index eb5ded13f064..24c4e086a8ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.14.bazel index 5cae0f03c351..20749982e650 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.14.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel index e50ec05152d5..d4da859d3483 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel @@ -81,12 +81,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel index c8a6f5c3acaf..9bce5c77e1de 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.9.bazel index 649948406e7a..5fdccb311d12 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.9.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.43.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.43.bazel index 9df78d1b4b6d..095ed4f18cef 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.43.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.43.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.6.bazel index 31940c3f306c..c97b1837f2eb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.6.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.24.bazel index 3e3c5b921ab2..74e05258e0c2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.24.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.24.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel index c499cc1b6804..af42b4cbcb1d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.23.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.23.bazel index ba176cda49dc..f772d5dcdc2e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.23.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.23.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel index ca4f62b9c484..73249141b0f2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.11.bazel index 8a9d6b7342b3..2d752cc867d8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.11.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.7.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.7.2.bazel index a94b3a87066c..662a538d5b77 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.7.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.7.2.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel index ab36adb8f302..4a3081f858ac 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.3.bazel index 8b4c4668aa5e..9920a989d979 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.3.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel index d85620210862..b25d3e86f9fe 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.0.3.bazel index e90c3a61d877..178d3e98f705 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.0.3.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.41.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.41.bazel index 1e49c47fd1e3..48d06e879a6d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.41.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.41.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel index ec9f805d2d30..16782034af38 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.30.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.34.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.34.bazel index a1fb8f6e7764..e758ef8b8e92 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.34.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.34.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel index 49318221b2f9..310b8a8a6d20 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel index 884615bcabe0..292b84993bc4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.20.bazel index cef88b5639b0..a118ed152c55 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.20.bazel @@ -87,12 +87,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.25.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.25.9.bazel index 46d6255099c3..aec4b5a2fa4f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.25.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.25.9.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel index 2b40d8a34d6a..4d3af159e798 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel index ae6d02ae4eb5..613b9ec6fd1d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.5.bazel index 8bc56f476d98..956e222a8f06 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel index 4377d9f8cb9c..f1b7c0f0118b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel index 86f87e700227..443ca47fa2c2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.14.bazel index 95d24ae522ca..480f760f1970 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.14.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel index 69e0c45ebd04..f0af1025ad3b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel index 10f66174bc25..07d0afb6bd7b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel index bcd4e9b51239..3a95385b7859 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel index 5472fc5dabb7..473cc4ece536 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.19.bazel index f0f3da9a94c4..0879a535547a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.19.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.3.bazel index fed0654f1c1e..fc560bc6d417 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.3.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-xid-0.2.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-xid-0.2.6.bazel index 6776feb0210f..0d91b8333d95 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-xid-0.2.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-xid-0.2.6.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel index 9478c1cfe805..089e3d57c69a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.7.bazel index 6b0e6fcb6696..7f701fa2f9a3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.7.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel index c4b2c4062c16..f933e15e86f1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel index df14dcb7e1f6..436b71c8e8b9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel @@ -73,12 +73,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel index 10a3cc3548ad..020a37ab9452 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel index ce51c79a218f..43b406d09766 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel index 14ba229e7fc2..5ac9c7ffbc7a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel index 6a0e8f023c43..5e8b84da9757 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.5+wasi-0.2.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.5+wasi-0.2.4.bazel index 81a3a287a544..0b482a2c9b24 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.5+wasi-0.2.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.14.5+wasi-0.2.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasip2-1.0.0+wasi-0.2.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasip2-1.0.0+wasi-0.2.4.bazel index ce61edb001dc..113948d40941 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasip2-1.0.0+wasi-0.2.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasip2-1.0.0+wasi-0.2.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.101.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.101.bazel index 3debce4ea85a..244a8c5b3658 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.101.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.101.bazel @@ -84,12 +84,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.101.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.101.bazel index f859ddcd68b4..b56eaba879c5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.101.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.101.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.101.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.101.bazel index b6d6862a2bcf..5ee795fafbf4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.101.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.101.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.101.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.101.bazel index cfee619986ac..6930d6021e92 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.101.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.101.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.101.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.101.bazel index 2c087bf3c823..948ae73962f6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.101.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.101.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel index d31853499e8a..9a98af20dc9c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.61.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.61.2.bazel index 7a76ed1b4fa9..24e0b959158c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.61.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.61.2.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel index 39e7c75ba657..d48b53ff1423 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.0.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel index c91b2cb3347d..49937afe5810 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.1.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.1.3.bazel index bce46b7307a9..977e17dfc3b4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.1.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.0.bazel index dc214f6dacb7..f50b21712e58 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.0.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.3.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.3.4.bazel index 1e0a303b959f..e5cec242987c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.3.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.3.4.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.4.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.4.2.bazel index cb5f79c5e8ca..412effdf6dbc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.4.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.4.2.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel index 8e8b30891c17..7e31f8f08808 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.52.0.bazel @@ -81,12 +81,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel index 429981ce0402..f744a0937da7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel index 6904a3890972..1d83a074bfd0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel @@ -84,12 +84,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.0.bazel index 0e9f1f723ed3..ba1daef32f2f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.0.bazel @@ -86,12 +86,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.52.6.bazel index ebc4d23015eb..cd7e40af7c32 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.52.6.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.3.bazel index 74f5aa79ab0d..d719429a8dc0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.3.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel index d9528c09f761..ef1741d80d44 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel index 6d4e29a973df..602461b5c351 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel index 81ac31846191..f9a5577d6548 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel index 7f892eceb07c..e69571a86c9d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.52.6.bazel index 8946e3dae8c0..a1a0cbcda3a7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel index 5421c3221b09..ae4bfaa33b33 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel index 7c6704de1303..0188a24e0214 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel index ec895ba6728c..27afbde319da 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.52.6.bazel index 714cbd2a786e..06d2929a45f6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel index 442a155b5ef5..7772ad2658c3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel index 627d5812cfde..9520c81c38ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel index 5ed7b8685f45..8c35bce1d558 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel index a7d85c18b4ef..b73914ecb7c5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel index 01065e2d8203..6d9af145384c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel index 6b5b8ea93853..6cfc3a6ef6f8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel index 8dac1ae2733d..6886d7c018a5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel index 8ac650c5d96c..3d741c7c1216 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-0.45.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-0.45.1.bazel index a34a3e6b17dc..b1993606fb8e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-0.45.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wit-bindgen-0.45.1.bazel @@ -74,12 +74,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel index 4fcd2d17feb6..91386e84b83e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel @@ -70,12 +70,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel index bd4b2f2df671..33212c84bf0e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel @@ -75,12 +75,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel index 94aab2f51b56..5a2396ce8c29 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel index 98706c66018c..b1f81925305c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.27.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.27.bazel index a35e65a1f4d0..9e99c8ff5caf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.27.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.27.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.27.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.27.bazel index 7342159d2558..0b0f63f88cc2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.27.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.27.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel index ff66227ba596..35d1978548b5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel index b1ccbb6a85d7..6e1f2b132548 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel index 68bcc2fdf62c..94342aec8e36 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel @@ -77,12 +77,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.4.bazel index 5b82e659f327..931a800f5d0b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.4.bazel @@ -78,12 +78,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel index 29b50b11ae3d..820d85f680fd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel @@ -70,12 +70,16 @@ rust_proc_macro( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel index 587eab5d90b6..2cb5eb09652d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.13.3.bazel @@ -76,12 +76,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel index 4ac45c9e1ba9..f51a0c3a30e7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-7.2.4.bazel @@ -80,12 +80,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel index 8f03d8a3bf74..060e52d4a080 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.0.16+zstd.1.5.7.bazel @@ -79,12 +79,16 @@ rust_library( "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], "@rules_rust//rust/platform:thumbv7em-none-eabi": [], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], "@rules_rust//rust/platform:wasm32-unknown-unknown": [], "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], "@rules_rust//rust/platform:x86_64-apple-darwin": [], "@rules_rust//rust/platform:x86_64-apple-ios": [], "@rules_rust//rust/platform:x86_64-linux-android": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl index 4d7205ad951e..a56d266ab746 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl @@ -588,25 +588,25 @@ _CONDITIONS = { "armv7-linux-androideabi": ["@rules_rust//rust/platform:armv7-linux-androideabi"], "armv7-unknown-linux-gnueabi": ["@rules_rust//rust/platform:armv7-unknown-linux-gnueabi"], "cfg(all(any(target_arch = \"x86_64\", target_arch = \"arm64ec\"), target_env = \"msvc\", not(windows_raw_dylib)))": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"], - "cfg(all(any(target_os = \"linux\", target_os = \"android\"), not(any(all(target_os = \"linux\", target_env = \"\"), getrandom_backend = \"custom\", getrandom_backend = \"linux_raw\", getrandom_backend = \"rdrand\", getrandom_backend = \"rndr\"))))": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], + "cfg(all(any(target_os = \"linux\", target_os = \"android\"), not(any(all(target_os = \"linux\", target_env = \"\"), getrandom_backend = \"custom\", getrandom_backend = \"linux_raw\", getrandom_backend = \"rdrand\", getrandom_backend = \"rndr\"))))": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(all(target_arch = \"aarch64\", target_env = \"msvc\", not(windows_raw_dylib)))": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc"], "cfg(all(target_arch = \"wasm32\", target_os = \"unknown\"))": ["@rules_rust//rust/platform:wasm32-unknown-unknown"], - "cfg(all(target_arch = \"wasm32\", target_os = \"wasi\", target_env = \"p2\"))": [], + "cfg(all(target_arch = \"wasm32\", target_os = \"wasi\", target_env = \"p2\"))": ["@rules_rust//rust/platform:wasm32-wasip2"], "cfg(all(target_arch = \"x86\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": ["@rules_rust//rust/platform:i686-unknown-linux-gnu"], "cfg(all(target_arch = \"x86\", target_env = \"msvc\", not(windows_raw_dylib)))": ["@rules_rust//rust/platform:i686-pc-windows-msvc"], "cfg(all(target_arch = \"x86_64\", target_env = \"gnu\", not(target_abi = \"llvm\"), not(windows_raw_dylib)))": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], - "cfg(all(target_os = \"linux\", not(target_env = \"ohos\")))": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], - "cfg(all(target_os = \"linux\", target_env = \"gnu\"))": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], + "cfg(all(target_os = \"linux\", not(target_env = \"ohos\")))": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], + "cfg(all(target_os = \"linux\", target_env = \"gnu\"))": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(all(target_os = \"uefi\", getrandom_backend = \"efi_rng\"))": [], "cfg(any())": [], "cfg(any(target_os = \"dragonfly\", target_os = \"freebsd\", target_os = \"hurd\", target_os = \"illumos\", target_os = \"cygwin\", all(target_os = \"horizon\", target_arch = \"arm\")))": ["@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-freebsd"], "cfg(any(target_os = \"freebsd\", target_os = \"openbsd\", target_os = \"netbsd\", target_os = \"dragonflybsd\", target_os = \"ios\"))": ["@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-unknown-freebsd"], "cfg(any(target_os = \"haiku\", target_os = \"redox\", target_os = \"nto\", target_os = \"aix\"))": ["@rules_rust//rust/platform:aarch64-unknown-nto-qnx710"], "cfg(any(target_os = \"ios\", target_os = \"visionos\", target_os = \"watchos\", target_os = \"tvos\"))": ["@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:x86_64-apple-ios"], - "cfg(any(target_os = \"linux\", target_os = \"android\"))": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], - "cfg(any(target_os = \"macos\", target_os = \"openbsd\", target_os = \"vita\", target_os = \"emscripten\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-darwin"], - "cfg(any(target_pointer_width = \"8\", target_pointer_width = \"16\", target_pointer_width = \"32\"))": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1"], - "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:aarch64-unknown-uefi", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none", "@rules_rust//rust/platform:x86_64-unknown-uefi"], + "cfg(any(target_os = \"linux\", target_os = \"android\"))": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], + "cfg(any(target_os = \"macos\", target_os = \"openbsd\", target_os = \"vita\", target_os = \"emscripten\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:x86_64-apple-darwin"], + "cfg(any(target_pointer_width = \"8\", target_pointer_width = \"16\", target_pointer_width = \"32\"))": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2"], + "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:aarch64-unknown-uefi", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none", "@rules_rust//rust/platform:x86_64-unknown-uefi"], "cfg(target_os = \"android\")": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:x86_64-linux-android"], "cfg(target_os = \"haiku\")": [], "cfg(target_os = \"hermit\")": [], @@ -615,10 +615,10 @@ _CONDITIONS = { "cfg(target_os = \"redox\")": [], "cfg(target_os = \"solaris\")": [], "cfg(target_os = \"vxworks\")": [], - "cfg(target_os = \"wasi\")": ["@rules_rust//rust/platform:wasm32-wasip1"], + "cfg(target_os = \"wasi\")": ["@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2"], "cfg(target_os = \"windows\")": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"], "cfg(target_vendor = \"apple\")": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios"], - "cfg(unix)": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], + "cfg(unix)": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(windows)": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"], "cfg(windows_raw_dylib)": [], "i686-apple-darwin": ["@rules_rust//rust/platform:i686-apple-darwin"], @@ -629,12 +629,16 @@ _CONDITIONS = { "i686-unknown-linux-gnu": ["@rules_rust//rust/platform:i686-unknown-linux-gnu"], "powerpc-unknown-linux-gnu": ["@rules_rust//rust/platform:powerpc-unknown-linux-gnu"], "riscv32imc-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imc-unknown-none-elf"], + "riscv64gc-unknown-linux-gnu": ["@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu"], "riscv64gc-unknown-none-elf": ["@rules_rust//rust/platform:riscv64gc-unknown-none-elf"], "s390x-unknown-linux-gnu": ["@rules_rust//rust/platform:s390x-unknown-linux-gnu"], "thumbv7em-none-eabi": ["@rules_rust//rust/platform:thumbv7em-none-eabi"], "thumbv8m.main-none-eabi": ["@rules_rust//rust/platform:thumbv8m.main-none-eabi"], + "wasm32-unknown-emscripten": ["@rules_rust//rust/platform:wasm32-unknown-emscripten"], "wasm32-unknown-unknown": ["@rules_rust//rust/platform:wasm32-unknown-unknown"], "wasm32-wasip1": ["@rules_rust//rust/platform:wasm32-wasip1"], + "wasm32-wasip1-threads": ["@rules_rust//rust/platform:wasm32-wasip1-threads"], + "wasm32-wasip2": ["@rules_rust//rust/platform:wasm32-wasip2"], "x86_64-apple-darwin": ["@rules_rust//rust/platform:x86_64-apple-darwin"], "x86_64-apple-ios": ["@rules_rust//rust/platform:x86_64-apple-ios"], "x86_64-linux-android": ["@rules_rust//rust/platform:x86_64-linux-android"], diff --git a/misc/bazel/pkg.bzl b/misc/bazel/pkg.bzl index d8f69c5f748a..25f2bf3577d0 100644 --- a/misc/bazel/pkg.bzl +++ b/misc/bazel/pkg.bzl @@ -3,12 +3,11 @@ Wrappers and helpers around `rules_pkg` to build codeql packs. """ load("@bazel_skylib//lib:paths.bzl", "paths") -load("@bazel_skylib//rules:native_binary.bzl", "native_test") load("@rules_pkg//pkg:install.bzl", "pkg_install") load("@rules_pkg//pkg:mappings.bzl", "pkg_attributes", "pkg_filegroup", "pkg_files", _strip_prefix = "strip_prefix") load("@rules_pkg//pkg:pkg.bzl", "pkg_zip") load("@rules_pkg//pkg:providers.bzl", "PackageFilegroupInfo", "PackageFilesInfo") -load("@rules_python//python:defs.bzl", "py_binary") +load("@rules_python//python:defs.bzl", "py_binary", "py_test") load("//misc/bazel:os.bzl", "OS_DETECTION_ATTRS", "os_select") def _make_internal(name): @@ -366,28 +365,29 @@ def _codeql_pack_install(name, srcs, install_dest = None, build_file_label = Non ] if build_file_label else []) + ( ["--destdir", "\"%s\"" % install_dest] if install_dest else [] ) - py_binary( - name = name, + installer_args = dict( srcs = [Label("//misc/bazel/internal:install.py")], main = Label("//misc/bazel/internal:install.py"), deps = ["@rules_python//python/runfiles"], data = data, args = args, ) + py_binary( + name = name, + **installer_args + ) # this hack is meant to be an optimization when using install for tests, where # the install step is skipped if nothing changed. If the installation directory # is somehow messed up, `bazel run` can be used to force install - native_test( + py_test( name = internal("as", "test"), - src = name, tags = [ "manual", # avoid having this picked up by `...`, `:all` or `:*` "local", # make sure installation does not run sandboxed ], - data = data, - args = args, size = "small", + **installer_args ) def codeql_pack_group(name, srcs, visibility = None, skip_installer = False, prefix = "", install_dest = None, build_file_label = None, compression_level = 6): diff --git a/misc/scripts/create-change-note.py b/misc/scripts/create-change-note.py index 1a13a0cf1148..1de42126c90c 100755 --- a/misc/scripts/create-change-note.py +++ b/misc/scripts/create-change-note.py @@ -7,7 +7,7 @@ # - What language the change note is for # - Whether it's a query or library change (the string `src` or `lib`) # - The name of the change note (in kebab-case) -# - The category of the change. +# - The category of the change (see https://github.com/github/codeql/blob/main/docs/change-notes.md#change-categories). # The change note will be created in the `{language}/ql/{subdir}/change-notes` directory, where `subdir` is either `src` or `lib`. diff --git a/misc/scripts/patch_query_history.py b/misc/scripts/patch_query_history.py new file mode 100644 index 000000000000..e30d3b003d08 --- /dev/null +++ b/misc/scripts/patch_query_history.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +"""Duplicate the last CodeQL query history entry, pointing it at a given evaluator log. + +Behavior: +1. Locate the most relevant ``workspace-query-history.json`` (supports local & remote VS Code). +2. Duplicate the final object in ``queries``. +3. Generate a fresh random ID and a new timestamp. +4. Set ``jsonEvalLogSummaryLocation`` to the provided summary file path. +5. Set ``initialInfo.userSpecifiedLabel`` to ``Evaluator log at /`` (last 2 path parts). +6. Write back atomically. + +Usage: python3 misc/scripts/patch_query_history.py /path/to/evaluator-log.summary.jsonl +""" +from __future__ import annotations +import argparse +import json, os, random, string, tempfile, sys +from pathlib import Path +from typing import List +from datetime import datetime, timezone +import copy + + +# Extension folder segment for CodeQL extension query history +EXT_SEGMENT = "GitHub.vscode-codeql" +HISTORY_FILENAME = "workspace-query-history.json" +WORKSPACE_JSON = "workspace.json" + +def candidate_user_data_dirs() -> List[Path]: + """Return plausible VS Code user data dirs (ordered, deduped).""" + home = Path.home() + env = os.environ + override = env.get("VSCODE_USER_DATA_DIR") + bases: List[Path] = [] + if override: + bases.append(Path(override).expanduser()) + if os.name == "nt": + appdata = env.get("APPDATA") + if appdata: + bases.append(Path(appdata) / "Code" / "User") + elif sys.platform == "darwin": # macOS inline check + bases.append(home / "Library" / "Application Support" / "Code" / "User") + else: + bases.append(home / ".config" / "Code" / "User") + # Remote / server variants + bases.extend([ + home / ".vscode-remote" / "data" / "User", + home / ".vscode-server" / "data" / "User", + home / ".vscode" / "data" / "User", + ]) + seen: set[Path] = set() + ordered: List[Path] = [] + for b in bases: + if b not in seen: + seen.add(b) + ordered.append(b) + return ordered + + +def find_history_files() -> List[Path]: + """Return all candidate history files sorted by descending modification time. + """ + candidates: List[Path] = [] + for base in candidate_user_data_dirs(): + storage_root = base / "workspaceStorage" + if not storage_root.is_dir(): + continue + for ws_entry in storage_root.iterdir(): + if not ws_entry.is_dir(): + continue + history_file = ws_entry / EXT_SEGMENT / HISTORY_FILENAME + if history_file.is_file(): + candidates.append(history_file) + candidates.sort(key=lambda p: p.stat().st_mtime, reverse=True) + return candidates + +def _generate_new_id() -> str: + """Return a new random id (24 chars from allowed set, prefixed with 'evaluator-log-' for stability).""" + alphabet = string.ascii_letters + string.digits + "_-" + return "evaluator-log-" + "".join(random.choice(alphabet) for _ in range(23)) + +def atomic_write_json(target: Path, obj) -> None: + fd, tmp = tempfile.mkstemp(dir=str(target.parent), prefix="history.", suffix=".json") + try: + with os.fdopen(fd, "w", encoding="utf-8") as out: + json.dump(obj, out, ensure_ascii=False, indent=2) + out.write("\n") + os.replace(tmp, target) + finally: + if os.path.exists(tmp): + try: + os.remove(tmp) + except OSError: + pass + +def _duplicate_last_entry(path: Path, summary_path: Path) -> dict: + try: + data = json.loads(path.read_text(encoding="utf-8")) + except json.JSONDecodeError as e: + raise SystemExit(f"History file JSON is corrupt: {e}") + if not isinstance(data, dict) or not isinstance(data.get("queries"), list): + raise SystemExit("Unexpected history file structure: missing 'queries' list") + queries = data["queries"] + if not queries: + raise SystemExit("History file contains no queries to duplicate. Please run a query in VSCode and try again.") + last = queries[-1] + if not isinstance(last, dict): + raise SystemExit("Last query entry malformed") + payload = copy.deepcopy(last) + initial = payload.setdefault("initialInfo", {}) + if not isinstance(initial, dict): + initial = {} + payload["initialInfo"] = initial + new_id = _generate_new_id() + initial["id"] = new_id + initial["start"] = datetime.now(timezone.utc).isoformat(timespec="milliseconds").replace("+00:00", "Z") + payload["jsonEvalLogSummaryLocation"] = str(summary_path) + parts = list(summary_path.parts) + last_two = "/".join(parts[-2:]) if len(parts) >= 2 else parts[-1] + new_label = f"Evaluator log at {last_two}" + initial["userSpecifiedLabel"] = new_label + queries.append(payload) + atomic_write_json(path, data) + return {"new_id": new_id, "new_label": new_label, "count": len(queries)} + +def main() -> int: + parser = argparse.ArgumentParser(description="Duplicate last CodeQL query history entry, patching summary location and label.") + parser.add_argument("summary_path", type=Path, help="Path to evaluator-log.summary.jsonl file (required).") + args = parser.parse_args() + + summary_path: Path = args.summary_path + if not summary_path.is_file(): + raise SystemExit(f"Summary file does not exist: {summary_path}") + + candidates = find_history_files() + if not candidates: + raise SystemExit("No workspace-query-history.json files found.") + best = candidates[0] + + result = _duplicate_last_entry(best, summary_path) + + print(f"Patched history: {best}") + print(f"Evaluator log summary: {summary_path}") + print(f"New ID: {result['new_id']}") + print(f"Label: {result['new_label']}") + print(f"Total entries: {result['count']}") + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 4cbaa48190df..a6f9fcd2377b 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.33 + +No user-facing changes. + ## 1.0.32 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.33.md b/misc/suite-helpers/change-notes/released/1.0.33.md new file mode 100644 index 000000000000..3a65838479f2 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.33.md @@ -0,0 +1,3 @@ +## 1.0.33 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 7bc5c51ba7bf..914c722b5d98 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.32 +lastReleaseVersion: 1.0.33 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 7715f68107e7..daf9a60662d0 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.33-dev +version: 1.0.34-dev groups: shared warnOnImplicitThis: true diff --git a/python/codeql-extractor.yml b/python/codeql-extractor.yml index c8b51db42e6a..993b1505bd13 100644 --- a/python/codeql-extractor.yml +++ b/python/codeql-extractor.yml @@ -2,6 +2,7 @@ name: "python" display_name: "Python" version: 1.22.1 column_kind: utf32 +overlay_support_version: 20250626 build_modes: - none default_queries: diff --git a/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/old.dbscheme b/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/old.dbscheme new file mode 100644 index 000000000000..6a1f497168da --- /dev/null +++ b/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/old.dbscheme @@ -0,0 +1,1252 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; diff --git a/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/semmlecode.python.dbscheme b/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/semmlecode.python.dbscheme new file mode 100644 index 000000000000..5af903da088e --- /dev/null +++ b/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/semmlecode.python.dbscheme @@ -0,0 +1,1236 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; diff --git a/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/upgrade.properties b/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/upgrade.properties new file mode 100644 index 000000000000..1a7cdb0ad716 --- /dev/null +++ b/python/downgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/upgrade.properties @@ -0,0 +1,4 @@ +description: Add databaseMetadata and overlayChangedFiles relations +compatibility: full +databaseMetadata.rel: delete +overlayChangedFiles.rel: delete diff --git a/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/old.dbscheme b/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/old.dbscheme new file mode 100644 index 000000000000..acf8d3b08ae3 --- /dev/null +++ b/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/old.dbscheme @@ -0,0 +1,1261 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/semmlecode.python.dbscheme b/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/semmlecode.python.dbscheme new file mode 100644 index 000000000000..6a1f497168da --- /dev/null +++ b/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/semmlecode.python.dbscheme @@ -0,0 +1,1252 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; diff --git a/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/upgrade.properties b/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/upgrade.properties new file mode 100644 index 000000000000..63392513719e --- /dev/null +++ b/python/downgrades/acf8d3b08ae3cfac8833d16efbfa5a10fef86819/upgrade.properties @@ -0,0 +1,2 @@ +description: Add @top type +compatibility: full diff --git a/python/extractor/imp.py b/python/extractor/imp.py index 6a0685559fd1..8d703250b671 100644 --- a/python/extractor/imp.py +++ b/python/extractor/imp.py @@ -17,9 +17,16 @@ # Platform doesn't support dynamic loading. create_dynamic = None -from importlib._bootstrap import _ERR_MSG, _exec, _load, _builtin_from_name +from importlib._bootstrap import _exec, _load, _builtin_from_name from importlib._bootstrap_external import SourcelessFileLoader +# In Python 3.14, `_ERR_MSG` was removed in favor of `_ERR_MSG_PREFIX`. +try: + from importlib._bootstrap import _ERR_MSG +except ImportError: + from importlib._bootstrap import _ERR_MSG_PREFIX + _ERR_MSG = _ERR_MSG_PREFIX + '{name!r}' + from importlib import machinery from importlib import util import importlib diff --git a/python/extractor/semmle/dbscheme.template b/python/extractor/semmle/dbscheme.template index 07b65434bbde..6b320aafab6d 100644 --- a/python/extractor/semmle/dbscheme.template +++ b/python/extractor/semmle/dbscheme.template @@ -40,6 +40,22 @@ externalData( string value : string ref ); +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + /*- DEPRECATED: Snapshot date -*/ snapshotDate(unique date snapshotDate : date ref); @@ -420,3 +436,12 @@ py_decorated_object(int object : @py_object ref, @py_object = @py_cobject | @py_flow_node; @py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/extractor/semmle/path_rename.py b/python/extractor/semmle/path_rename.py index 3a72d41e9710..39832d6d96a3 100644 --- a/python/extractor/semmle/path_rename.py +++ b/python/extractor/semmle/path_rename.py @@ -25,7 +25,7 @@ def renamer_from_options_and_env(options, logger): except (AttributeError, ImportError): raise SemmleError("Cannot get renamer from module " + options.renamer) else: - path_transformer = os.environ.get("SEMMLE_PATH_TRANSFORMER", None) + path_transformer = os.environ.get("CODEQL_PATH_TRANSFORMER", None) or os.environ.get("SEMMLE_PATH_TRANSFORMER", None) if path_transformer: logger.info("Using path transformer '%s'", path_transformer) rename = projectlayout.get_renamer(path_transformer) diff --git a/python/extractor/semmle/projectlayout.py b/python/extractor/semmle/projectlayout.py index ec657d2ae24d..2886f9e9e4d3 100644 --- a/python/extractor/semmle/projectlayout.py +++ b/python/extractor/semmle/projectlayout.py @@ -12,12 +12,16 @@ import re from functools import total_ordering import sys +from pathlib import PureWindowsPath +import os def get_renamer(filename): layout = load(filename) def rename(path): renamed = layout.artificial_path(path) return path if renamed is None else renamed + if os.name == "nt": + return lambda path: rename(PureWindowsPath(path).as_posix()) return rename def load(filename): @@ -257,7 +261,7 @@ def __init__(self, path, line, virtual=None): exclude = path self._line = line; self._original = u'-' + exclude; - if not exclude.startswith(u"/"): + if os.name != 'nt' and not exclude.startswith(u"/"): exclude = u'/' + exclude if exclude.find(u"//") != -1: raise _error(u"Illegal '//' in exclude path", line) @@ -274,14 +278,14 @@ def __init__(self, path, line, virtual=None): include = path self._line = line; self._original = include; - if not include.startswith(u"/"): + if os.name != 'nt' and not include.startswith(u"/"): include = u'/' + include doubleslash = include.find(u"//") if doubleslash != include.find(u"//"): raise _error(u"More than one '//' in include path (project-layout)", line) if self._verify_stars.match(include): raise _error(u"Illegal use of '**' in include path (project-layout)", line) - if not virtual.startswith(u"/"): + if os.name != 'nt' and not virtual.startswith(u"/"): virtual = u"/" + virtual if virtual.endswith(u"/"): virtual = virtual[0 : -1] diff --git a/python/extractor/semmle/util.py b/python/extractor/semmle/util.py index 8196f76e4375..2f6a18ac7a97 100644 --- a/python/extractor/semmle/util.py +++ b/python/extractor/semmle/util.py @@ -10,7 +10,7 @@ #Semantic version of extractor. #Update this if any changes are made -VERSION = "7.1.4" +VERSION = "7.1.5" PY_EXTENSIONS = ".py", ".pyw" diff --git a/python/extractor/semmle/worker.py b/python/extractor/semmle/worker.py index 726c2c90c3b8..96761a01c77e 100644 --- a/python/extractor/semmle/worker.py +++ b/python/extractor/semmle/worker.py @@ -11,6 +11,7 @@ from semmle.profiling import get_profiler from semmle.path_rename import renamer_from_options_and_env from semmle.logging import WARN, recursion_error_message, internal_error_message, Logger +from semmle.util import FileExtractable, FolderExtractable class ExtractorFailure(Exception): 'Generic exception representing the failure of an extractor.' @@ -19,17 +20,32 @@ class ExtractorFailure(Exception): class ModuleImportGraph(object): - def __init__(self, max_depth): + def __init__(self, max_depth, logger: Logger): self.modules = {} self.succ = defaultdict(set) self.todo = set() self.done = set() self.max_depth = max_depth + self.logger = logger + + # During overlay extraction, only traverse the files that were changed. + self.overlay_changes = None + if 'CODEQL_EXTRACTOR_PYTHON_OVERLAY_CHANGES' in os.environ: + overlay_changes_file = os.environ['CODEQL_EXTRACTOR_PYTHON_OVERLAY_CHANGES'] + logger.info("Overlay extraction mode: only extracting files changed according to '%s'", overlay_changes_file) + try: + with open(overlay_changes_file, 'r', encoding='utf-8') as f: + data = json.load(f) + changed_paths = data.get('changes', []) + self.overlay_changes = { os.path.abspath(p) for p in changed_paths } + except (IOError, ValueError) as e: + logger.warn("Failed to read overlay changes from '%s' (falling back to full extraction): %s", overlay_changes_file, e) + self.overlay_changes = None def add_root(self, mod): self.modules[mod] = 0 if mod not in self.done: - self.todo.add(mod) + self.add_todo(mod) def add_import(self, mod, imported): assert mod in self.modules @@ -39,7 +55,7 @@ def add_import(self, mod, imported): self._reduce_depth(imported, self.modules[mod] + 1) else: if self.modules[mod] < self.max_depth and imported not in self.done: - self.todo.add(imported) + self.add_todo(imported) self.modules[imported] = self.modules[mod] + 1 def _reduce_depth(self, mod, depth): @@ -48,7 +64,7 @@ def _reduce_depth(self, mod, depth): if depth > self.max_depth: return if mod not in self.done: - self.todo.add(mod) + self.add_todo(mod) self.modules[mod] = depth for imp in self.succ[mod]: self._reduce_depth(imp, depth+1) @@ -61,11 +77,25 @@ def get(self): def push_back(self, mod): self.done.remove(mod) - self.todo.add(mod) + self.add_todo(mod) def empty(self): return not self.todo + def add_todo(self, mod): + if not self._module_in_overlay_changes(mod): + self.logger.debug("Skipping module '%s' as it was not changed in overlay extraction.", mod) + return + self.todo.add(mod) + + def _module_in_overlay_changes(self, mod): + if self.overlay_changes is not None: + if isinstance(mod, FileExtractable): + return mod.path in self.overlay_changes + if isinstance(mod, FolderExtractable): + return mod.path + '/__init__.py' in self.overlay_changes + return True + class ExtractorPool(object): '''Pool of worker processes running extractors''' @@ -90,7 +120,7 @@ def __init__(self, outdir, archive, proc_count, options, logger: Logger): self.enqueued = set() self.done = set() self.requirements = {} - self.import_graph = ModuleImportGraph(options.max_import_depth) + self.import_graph = ModuleImportGraph(options.max_import_depth, logger) logger.debug("Source archive: %s", archive) self.logger = logger DiagnosticsWriter.create_output_dir() @@ -162,6 +192,10 @@ def close(self): self.module_queue.put(None) for p in self.procs: p.join() + if 'CODEQL_EXTRACTOR_PYTHON_OVERLAY_BASE_METADATA_OUT' in os.environ: + with open(os.environ['CODEQL_EXTRACTOR_PYTHON_OVERLAY_BASE_METADATA_OUT'], 'w', encoding='utf-8') as f: + metadata = {} + json.dump(metadata, f) self.logger.info("Processed %d modules in %0.2fs", len(self.import_graph.done), time.time() - self.start_time) def stop(self, timeout=2.0): diff --git a/python/extractor/tests/test_use_projectlayout.py b/python/extractor/tests/test_use_projectlayout.py index fde36016f97d..a573044b0b46 100644 --- a/python/extractor/tests/test_use_projectlayout.py +++ b/python/extractor/tests/test_use_projectlayout.py @@ -19,7 +19,7 @@ def test_layout(self): def test_invalid_layout(self): try: - with environment("SEMMLE_PATH_TRANSFORMER", "nonsuch/project-layout"): + with environment("CODEQL_PATH_TRANSFORMER", "nonsuch/project-layout"): self.run_extractor("-R", self.src_path) except subprocess.CalledProcessError as ex: self.assertEqual(ex.returncode, 2) diff --git a/python/ql/consistency-queries/OverlayDiscardConsistency.ql b/python/ql/consistency-queries/OverlayDiscardConsistency.ql new file mode 100644 index 000000000000..d37afe1f9190 --- /dev/null +++ b/python/ql/consistency-queries/OverlayDiscardConsistency.ql @@ -0,0 +1 @@ +import semmle.python.internal.OverlayDiscardConsistencyQuery diff --git a/python/ql/integration-tests/query-suite/python-code-scanning.qls.expected b/python/ql/integration-tests/query-suite/python-code-scanning.qls.expected index 4db5af9c1a2f..90885318d0d8 100644 --- a/python/ql/integration-tests/query-suite/python-code-scanning.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-scanning.qls.expected @@ -13,8 +13,10 @@ ql/python/ql/src/Security/CWE-079/ReflectedXss.ql ql/python/ql/src/Security/CWE-089/SqlInjection.ql ql/python/ql/src/Security/CWE-090/LdapInjection.ql ql/python/ql/src/Security/CWE-094/CodeInjection.ql +ql/python/ql/src/Security/CWE-1004/NonHttpOnlyCookie.ql ql/python/ql/src/Security/CWE-113/HeaderInjection.ql ql/python/ql/src/Security/CWE-116/BadTagFilter.ql +ql/python/ql/src/Security/CWE-1275/SameSiteNoneCookie.ql ql/python/ql/src/Security/CWE-209/StackTraceExposure.ql ql/python/ql/src/Security/CWE-215/FlaskDebug.ql ql/python/ql/src/Security/CWE-285/PamAuthorization.ql diff --git a/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected b/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected index faa4204c3c71..11b75dd0ee39 100644 --- a/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected +++ b/python/ql/integration-tests/query-suite/python-security-and-quality.qls.expected @@ -106,9 +106,11 @@ ql/python/ql/src/Security/CWE-079/ReflectedXss.ql ql/python/ql/src/Security/CWE-089/SqlInjection.ql ql/python/ql/src/Security/CWE-090/LdapInjection.ql ql/python/ql/src/Security/CWE-094/CodeInjection.ql +ql/python/ql/src/Security/CWE-1004/NonHttpOnlyCookie.ql ql/python/ql/src/Security/CWE-113/HeaderInjection.ql ql/python/ql/src/Security/CWE-116/BadTagFilter.ql ql/python/ql/src/Security/CWE-117/LogInjection.ql +ql/python/ql/src/Security/CWE-1275/SameSiteNoneCookie.ql ql/python/ql/src/Security/CWE-209/StackTraceExposure.ql ql/python/ql/src/Security/CWE-215/FlaskDebug.ql ql/python/ql/src/Security/CWE-285/PamAuthorization.ql diff --git a/python/ql/integration-tests/query-suite/python-security-extended.qls.expected b/python/ql/integration-tests/query-suite/python-security-extended.qls.expected index 1b255c6a0d05..d677e65c3cfe 100644 --- a/python/ql/integration-tests/query-suite/python-security-extended.qls.expected +++ b/python/ql/integration-tests/query-suite/python-security-extended.qls.expected @@ -16,9 +16,11 @@ ql/python/ql/src/Security/CWE-079/ReflectedXss.ql ql/python/ql/src/Security/CWE-089/SqlInjection.ql ql/python/ql/src/Security/CWE-090/LdapInjection.ql ql/python/ql/src/Security/CWE-094/CodeInjection.ql +ql/python/ql/src/Security/CWE-1004/NonHttpOnlyCookie.ql ql/python/ql/src/Security/CWE-113/HeaderInjection.ql ql/python/ql/src/Security/CWE-116/BadTagFilter.ql ql/python/ql/src/Security/CWE-117/LogInjection.ql +ql/python/ql/src/Security/CWE-1275/SameSiteNoneCookie.ql ql/python/ql/src/Security/CWE-209/StackTraceExposure.ql ql/python/ql/src/Security/CWE-215/FlaskDebug.ql ql/python/ql/src/Security/CWE-285/PamAuthorization.ql diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 070309c08a05..cb18c48a0510 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 4.0.17 + +### Bug Fixes + +* The Python extractor no longer crashes with an `ImportError` when run using Python 3.14. + ## 4.0.16 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2025-10-02-python-overlay-compilation-plus-extractor.md b/python/ql/lib/change-notes/2025-10-02-python-overlay-compilation-plus-extractor.md new file mode 100644 index 000000000000..5eb698354c1a --- /dev/null +++ b/python/ql/lib/change-notes/2025-10-02-python-overlay-compilation-plus-extractor.md @@ -0,0 +1,5 @@ +--- +category: feature +--- + +* Initial support for incremental Python databases via `codeql database create --overlay-base`/`--overlay-changes`. diff --git a/python/ql/lib/change-notes/released/4.0.17.md b/python/ql/lib/change-notes/released/4.0.17.md new file mode 100644 index 000000000000..561e2db6a31c --- /dev/null +++ b/python/ql/lib/change-notes/released/4.0.17.md @@ -0,0 +1,5 @@ +## 4.0.17 + +### Bug Fixes + +* The Python extractor no longer crashes with an `ImportError` when run using Python 3.14. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 916d99df3ad6..d1339a1f762e 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.0.16 +lastReleaseVersion: 4.0.17 diff --git a/python/ql/lib/python.qll b/python/ql/lib/python.qll index 24744d005a17..b08f0ae35bb1 100644 --- a/python/ql/lib/python.qll +++ b/python/ql/lib/python.qll @@ -37,6 +37,7 @@ import semmle.python.pointsto.CallGraph import semmle.python.objects.ObjectAPI import semmle.python.Unit import site +private import semmle.python.Overlay // Removing this import perturbs the compilation process enough that the points-to analysis gets // compiled -- and cached -- differently depending on whether the data flow library is imported. By // importing it privately here, we ensure that the points-to analysis is compiled the same way. diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 35ab576bf1a9..34d03dc0fada 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 4.0.17-dev +version: 4.0.18-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python @@ -19,3 +19,4 @@ dataExtensions: - semmle/python/frameworks/**/*.model.yml - ext/*.model.yml warnOnImplicitThis: true +compileForOverlayEval: true diff --git a/python/ql/lib/semmle/python/Concepts.qll b/python/ql/lib/semmle/python/Concepts.qll index 16524aaf1dbd..0ca8a4dbef01 100644 --- a/python/ql/lib/semmle/python/Concepts.qll +++ b/python/ql/lib/semmle/python/Concepts.qll @@ -12,6 +12,7 @@ private import semmle.python.dataflow.new.TaintTracking private import semmle.python.Files private import semmle.python.Frameworks private import semmle.python.security.internal.EncryptionKeySizes +private import semmle.python.dataflow.new.SensitiveDataSources private import codeql.threatmodels.ThreatModels private import codeql.concepts.ConceptsShared @@ -1290,6 +1291,18 @@ module Http { */ DataFlow::Node getValueArg() { result = super.getValueArg() } + /** Holds if the name of this cookie indicates it may contain sensitive information. */ + predicate isSensitive() { + exists(DataFlow::Node name | + name = [this.getNameArg(), this.getHeaderArg()] and + ( + DataFlow::localFlow(any(SensitiveDataSource src), name) + or + name = sensitiveLookupStringConst(_) + ) + ) + } + /** * Holds if the `Secure` flag of the cookie is known to have a value of `b`. */ diff --git a/python/ql/lib/semmle/python/Overlay.qll b/python/ql/lib/semmle/python/Overlay.qll new file mode 100644 index 000000000000..fa7828014570 --- /dev/null +++ b/python/ql/lib/semmle/python/Overlay.qll @@ -0,0 +1,355 @@ +/** + * Defines entity discard predicates for Python overlay analysis. + */ + +/*- Predicates -*/ +/** + * Holds always for the overlay variant and never for the base variant. + * This local predicate is used to define local predicates that behave + * differently for the base and overlay variant. + */ +overlay[local] +predicate isOverlay() { databaseMetadata("isOverlay", "true") } + +overlay[local] +private string getPathForLocation(@location loc) { + exists(@file file | locations_default(loc, file, _, _, _, _) | files(file, result)) + or + exists(@py_Module mod | locations_ast(loc, mod, _, _, _, _) | result = getPathForModule(mod)) +} + +overlay[local] +private string getPathForModule(@py_Module mod) { + exists(@container fileOrFolder | py_module_path(mod, fileOrFolder) | + result = getPathForContainer(fileOrFolder) + ) +} + +overlay[local] +private string getPathForContainer(@container fileOrFolder) { + files(fileOrFolder, result) or folders(fileOrFolder, result) +} + +/*- Discardable entities and their discard predicates -*/ +/** Python database entities that use named TRAP IDs; the rest use *-ids. */ +overlay[local] +private class NamedEntity = @py_Module or @container or @py_cobject; + +overlay[discard_entity] +private predicate discardNamedEntity(@top el) { + el instanceof NamedEntity and + // Entities with named IDs can exist both in base, overlay, or both. + exists(Discardable d | d = el | + overlayChangedFiles(d.getPath()) and + not d.existsInOverlay() + ) +} + +overlay[discard_entity] +private predicate discardStarEntity(@top el) { + not el instanceof NamedEntity and + // Entities with *-ids can exist either in base or overlay, but not both. + exists(Discardable d | d = el | + overlayChangedFiles(d.getPath()) and + d.existsInBase() + ) +} + +/** + * An abstract base class for all elements that can be discarded from the base. + */ +overlay[local] +abstract class Discardable extends @top { + /** Gets the path to the file in which this element occurs. */ + abstract string getPath(); + + /** Holds if this element exists in the base variant. */ + predicate existsInBase() { not isOverlay() and exists(this) } + + /** Holds if this element exists in the overlay variant. */ + predicate existsInOverlay() { isOverlay() and exists(this) } + + /** Gets a textual representation of this discardable element. */ + string toString() { none() } +} + +/** + * Discardable locatable AST nodes (`@py_location_parent`). + */ +overlay[local] +final private class DiscardableLocatable extends Discardable instanceof @py_location_parent { + override string getPath() { + exists(@location loc | py_locations(loc, this) | result = getPathForLocation(loc)) + } +} + +/** + * Discardable scopes (classes, functions, modules). + */ +overlay[local] +final private class DiscardableScope extends Discardable instanceof @py_scope { + override string getPath() { + exists(@location loc | py_scope_location(loc, this) | result = getPathForLocation(loc)) + or + result = getPathForModule(this) + } +} + +/** + * Discardable files and folders. + */ +overlay[local] +final private class DiscardableContainer extends Discardable instanceof @container { + override string getPath() { result = getPathForContainer(this) } +} + +/** Discardable control flow nodes */ +overlay[local] +final private class DiscardableCfgNode extends Discardable instanceof @py_flow_node { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_flow_bb_node(this, d.(@py_ast_node), _, _)) + } +} + +/** Discardable Python variables. */ +overlay[local] +final private class DiscardableVar extends Discardable instanceof @py_variable { + override string getPath() { + exists(Discardable parent | result = parent.getPath() | variable(this, parent.(@py_scope), _)) + } +} + +/** Discardable SSA variables. */ +overlay[local] +final private class DiscardableSsaVar extends Discardable instanceof @py_ssa_var { + override string getPath() { + exists(DiscardableVar other | result = other.getPath() | py_ssa_var(this, other)) + } +} + +/** Discardable locations. */ +overlay[local] +final private class DiscardableLocation extends Discardable instanceof @location { + override string getPath() { result = getPathForLocation(this) } +} + +/** Discardable lines. */ +overlay[local] +final private class DiscardableLine extends Discardable instanceof @py_line { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_line_lengths(this, d.(@py_Module), _, _)) + } +} + +/** Discardable string part lists. */ +overlay[local] +final private class DiscardableStringPartList extends Discardable instanceof @py_StringPart_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_StringPart_lists(this, d.(@py_Bytes_or_Str))) + } +} + +/** Discardable alias */ +overlay[local] +final private class DiscardableAlias extends Discardable instanceof @py_alias { + override string getPath() { + exists(DiscardableAliasList d | result = d.getPath() | py_aliases(this, d, _)) + } +} + +/** Discardable alias list */ +overlay[local] +final private class DiscardableAliasList extends Discardable instanceof @py_alias_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_alias_lists(this, d.(@py_Import))) + } +} + +/** Discardable arguments */ +overlay[local] +final private class DiscardableArguments extends Discardable instanceof @py_arguments { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_arguments(this, d.(@py_arguments_parent))) + } +} + +/** Discardable boolop */ +overlay[local] +final private class DiscardableBoolOp extends Discardable instanceof @py_boolop { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_boolops(this, _, d.(@py_BoolExpr))) + } +} + +/** Discardable cmpop */ +overlay[local] +final private class DiscardableCmpOp extends Discardable instanceof @py_cmpop { + override string getPath() { + exists(DiscardableCmpOpList d | result = d.getPath() | py_cmpops(this, _, d, _)) + } +} + +/** Discardable cmpop list */ +overlay[local] +final private class DiscardableCmpOpList extends Discardable instanceof @py_cmpop_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_cmpop_lists(this, d.(@py_Compare))) + } +} + +/** Discardable comprehension list */ +overlay[local] +final private class DiscardableComprehensionList extends Discardable instanceof @py_comprehension_list +{ + override string getPath() { + exists(Discardable d | result = d.getPath() | py_comprehension_lists(this, d.(@py_ListComp))) + } +} + +/** Discardable dict item list */ +overlay[local] +final private class DiscardableDictItemList extends Discardable instanceof @py_dict_item_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | + py_dict_item_lists(this, d.(@py_dict_item_list_parent)) + ) + } +} + +/** Discardable expr context */ +overlay[local] +final private class DiscardableExprContext extends Discardable instanceof @py_expr_context { + override string getPath() { + exists(Discardable d | result = d.getPath() | + py_expr_contexts(this, _, d.(@py_expr_context_parent)) + ) + } +} + +/** Discardable expr list */ +overlay[local] +final private class DiscardableExprList extends Discardable instanceof @py_expr_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_expr_lists(this, d.(@py_expr_list_parent), _)) + } +} + +/** Discardable operator */ +overlay[local] +final private class DiscardableOperator extends Discardable instanceof @py_operator { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_operators(this, _, d.(@py_BinaryExpr))) + } +} + +/** Discardable parameter list */ +overlay[local] +final private class DiscardableParameterList extends Discardable instanceof @py_parameter_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_parameter_lists(this, d.(@py_Function))) + } +} + +/** Discardable pattern list */ +overlay[local] +final private class DiscardablePatternList extends Discardable instanceof @py_pattern_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | + py_pattern_lists(this, d.(@py_pattern_list_parent), _) + ) + } +} + +/** Discardable stmt list */ +overlay[local] +final private class DiscardableStmtList extends Discardable instanceof @py_stmt_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_stmt_lists(this, d.(@py_stmt_list_parent), _)) + } +} + +/** Discardable str list */ +overlay[local] +final private class DiscardableStrList extends Discardable instanceof @py_str_list { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_str_lists(this, d.(@py_str_list_parent))) + } +} + +/** Discardable type parameter list */ +overlay[local] +final private class DiscardableTypeParameterList extends Discardable instanceof @py_type_parameter_list +{ + override string getPath() { + exists(Discardable d | result = d.getPath() | + py_type_parameter_lists(this, d.(@py_type_parameter_list_parent)) + ) + } +} + +/** Discardable unaryop */ +overlay[local] +final private class DiscardableUnaryOp extends Discardable instanceof @py_unaryop { + override string getPath() { + exists(Discardable d | result = d.getPath() | py_unaryops(this, _, d.(@py_UnaryExpr))) + } +} + +/** Discardable comment */ +overlay[local] +final private class DiscardableComment extends Discardable instanceof @py_comment { + override string getPath() { + exists(DiscardableLocation d | result = d.getPath() | py_comments(this, _, d)) + } +} + +/*- XML -*/ +overlay[local] +final private class DiscardableXmlLocatable extends Discardable instanceof @xmllocatable { + override string getPath() { + exists(@location loc | xmllocations(this, loc) | result = getPathForLocation(loc)) + } +} + +overlay[local] +private predicate overlayXmlExtracted(string path) { + exists(DiscardableXmlLocatable d | not files(d, _) and not xmlNs(d, _, _, _) | + d.existsInOverlay() and + path = d.getPath() + ) +} + +overlay[discard_entity] +private predicate discardXmlLocatable(@xmllocatable el) { + exists(DiscardableXmlLocatable d | d = el | + // The XML extractor is currently not incremental and may extract more + // XML files than those included in `overlayChangedFiles`, so this discard predicate + // handles those files alongside the normal `discardStarEntity` logic. + overlayXmlExtracted(d.getPath()) and + d.existsInBase() + ) +} + +/*- YAML -*/ +overlay[local] +final private class DiscardableYamlLocatable extends Discardable instanceof @yaml_locatable { + override string getPath() { + exists(@location loc | yaml_locations(this, loc) | result = getPathForLocation(loc)) + } +} + +overlay[local] +private predicate overlayYamlExtracted(string path) { + exists(DiscardableYamlLocatable l | l.existsInOverlay() | path = l.getPath()) +} + +overlay[discard_entity] +private predicate discardBaseYamlLocatable(@yaml_locatable el) { + exists(DiscardableYamlLocatable d | d = el | + // The Yaml extractor is currently not incremental and may extract more + // Yaml files than those included in `overlayChangedFiles`, so this discard predicate + // handles those files alongside the normal `discardStarEntity` logic. + overlayYamlExtracted(d.getPath()) and + d.existsInBase() + ) +} diff --git a/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll b/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll index 0e017c4a2295..1a32965d08d7 100644 --- a/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll +++ b/python/ql/lib/semmle/python/dataflow/new/SensitiveDataSources.qll @@ -334,3 +334,5 @@ private module SensitiveDataModeling { } predicate sensitiveDataExtraStepForCalls = SensitiveDataModeling::extraStepForCalls/2; + +predicate sensitiveLookupStringConst = SensitiveDataModeling::sensitiveLookupStringConst/1; diff --git a/python/ql/lib/semmle/python/internal/OverlayDiscardConsistencyQuery.qll b/python/ql/lib/semmle/python/internal/OverlayDiscardConsistencyQuery.qll new file mode 100644 index 000000000000..9cca328b02d5 --- /dev/null +++ b/python/ql/lib/semmle/python/internal/OverlayDiscardConsistencyQuery.qll @@ -0,0 +1,90 @@ +/** + * Provides consistency queries for checking that every database entity + * that can be discarded (i.e. everything but `@py_cobject`) in an overlay + * database is indeed discarded, by proxy of having exactly one `Discardable.getPath()`. + */ + +import python +import semmle.python.Overlay + +class TopWithToString instanceof @top { + string getDbType() { + this instanceof @py_source_element and result = "@source_element" + or + this instanceof @py_object and result = "@py_object" + or + this instanceof @py_base_var and result = "@py_base_var" + or + this instanceof @location and result = "@location" + or + this instanceof @py_line and result = "@py_line" + or + this instanceof @py_comment and result = "@py_comment" + or + this instanceof @py_expr_parent and result = "@py_expr_parent" + or + this instanceof @py_expr_context and result = "@py_expr_context" + or + this instanceof @py_operator and result = "@py_operator" + or + this instanceof @py_boolop and result = "@py_boolop" + or + this instanceof @py_cmpop and result = "@py_cmpop" + or + this instanceof @py_unaryop and result = "@py_unaryop" + or + this instanceof @py_cmpop_list and result = "@py_cmpop_list" + or + this instanceof @py_alias_list and result = "@py_alias_list" + or + this instanceof @py_StringPart_list and result = "@py_StringPart_list" + or + this instanceof @py_comprehension_list and result = "@py_comprehension_list" + or + this instanceof @py_dict_item_list and result = "@py_dict_item_list" + or + this instanceof @py_pattern_list and result = "@py_pattern_list" + or + this instanceof @py_stmt_list and result = "@py_stmt_list" + or + this instanceof @py_str_list and result = "@py_str_list" + or + this instanceof @py_type_parameter_list and result = "@py_type_parameter_list" + or + this instanceof @externalDefect and result = "@externalDefect" + or + this instanceof @externalMetric and result = "@externalMetric" + or + this instanceof @externalDataElement and result = "@externalDataElement" + or + this instanceof @duplication_or_similarity and result = "@duplication_or_similarity" + or + this instanceof @svnentry and result = "@svnentry" + or + this instanceof @xmllocatable and result = "@xmllocatable" + or + this instanceof @yaml_locatable and result = "@yaml_locatable" + } + + string toString() { + result = this.getDbType() + or + not exists(this.getDbType()) and + result = "Unknown type" + } +} + +query predicate consistencyTest(TopWithToString el, string message) { + not el instanceof Discardable and + not el instanceof @py_cobject and // cannot be linked to a path + not el instanceof @externalDataElement and // cannot be linked to a path + message = "Not Discardable" + or + exists(Discardable d, int numPaths | d = el and numPaths = count(d.getPath()) | + numPaths = 0 and + message = "Discardable but no path found" + or + numPaths > 1 and + message = "Discardable but multiple paths found (" + concat(d.getPath(), ", ") + ")" + ) +} diff --git a/python/ql/lib/semmlecode.python.dbscheme b/python/ql/lib/semmlecode.python.dbscheme index 5af903da088e..acf8d3b08ae3 100644 --- a/python/ql/lib/semmlecode.python.dbscheme +++ b/python/ql/lib/semmlecode.python.dbscheme @@ -47,6 +47,22 @@ externalData( string value : string ref ); +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + /*- DEPRECATED: Snapshot date -*/ snapshotDate(unique date snapshotDate : date ref); @@ -1234,3 +1250,12 @@ py_decorated_object(int object : @py_object ref, @py_object = @py_cobject | @py_flow_node; @py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/semmlecode.python.dbscheme.stats b/python/ql/lib/semmlecode.python.dbscheme.stats index 289c04870660..a4060cf9b8e6 100644 --- a/python/ql/lib/semmlecode.python.dbscheme.stats +++ b/python/ql/lib/semmlecode.python.dbscheme.stats @@ -1269,6 +1269,53 @@ +databaseMetadata +1 + + +metadataKey +1 + + +value +1 + + + + +metadataKey +value + + +12 + + + + + +value +metadataKey + + +12 + + + + + + + +overlayChangedFiles +50 + + +path +50 + + + + + snapshotDate 2 diff --git a/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/old.dbscheme b/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/old.dbscheme new file mode 100644 index 000000000000..5af903da088e --- /dev/null +++ b/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/old.dbscheme @@ -0,0 +1,1236 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; diff --git a/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/semmlecode.python.dbscheme b/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/semmlecode.python.dbscheme new file mode 100644 index 000000000000..6a1f497168da --- /dev/null +++ b/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/semmlecode.python.dbscheme @@ -0,0 +1,1252 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; diff --git a/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/upgrade.properties b/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/upgrade.properties new file mode 100644 index 000000000000..52b67d65af75 --- /dev/null +++ b/python/ql/lib/upgrades/5af903da088e3746aa283700a43a779302453523/upgrade.properties @@ -0,0 +1,2 @@ +description: Add databaseMetadata and overlayChangedFiles relations +compatibility: full diff --git a/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/old.dbscheme b/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/old.dbscheme new file mode 100644 index 000000000000..6a1f497168da --- /dev/null +++ b/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/old.dbscheme @@ -0,0 +1,1252 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; diff --git a/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/semmlecode.python.dbscheme b/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/semmlecode.python.dbscheme new file mode 100644 index 000000000000..acf8d3b08ae3 --- /dev/null +++ b/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/semmlecode.python.dbscheme @@ -0,0 +1,1261 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/upgrade.properties b/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/upgrade.properties new file mode 100644 index 000000000000..63392513719e --- /dev/null +++ b/python/ql/lib/upgrades/6a1f497168da2f43828161d3c86db7d4c94c2b53/upgrade.properties @@ -0,0 +1,2 @@ +description: Add @top type +compatibility: full diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index e620dee4fca9..aef1a87136d6 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.6.7 + +No user-facing changes. + ## 1.6.6 ### Minor Analysis Improvements diff --git a/python/ql/src/Classes/CallsToInitDel/SuperclassDelCalledMultipleTimes.qhelp b/python/ql/src/Classes/CallsToInitDel/SuperclassDelCalledMultipleTimes.qhelp index df9c073fcceb..e61627c878fb 100644 --- a/python/ql/src/Classes/CallsToInitDel/SuperclassDelCalledMultipleTimes.qhelp +++ b/python/ql/src/Classes/CallsToInitDel/SuperclassDelCalledMultipleTimes.qhelp @@ -16,7 +16,7 @@ If a superclass finalizer is called multiple times, this may lead to errors such cleaned up properly as expected.

    -

    There are a number of ways that a __del__ method may be be called more than once.

    +

    There are a number of ways that a __del__ method may be called more than once.