diff --git a/.github/workflows/build-ripunzip.yml b/.github/workflows/build-ripunzip.yml
index 3e32b868985..6f1f95ddf8c 100644
--- a/.github/workflows/build-ripunzip.yml
+++ b/.github/workflows/build-ripunzip.yml
@@ -20,7 +20,7 @@ jobs:
os: [ubuntu-22.04, macos-13, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
repository: google/ripunzip
ref: ${{ inputs.ripunzip-version }}
@@ -28,7 +28,7 @@ jobs:
# see https://github.com/sfackler/rust-openssl/issues/183
- if: runner.os == 'Linux'
name: checkout openssl
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
repository: openssl/openssl
path: openssl
diff --git a/.github/workflows/buildifier.yml b/.github/workflows/buildifier.yml
index f3fbf97854c..ac344df588e 100644
--- a/.github/workflows/buildifier.yml
+++ b/.github/workflows/buildifier.yml
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Check bazel formatting
uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
with:
diff --git a/.github/workflows/check-implicit-this.yml b/.github/workflows/check-implicit-this.yml
index f58db399ccb..a109f4bfe55 100644
--- a/.github/workflows/check-implicit-this.yml
+++ b/.github/workflows/check-implicit-this.yml
@@ -16,7 +16,7 @@ jobs:
check:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Check that implicit this warnings is enabled for all packs
shell: bash
run: |
diff --git a/.github/workflows/check-overlay-annotations.yml b/.github/workflows/check-overlay-annotations.yml
index 5369dfd49d0..849cad113c4 100644
--- a/.github/workflows/check-overlay-annotations.yml
+++ b/.github/workflows/check-overlay-annotations.yml
@@ -17,7 +17,7 @@ jobs:
sync:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Check overlay annotations
run: python config/add-overlay-annotations.py --check java
diff --git a/.github/workflows/check-qldoc.yml b/.github/workflows/check-qldoc.yml
index f10e0dc90b9..8fe47bf50f7 100644
--- a/.github/workflows/check-qldoc.yml
+++ b/.github/workflows/check-qldoc.yml
@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
fetch-depth: 2
diff --git a/.github/workflows/check-query-ids.yml b/.github/workflows/check-query-ids.yml
index 8ae19cc3e5f..14d597d44cb 100644
--- a/.github/workflows/check-query-ids.yml
+++ b/.github/workflows/check-query-ids.yml
@@ -19,6 +19,6 @@ jobs:
name: Check query IDs
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Check for duplicate query IDs
run: python3 misc/scripts/check-query-ids.py
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index ba384245e0e..a32732ab6e6 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -37,7 +37,7 @@ jobs:
dotnet-version: 9.0.100
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
diff --git a/.github/workflows/compile-queries.yml b/.github/workflows/compile-queries.yml
index 945515c0c53..36171543cac 100644
--- a/.github/workflows/compile-queries.yml
+++ b/.github/workflows/compile-queries.yml
@@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest-xl
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Setup CodeQL
uses: ./.github/actions/fetch-codeql
with:
diff --git a/.github/workflows/cpp-swift-analysis.yml b/.github/workflows/cpp-swift-analysis.yml
index 18c2708d7b4..f72c13cdd70 100644
--- a/.github/workflows/cpp-swift-analysis.yml
+++ b/.github/workflows/cpp-swift-analysis.yml
@@ -28,7 +28,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml
index ef0b93c50c8..580861af17b 100644
--- a/.github/workflows/csharp-qltest.yml
+++ b/.github/workflows/csharp-qltest.yml
@@ -39,7 +39,7 @@ jobs:
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
@@ -55,7 +55,7 @@ jobs:
stubgentest:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: ./csharp/actions/create-extractor-pack
- name: Run stub generator tests
run: |
diff --git a/.github/workflows/csv-coverage-metrics.yml b/.github/workflows/csv-coverage-metrics.yml
index 08f0e9883ef..c9ec9e602d2 100644
--- a/.github/workflows/csv-coverage-metrics.yml
+++ b/.github/workflows/csv-coverage-metrics.yml
@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Setup CodeQL
uses: ./.github/actions/fetch-codeql
- name: Create empty database
@@ -51,7 +51,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Setup CodeQL
uses: ./.github/actions/fetch-codeql
- name: Create empty database
diff --git a/.github/workflows/csv-coverage-pr-artifacts.yml b/.github/workflows/csv-coverage-pr-artifacts.yml
index cbd92dd47d7..c62de00535e 100644
--- a/.github/workflows/csv-coverage-pr-artifacts.yml
+++ b/.github/workflows/csv-coverage-pr-artifacts.yml
@@ -35,11 +35,11 @@ jobs:
GITHUB_CONTEXT: ${{ toJSON(github.event) }}
run: echo "$GITHUB_CONTEXT"
- name: Clone self (github/codeql) - MERGE
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: merge
- name: Clone self (github/codeql) - BASE
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
fetch-depth: 2
path: base
diff --git a/.github/workflows/csv-coverage-pr-comment.yml b/.github/workflows/csv-coverage-pr-comment.yml
index cf01ef063ac..534725815b4 100644
--- a/.github/workflows/csv-coverage-pr-comment.yml
+++ b/.github/workflows/csv-coverage-pr-comment.yml
@@ -24,7 +24,7 @@ jobs:
GITHUB_CONTEXT: ${{ toJSON(github.event) }}
run: echo "$GITHUB_CONTEXT"
- name: Clone self (github/codeql)
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
diff --git a/.github/workflows/csv-coverage-timeseries.yml b/.github/workflows/csv-coverage-timeseries.yml
index 13dc99b162c..11bc06bee60 100644
--- a/.github/workflows/csv-coverage-timeseries.yml
+++ b/.github/workflows/csv-coverage-timeseries.yml
@@ -12,11 +12,11 @@ jobs:
steps:
- name: Clone self (github/codeql)
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: script
- name: Clone self (github/codeql) for analysis
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: codeqlModels
fetch-depth: 0
diff --git a/.github/workflows/csv-coverage-update.yml b/.github/workflows/csv-coverage-update.yml
index 6b73bff820d..9f7a0b778da 100644
--- a/.github/workflows/csv-coverage-update.yml
+++ b/.github/workflows/csv-coverage-update.yml
@@ -21,7 +21,7 @@ jobs:
GITHUB_CONTEXT: ${{ toJSON(github.event) }}
run: echo "$GITHUB_CONTEXT"
- name: Clone self (github/codeql)
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: ql
fetch-depth: 0
diff --git a/.github/workflows/csv-coverage.yml b/.github/workflows/csv-coverage.yml
index 525f4bfb64c..a1224456410 100644
--- a/.github/workflows/csv-coverage.yml
+++ b/.github/workflows/csv-coverage.yml
@@ -16,11 +16,11 @@ jobs:
steps:
- name: Clone self (github/codeql)
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: script
- name: Clone self (github/codeql) for analysis
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: codeqlModels
ref: ${{ github.event.inputs.qlModelShaOverride || github.ref }}
diff --git a/.github/workflows/fast-forward.yml b/.github/workflows/fast-forward.yml
index dd8fefbc529..d71f8be20f9 100644
--- a/.github/workflows/fast-forward.yml
+++ b/.github/workflows/fast-forward.yml
@@ -26,7 +26,7 @@ jobs:
exit 1
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Git config
shell: bash
diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml
index c30abdd9e5d..6578f09b8df 100644
--- a/.github/workflows/go-tests.yml
+++ b/.github/workflows/go-tests.yml
@@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest-xl
steps:
- name: Check out code
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Run tests
uses: ./go/actions/test
with:
diff --git a/.github/workflows/kotlin-build.yml b/.github/workflows/kotlin-build.yml
index 565c3d3a8ba..71a9f8b525c 100644
--- a/.github/workflows/kotlin-build.yml
+++ b/.github/workflows/kotlin-build.yml
@@ -20,7 +20,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- run: |
bazel query //java/kotlin-extractor/...
# only build the default version as a quick check that we can build from `codeql`
diff --git a/.github/workflows/mad_modelDiff.yml b/.github/workflows/mad_modelDiff.yml
index b0e4a20f2b8..3b96d903e23 100644
--- a/.github/workflows/mad_modelDiff.yml
+++ b/.github/workflows/mad_modelDiff.yml
@@ -28,12 +28,12 @@ jobs:
slug: ${{fromJson(github.event.inputs.projects || '["apache/commons-codec", "apache/commons-io", "apache/commons-beanutils", "apache/commons-logging", "apache/commons-fileupload", "apache/commons-lang", "apache/commons-validator", "apache/commons-csv", "apache/dubbo"]' )}}
steps:
- name: Clone github/codeql from PR
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
if: github.event.pull_request
with:
path: codeql-pr
- name: Clone github/codeql from main
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: codeql-main
ref: main
diff --git a/.github/workflows/mad_regenerate-models.yml b/.github/workflows/mad_regenerate-models.yml
index 61e4f986243..402dd957331 100644
--- a/.github/workflows/mad_regenerate-models.yml
+++ b/.github/workflows/mad_regenerate-models.yml
@@ -30,11 +30,11 @@ jobs:
ref: "placeholder"
steps:
- name: Clone self (github/codeql)
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Setup CodeQL binaries
uses: ./.github/actions/fetch-codeql
- name: Clone repositories
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: repos/${{ matrix.ref }}
ref: ${{ matrix.ref }}
diff --git a/.github/workflows/python-tooling.yml b/.github/workflows/python-tooling.yml
index 19059070878..bab1277dd03 100644
--- a/.github/workflows/python-tooling.yml
+++ b/.github/workflows/python-tooling.yml
@@ -21,7 +21,7 @@ jobs:
check-python-tooling:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: '3.12'
diff --git a/.github/workflows/qhelp-pr-preview.yml b/.github/workflows/qhelp-pr-preview.yml
index be5a42096bb..a152eb7cc09 100644
--- a/.github/workflows/qhelp-pr-preview.yml
+++ b/.github/workflows/qhelp-pr-preview.yml
@@ -43,7 +43,7 @@ jobs:
if-no-files-found: error
retention-days: 1
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
fetch-depth: 2
persist-credentials: false
diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml
index 73833da0549..9c568a9b572 100644
--- a/.github/workflows/ql-for-ql-build.yml
+++ b/.github/workflows/ql-for-ql-build.yml
@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest-xl
steps:
### Build the queries ###
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Find codeql
diff --git a/.github/workflows/ql-for-ql-dataset_measure.yml b/.github/workflows/ql-for-ql-dataset_measure.yml
index c3441ffa407..b4561c04a96 100644
--- a/.github/workflows/ql-for-ql-dataset_measure.yml
+++ b/.github/workflows/ql-for-ql-dataset_measure.yml
@@ -25,7 +25,7 @@ jobs:
- github/codeql
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Find codeql
id: find-codeql
@@ -46,7 +46,7 @@ jobs:
env:
CODEQL: ${{ steps.find-codeql.outputs.codeql-path }}
- name: Checkout ${{ matrix.repo }}
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
repository: ${{ matrix.repo }}
path: ${{ github.workspace }}/repo
@@ -75,7 +75,7 @@ jobs:
runs-on: ubuntu-latest
needs: measure
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: actions/download-artifact@v4
with:
name: measurements
diff --git a/.github/workflows/ql-for-ql-tests.yml b/.github/workflows/ql-for-ql-tests.yml
index 4502dded53f..fdb9da284ce 100644
--- a/.github/workflows/ql-for-ql-tests.yml
+++ b/.github/workflows/ql-for-ql-tests.yml
@@ -24,7 +24,7 @@ jobs:
qltest:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Find codeql
id: find-codeql
uses: github/codeql-action/init@main
@@ -64,7 +64,7 @@ jobs:
needs: [qltest]
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Install GNU tar
if: runner.os == 'macOS'
run: |
diff --git a/.github/workflows/query-list.yml b/.github/workflows/query-list.yml
index a286b9b846b..8c736379f8a 100644
--- a/.github/workflows/query-list.yml
+++ b/.github/workflows/query-list.yml
@@ -23,7 +23,7 @@ jobs:
steps:
- name: Clone self (github/codeql)
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
path: codeql
- name: Set up Python 3.8
@@ -31,7 +31,7 @@ jobs:
with:
python-version: 3.8
- name: Download CodeQL CLI
- # Look under the `codeql` directory, as this is where we checked out the `github/codeql` repo
+ # Look under the `codeql` directory, as this is where we checked out the `github/codeql` repo
uses: ./codeql/.github/actions/fetch-codeql
- name: Build code scanning query list
run: |
diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml
index 343e896151c..39aadef0913 100644
--- a/.github/workflows/ruby-build.yml
+++ b/.github/workflows/ruby-build.yml
@@ -47,7 +47,7 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Install GNU tar
if: runner.os == 'macOS'
run: |
@@ -113,7 +113,7 @@ jobs:
if: github.repository_owner == 'github'
runs-on: ubuntu-latest-xl
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Fetch CodeQL
uses: ./.github/actions/fetch-codeql
- name: Cache compilation cache
@@ -146,7 +146,7 @@ jobs:
runs-on: ubuntu-latest
needs: [build, compile-queries]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: actions/download-artifact@v4
with:
name: ruby.dbscheme
@@ -209,7 +209,7 @@ jobs:
runs-on: ${{ matrix.os }}
needs: [package]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Fetch CodeQL
uses: ./.github/actions/fetch-codeql
diff --git a/.github/workflows/ruby-dataset-measure.yml b/.github/workflows/ruby-dataset-measure.yml
index e3229b15806..a88b23bf3a1 100644
--- a/.github/workflows/ruby-dataset-measure.yml
+++ b/.github/workflows/ruby-dataset-measure.yml
@@ -30,14 +30,14 @@ jobs:
repo: [rails/rails, discourse/discourse, spree/spree, ruby/ruby]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: ./.github/actions/fetch-codeql
- uses: ./ruby/actions/create-extractor-pack
- name: Checkout ${{ matrix.repo }}
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
repository: ${{ matrix.repo }}
path: ${{ github.workspace }}/repo
@@ -62,7 +62,7 @@ jobs:
runs-on: ubuntu-latest
needs: measure
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: actions/download-artifact@v4
with:
path: stats
diff --git a/.github/workflows/ruby-qltest-rtjo.yml b/.github/workflows/ruby-qltest-rtjo.yml
index c2ae9c0cef1..1d57c465538 100644
--- a/.github/workflows/ruby-qltest-rtjo.yml
+++ b/.github/workflows/ruby-qltest-rtjo.yml
@@ -25,7 +25,7 @@ jobs:
strategy:
fail-fast: false
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: ./.github/actions/fetch-codeql
- uses: ./ruby/actions/create-extractor-pack
- name: Cache compilation cache
diff --git a/.github/workflows/ruby-qltest.yml b/.github/workflows/ruby-qltest.yml
index d1518205dab..e178a5dfb6e 100644
--- a/.github/workflows/ruby-qltest.yml
+++ b/.github/workflows/ruby-qltest.yml
@@ -36,7 +36,7 @@ jobs:
qlupgrade:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: ./.github/actions/fetch-codeql
- name: Check DB upgrade scripts
run: |
@@ -58,7 +58,7 @@ jobs:
strategy:
fail-fast: false
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: ./.github/actions/fetch-codeql
- uses: ./ruby/actions/create-extractor-pack
- name: Cache compilation cache
diff --git a/.github/workflows/rust-analysis.yml b/.github/workflows/rust-analysis.yml
index 04028ad594b..397aa2fba51 100644
--- a/.github/workflows/rust-analysis.yml
+++ b/.github/workflows/rust-analysis.yml
@@ -35,7 +35,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Query latest nightly CodeQL bundle
shell: bash
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index cc880072555..34f5efb74ba 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -30,7 +30,7 @@ jobs:
working-directory: rust/ast-generator
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Inject sources
shell: bash
run: |
@@ -53,7 +53,7 @@ jobs:
working-directory: rust/extractor
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Format
shell: bash
run: |
@@ -69,7 +69,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Install CodeQL
uses: ./.github/actions/fetch-codeql
- name: Code generation
diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml
index df610a96702..4a5613f988e 100644
--- a/.github/workflows/swift.yml
+++ b/.github/workflows/swift.yml
@@ -36,7 +36,7 @@ jobs:
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Setup (Linux)
if: runner.os == 'Linux'
run: |
@@ -53,7 +53,7 @@ jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
name: Check that python code is properly formatted
with:
@@ -61,7 +61,7 @@ jobs:
codegen:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: ./.github/actions/fetch-codeql
- uses: pre-commit/action@646c83fcd040023954eafda54b4db0192ce70507
name: Check that QL generated code was checked in
@@ -77,6 +77,6 @@ jobs:
check-no-override:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Check that no override is present in load.bzl
run: bazel test ... --test_tag_filters=override --test_output=errors
diff --git a/.github/workflows/sync-files.yml b/.github/workflows/sync-files.yml
index 1ed49ac3ecf..f7f42f2e5af 100644
--- a/.github/workflows/sync-files.yml
+++ b/.github/workflows/sync-files.yml
@@ -17,7 +17,7 @@ jobs:
sync:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Check synchronized files
run: python config/sync-files.py
- name: Check dbscheme fragments
diff --git a/.github/workflows/tree-sitter-extractor-test.yml b/.github/workflows/tree-sitter-extractor-test.yml
index 9a71e1fc7c5..da5834a7f9f 100644
--- a/.github/workflows/tree-sitter-extractor-test.yml
+++ b/.github/workflows/tree-sitter-extractor-test.yml
@@ -30,7 +30,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Check formatting
run: cargo fmt -- --check
- name: Run tests
@@ -38,12 +38,12 @@ jobs:
fmt:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Check formatting
run: cargo fmt --check
clippy:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Run clippy
run: cargo clippy -- --no-deps -D warnings -A clippy::new_without_default -A clippy::too_many_arguments
diff --git a/.github/workflows/validate-change-notes.yml b/.github/workflows/validate-change-notes.yml
index 42784b661fc..6812d8ff0f6 100644
--- a/.github/workflows/validate-change-notes.yml
+++ b/.github/workflows/validate-change-notes.yml
@@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Setup CodeQL
uses: ./.github/actions/fetch-codeql
diff --git a/.github/workflows/zipmerge-test.yml b/.github/workflows/zipmerge-test.yml
index edae93a90a0..1e7ac195b5a 100644
--- a/.github/workflows/zipmerge-test.yml
+++ b/.github/workflows/zipmerge-test.yml
@@ -18,6 +18,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- run: |
bazel test //misc/bazel/internal/zipmerge:test --test_output=all
diff --git a/actions/extractor/codeql-extractor.yml b/actions/extractor/codeql-extractor.yml
index b8c6f7ed97b..376abe32597 100644
--- a/actions/extractor/codeql-extractor.yml
+++ b/actions/extractor/codeql-extractor.yml
@@ -1,11 +1,12 @@
name: "actions"
-aliases: []
display_name: "GitHub Actions"
version: 0.0.1
column_kind: "utf16"
unicode_newlines: true
build_modes:
- none
+default_queries:
+ - codeql/actions-queries
# Actions workflows are not reported separately by the GitHub API, so we can't
# associate them with a specific language.
github_api_languages: []
diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md
index bd6b24ef487..5009104e9af 100644
--- a/actions/ql/lib/CHANGELOG.md
+++ b/actions/ql/lib/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.16
+
+No user-facing changes.
+
## 0.4.15
No user-facing changes.
diff --git a/actions/ql/lib/change-notes/released/0.4.16.md b/actions/ql/lib/change-notes/released/0.4.16.md
new file mode 100644
index 00000000000..d2472bd981f
--- /dev/null
+++ b/actions/ql/lib/change-notes/released/0.4.16.md
@@ -0,0 +1,3 @@
+## 0.4.16
+
+No user-facing changes.
diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml
index 613c98e4872..0664e01a1dd 100644
--- a/actions/ql/lib/codeql-pack.release.yml
+++ b/actions/ql/lib/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 0.4.15
+lastReleaseVersion: 0.4.16
diff --git a/actions/ql/lib/codeql/Locations.qll b/actions/ql/lib/codeql/Locations.qll
index 96b5d45f18e..24c6ae9cda1 100644
--- a/actions/ql/lib/codeql/Locations.qll
+++ b/actions/ql/lib/codeql/Locations.qll
@@ -70,8 +70,8 @@ class Location extends TLocation, TBaseLocation {
/**
* Holds if this element is at the specified location.
- * The location spans column `startcolumn` of line `startline` to
- * column `endcolumn` of line `endline` in file `filepath`.
+ * The location spans column `sc` of line `sl` to
+ * column `ec` of line `el` in file `p`.
* For more information, see
* [Providing locations in CodeQL queries](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
diff --git a/actions/ql/lib/codeql/actions/Ast.qll b/actions/ql/lib/codeql/actions/Ast.qll
index ae19a7a7e8c..6e76e4cd665 100644
--- a/actions/ql/lib/codeql/actions/Ast.qll
+++ b/actions/ql/lib/codeql/actions/Ast.qll
@@ -261,7 +261,7 @@ class If extends AstNode instanceof IfImpl {
}
/**
- * An Environemnt node representing a deployment environment.
+ * An Environment node representing a deployment environment.
*/
class Environment extends AstNode instanceof EnvironmentImpl {
string getName() { result = super.getName() }
diff --git a/actions/ql/lib/codeql/actions/ast/internal/Ast.qll b/actions/ql/lib/codeql/actions/ast/internal/Ast.qll
index b0cbb8a1d79..b922214e21c 100644
--- a/actions/ql/lib/codeql/actions/ast/internal/Ast.qll
+++ b/actions/ql/lib/codeql/actions/ast/internal/Ast.qll
@@ -125,12 +125,11 @@ abstract class AstNodeImpl extends TAstNode {
* Gets the enclosing Step.
*/
StepImpl getEnclosingStep() {
- if this instanceof StepImpl
- then result = this
- else
- if this instanceof ScalarValueImpl
- then result.getAChildNode*() = this.getParentNode()
- else none()
+ this instanceof StepImpl and
+ result = this
+ or
+ this instanceof ScalarValueImpl and
+ result.getAChildNode*() = this.getParentNode()
}
/**
@@ -1416,9 +1415,8 @@ class ExternalJobImpl extends JobImpl, UsesImpl {
override string getVersion() {
exists(YamlString name |
n.lookup("uses") = name and
- if not name.getValue().matches("\\.%")
- then result = name.getValue().regexpCapture(repoUsesParser(), 4)
- else none()
+ not name.getValue().matches("\\.%") and
+ result = name.getValue().regexpCapture(repoUsesParser(), 4)
)
}
}
diff --git a/actions/ql/lib/codeql/actions/controlflow/BasicBlocks.qll b/actions/ql/lib/codeql/actions/controlflow/BasicBlocks.qll
index af5e0f62552..2dcfd81a47d 100644
--- a/actions/ql/lib/codeql/actions/controlflow/BasicBlocks.qll
+++ b/actions/ql/lib/codeql/actions/controlflow/BasicBlocks.qll
@@ -286,7 +286,7 @@ private module Cached {
/**
* Holds if `cfn` is the `i`th node in basic block `bb`.
*
- * In other words, `i` is the shortest distance from a node `bb`
+ * In other words, `i` is the shortest distance from a node `bbStart`
* that starts a basic block to `cfn` along the `intraBBSucc` relation.
*/
cached
diff --git a/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll b/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll
index 06295e3d88d..38ce9e7e03d 100644
--- a/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll
+++ b/actions/ql/lib/codeql/actions/controlflow/internal/Cfg.qll
@@ -3,6 +3,8 @@ private import codeql.controlflow.Cfg as CfgShared
private import codeql.Locations
module Completion {
+ import codeql.controlflow.SuccessorType
+
private newtype TCompletion =
TSimpleCompletion() or
TBooleanCompletion(boolean b) { b in [false, true] } or
@@ -25,7 +27,7 @@ module Completion {
override predicate isValidFor(AstNode e) { not any(Completion c).isValidForSpecific(e) }
- override NormalSuccessor getAMatchingSuccessorType() { any() }
+ override DirectSuccessor getAMatchingSuccessorType() { any() }
}
class BooleanCompletion extends NormalCompletion, TBooleanCompletion {
@@ -49,34 +51,6 @@ module Completion {
override ReturnSuccessor getAMatchingSuccessorType() { any() }
}
-
- cached
- private newtype TSuccessorType =
- TNormalSuccessor() or
- TBooleanSuccessor(boolean b) { b in [false, true] } or
- TReturnSuccessor()
-
- class SuccessorType extends TSuccessorType {
- string toString() { none() }
- }
-
- class NormalSuccessor extends SuccessorType, TNormalSuccessor {
- override string toString() { result = "successor" }
- }
-
- class BooleanSuccessor extends SuccessorType, TBooleanSuccessor {
- boolean value;
-
- BooleanSuccessor() { this = TBooleanSuccessor(value) }
-
- override string toString() { result = value.toString() }
-
- boolean getValue() { result = value }
- }
-
- class ReturnSuccessor extends SuccessorType, TReturnSuccessor {
- override string toString() { result = "return" }
- }
}
module CfgScope {
@@ -127,14 +101,8 @@ private module Implementation implements CfgShared::InputSig {
last(scope.(CompositeAction), e, c)
}
- predicate successorTypeIsSimple(SuccessorType t) { t instanceof NormalSuccessor }
-
- predicate successorTypeIsCondition(SuccessorType t) { t instanceof BooleanSuccessor }
-
SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() }
- predicate isAbnormalExitType(SuccessorType t) { none() }
-
int idOfAstNode(AstNode node) { none() }
int idOfCfgScope(CfgScope scope) { none() }
diff --git a/actions/ql/lib/codeql/actions/dataflow/ExternalFlow.qll b/actions/ql/lib/codeql/actions/dataflow/ExternalFlow.qll
index 2914dac5f0a..9667c6e525e 100644
--- a/actions/ql/lib/codeql/actions/dataflow/ExternalFlow.qll
+++ b/actions/ql/lib/codeql/actions/dataflow/ExternalFlow.qll
@@ -63,10 +63,10 @@ predicate madSource(DataFlow::Node source, string kind, string fieldName) {
(
if fieldName.trim().matches("env.%")
then source.asExpr() = uses.getInScopeEnvVarExpr(fieldName.trim().replaceAll("env.", ""))
- else
- if fieldName.trim().matches("output.%")
- then source.asExpr() = uses
- else none()
+ else (
+ fieldName.trim().matches("output.%") and
+ source.asExpr() = uses
+ )
)
)
}
diff --git a/actions/ql/lib/codeql/actions/dataflow/FlowSources.qll b/actions/ql/lib/codeql/actions/dataflow/FlowSources.qll
index df3d513d005..18cc4322c81 100644
--- a/actions/ql/lib/codeql/actions/dataflow/FlowSources.qll
+++ b/actions/ql/lib/codeql/actions/dataflow/FlowSources.qll
@@ -31,14 +31,14 @@ abstract class RemoteFlowSource extends SourceNode {
class GitHubCtxSource extends RemoteFlowSource {
string flag;
string event;
- GitHubExpression e;
GitHubCtxSource() {
- this.asExpr() = e and
- // github.head_ref
- e.getFieldName() = "head_ref" and
- flag = "branch" and
- (
+ exists(GitHubExpression e |
+ this.asExpr() = e and
+ // github.head_ref
+ e.getFieldName() = "head_ref" and
+ flag = "branch"
+ |
event = e.getATriggerEvent().getName() and
event = "pull_request_target"
or
@@ -148,7 +148,6 @@ class GhCLICommandSource extends RemoteFlowSource, CommandSource {
class GitHubEventPathSource extends RemoteFlowSource, CommandSource {
string cmd;
string flag;
- string access_path;
Run run;
// Examples
@@ -163,7 +162,7 @@ class GitHubEventPathSource extends RemoteFlowSource, CommandSource {
run.getScript().getACommand() = cmd and
cmd.matches("jq%") and
cmd.matches("%GITHUB_EVENT_PATH%") and
- exists(string regexp |
+ exists(string regexp, string access_path |
untrustedEventPropertiesDataModel(regexp, flag) and
not flag = "json" and
access_path = "github.event" + cmd.regexpCapture(".*\\s+([^\\s]+)\\s+.*", 1) and
diff --git a/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll b/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll
index 679b8977cf9..1795e9493cb 100644
--- a/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll
+++ b/actions/ql/lib/codeql/actions/security/ArgumentInjectionQuery.qll
@@ -19,7 +19,6 @@ abstract class ArgumentInjectionSink extends DataFlow::Node {
*/
class ArgumentInjectionFromEnvVarSink extends ArgumentInjectionSink {
string command;
- string argument;
ArgumentInjectionFromEnvVarSink() {
exists(Run run, string var |
@@ -28,7 +27,7 @@ class ArgumentInjectionFromEnvVarSink extends ArgumentInjectionSink {
exists(run.getInScopeEnvVarExpr(var)) or
var = "GITHUB_HEAD_REF"
) and
- run.getScript().getAnEnvReachingArgumentInjectionSink(var, command, argument)
+ run.getScript().getAnEnvReachingArgumentInjectionSink(var, command, _)
)
}
@@ -44,13 +43,12 @@ class ArgumentInjectionFromEnvVarSink extends ArgumentInjectionSink {
*/
class ArgumentInjectionFromCommandSink extends ArgumentInjectionSink {
string command;
- string argument;
ArgumentInjectionFromCommandSink() {
exists(CommandSource source, Run run |
run = source.getEnclosingRun() and
this.asExpr() = run.getScript() and
- run.getScript().getACmdReachingArgumentInjectionSink(source.getCommand(), command, argument)
+ run.getScript().getACmdReachingArgumentInjectionSink(source.getCommand(), command, _)
)
}
diff --git a/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll b/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll
index 76025a9ba0d..9f3ed33db96 100644
--- a/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll
+++ b/actions/ql/lib/codeql/actions/security/ArtifactPoisoningQuery.qll
@@ -125,8 +125,6 @@ class LegitLabsDownloadArtifactActionStep extends UntrustedArtifactDownloadStep,
}
class ActionsGitHubScriptDownloadStep extends UntrustedArtifactDownloadStep, UsesStep {
- string script;
-
ActionsGitHubScriptDownloadStep() {
// eg:
// - uses: actions/github-script@v6
@@ -149,12 +147,14 @@ class ActionsGitHubScriptDownloadStep extends UntrustedArtifactDownloadStep, Use
// var fs = require('fs');
// fs.writeFileSync('${{github.workspace}}/test-results.zip', Buffer.from(download.data));
this.getCallee() = "actions/github-script" and
- this.getArgument("script") = script and
- script.matches("%listWorkflowRunArtifacts(%") and
- script.matches("%downloadArtifact(%") and
- script.matches("%writeFileSync(%") and
- // Filter out artifacts that were created by pull-request.
- not script.matches("%exclude_pull_requests: true%")
+ exists(string script |
+ this.getArgument("script") = script and
+ script.matches("%listWorkflowRunArtifacts(%") and
+ script.matches("%downloadArtifact(%") and
+ script.matches("%writeFileSync(%") and
+ // Filter out artifacts that were created by pull-request.
+ not script.matches("%exclude_pull_requests: true%")
+ )
}
override string getPath() {
@@ -171,10 +171,10 @@ class ActionsGitHubScriptDownloadStep extends UntrustedArtifactDownloadStep, Use
.getScript()
.getACommand()
.regexpCapture(unzipRegexp() + unzipDirArgRegexp(), 3)))
- else
- if this.getAFollowingStep().(Run).getScript().getACommand().regexpMatch(unzipRegexp())
- then result = "GITHUB_WORKSPACE/"
- else none()
+ else (
+ this.getAFollowingStep().(Run).getScript().getACommand().regexpMatch(unzipRegexp()) and
+ result = "GITHUB_WORKSPACE/"
+ )
}
}
@@ -207,12 +207,13 @@ class GHRunArtifactDownloadStep extends UntrustedArtifactDownloadStep, Run {
.getScript()
.getACommand()
.regexpCapture(unzipRegexp() + unzipDirArgRegexp(), 3)))
- else
- if
+ else (
+ (
this.getAFollowingStep().(Run).getScript().getACommand().regexpMatch(unzipRegexp()) or
this.getScript().getACommand().regexpMatch(unzipRegexp())
- then result = "GITHUB_WORKSPACE/"
- else none()
+ ) and
+ result = "GITHUB_WORKSPACE/"
+ )
}
}
@@ -259,15 +260,15 @@ class DirectArtifactDownloadStep extends UntrustedArtifactDownloadStep, Run {
class ArtifactPoisoningSink extends DataFlow::Node {
UntrustedArtifactDownloadStep download;
- PoisonableStep poisonable;
ArtifactPoisoningSink() {
- download.getAFollowingStep() = poisonable and
- // excluding artifacts downloaded to the temporary directory
- not download.getPath().regexpMatch("^/tmp.*") and
- not download.getPath().regexpMatch("^\\$\\{\\{\\s*runner\\.temp\\s*}}.*") and
- not download.getPath().regexpMatch("^\\$RUNNER_TEMP.*") and
- (
+ exists(PoisonableStep poisonable |
+ download.getAFollowingStep() = poisonable and
+ // excluding artifacts downloaded to the temporary directory
+ not download.getPath().regexpMatch("^/tmp.*") and
+ not download.getPath().regexpMatch("^\\$\\{\\{\\s*runner\\.temp\\s*}}.*") and
+ not download.getPath().regexpMatch("^\\$RUNNER_TEMP.*")
+ |
poisonable.(Run).getScript() = this.asExpr() and
(
// Check if the poisonable step is a local script execution step
diff --git a/actions/ql/lib/codeql/actions/security/ControlChecks.qll b/actions/ql/lib/codeql/actions/security/ControlChecks.qll
index 244c04310d6..41f512abbc3 100644
--- a/actions/ql/lib/codeql/actions/security/ControlChecks.qll
+++ b/actions/ql/lib/codeql/actions/security/ControlChecks.qll
@@ -159,11 +159,8 @@ abstract class CommentVsHeadDateCheck extends ControlCheck {
/* Specific implementations of control checks */
class LabelIfCheck extends LabelCheck instanceof If {
- string condition;
-
LabelIfCheck() {
- condition = normalizeExpr(this.getCondition()) and
- (
+ exists(string condition | condition = normalizeExpr(this.getCondition()) |
// eg: contains(github.event.pull_request.labels.*.name, 'safe to test')
condition.regexpMatch(".*(^|[^!])contains\\(\\s*github\\.event\\.pull_request\\.labels\\b.*")
or
diff --git a/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll b/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll
index 2022e3dca99..ea8a800ef3f 100644
--- a/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll
+++ b/actions/ql/lib/codeql/actions/security/EnvVarInjectionQuery.qll
@@ -55,12 +55,8 @@ class EnvVarInjectionFromFileReadSink extends EnvVarInjectionSink {
* echo "COMMIT_MESSAGE=${COMMIT_MESSAGE}" >> $GITHUB_ENV
*/
class EnvVarInjectionFromCommandSink extends EnvVarInjectionSink {
- CommandSource inCommand;
- string injectedVar;
- string command;
-
EnvVarInjectionFromCommandSink() {
- exists(Run run |
+ exists(Run run, CommandSource inCommand, string injectedVar, string command |
this.asExpr() = inCommand.getEnclosingRun().getScript() and
run = inCommand.getEnclosingRun() and
run.getScript().getACmdReachingGitHubEnvWrite(inCommand.getCommand(), injectedVar) and
@@ -86,12 +82,8 @@ class EnvVarInjectionFromCommandSink extends EnvVarInjectionSink {
* echo "FOO=$BODY" >> $GITHUB_ENV
*/
class EnvVarInjectionFromEnvVarSink extends EnvVarInjectionSink {
- string inVar;
- string injectedVar;
- string command;
-
EnvVarInjectionFromEnvVarSink() {
- exists(Run run |
+ exists(Run run, string inVar, string injectedVar, string command |
run.getScript() = this.asExpr() and
exists(run.getInScopeEnvVarExpr(inVar)) and
run.getScript().getAnEnvReachingGitHubEnvWrite(inVar, injectedVar) and
diff --git a/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll b/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll
index c67d2876b09..4454a5496a2 100644
--- a/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll
+++ b/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll
@@ -99,18 +99,14 @@ class OutputClobberingFromEnvVarSink extends OutputClobberingSink {
* echo $BODY
*/
class WorkflowCommandClobberingFromEnvVarSink extends OutputClobberingSink {
- string clobbering_var;
- string clobbered_value;
-
WorkflowCommandClobberingFromEnvVarSink() {
- exists(Run run, string workflow_cmd_stmt, string clobbering_stmt |
+ exists(Run run, string workflow_cmd_stmt, string clobbering_stmt, string clobbering_var |
run.getScript() = this.asExpr() and
run.getScript().getAStmt() = clobbering_stmt and
clobbering_stmt.regexpMatch("echo\\s+(-e\\s+)?(\"|')?\\$(\\{)?" + clobbering_var + ".*") and
exists(run.getInScopeEnvVarExpr(clobbering_var)) and
run.getScript().getAStmt() = workflow_cmd_stmt and
- clobbered_value =
- trimQuotes(workflow_cmd_stmt.regexpCapture(".*::set-output\\s+name=.*::(.*)", 1))
+ exists(trimQuotes(workflow_cmd_stmt.regexpCapture(".*::set-output\\s+name=.*::(.*)", 1)))
)
}
}
diff --git a/actions/ql/lib/codeql/actions/security/UseOfUnversionedImmutableAction.qll b/actions/ql/lib/codeql/actions/security/UseOfUnversionedImmutableAction.qll
index ef258fce2e5..8595cd1086d 100644
--- a/actions/ql/lib/codeql/actions/security/UseOfUnversionedImmutableAction.qll
+++ b/actions/ql/lib/codeql/actions/security/UseOfUnversionedImmutableAction.qll
@@ -1,10 +1,8 @@
import actions
class UnversionedImmutableAction extends UsesStep {
- string immutable_action;
-
UnversionedImmutableAction() {
- isImmutableAction(this, immutable_action) and
+ isImmutableAction(this, _) and
not isSemVer(this.getVersion())
}
}
diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml
index c10bedbaef6..311ef4d5ef6 100644
--- a/actions/ql/lib/qlpack.yml
+++ b/actions/ql/lib/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/actions-all
-version: 0.4.16-dev
+version: 0.4.17-dev
library: true
warnOnImplicitThis: true
dependencies:
diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md
index 769ce155451..265e67e6a89 100644
--- a/actions/ql/src/CHANGELOG.md
+++ b/actions/ql/src/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.8
+
+No user-facing changes.
+
## 0.6.7
No user-facing changes.
diff --git a/actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.md b/actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.md
index de3307550ad..6060354b134 100644
--- a/actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.md
+++ b/actions/ql/src/Security/CWE-829/UntrustedCheckoutCritical.md
@@ -32,7 +32,7 @@ jobs:
- uses: actions/setup-node@v1
- run: |
- npm install # scripts in package.json from PR would be executed here
+ npm install # scripts in package.json from PR would be executed here
npm build
- uses: completely/fakeaction@v2
diff --git a/actions/ql/src/Security/CWE-829/UntrustedCheckoutHigh.md b/actions/ql/src/Security/CWE-829/UntrustedCheckoutHigh.md
index de3307550ad..6060354b134 100644
--- a/actions/ql/src/Security/CWE-829/UntrustedCheckoutHigh.md
+++ b/actions/ql/src/Security/CWE-829/UntrustedCheckoutHigh.md
@@ -32,7 +32,7 @@ jobs:
- uses: actions/setup-node@v1
- run: |
- npm install # scripts in package.json from PR would be executed here
+ npm install # scripts in package.json from PR would be executed here
npm build
- uses: completely/fakeaction@v2
diff --git a/actions/ql/src/Security/CWE-829/UntrustedCheckoutMedium.md b/actions/ql/src/Security/CWE-829/UntrustedCheckoutMedium.md
index de3307550ad..6060354b134 100644
--- a/actions/ql/src/Security/CWE-829/UntrustedCheckoutMedium.md
+++ b/actions/ql/src/Security/CWE-829/UntrustedCheckoutMedium.md
@@ -32,7 +32,7 @@ jobs:
- uses: actions/setup-node@v1
- run: |
- npm install # scripts in package.json from PR would be executed here
+ npm install # scripts in package.json from PR would be executed here
npm build
- uses: completely/fakeaction@v2
diff --git a/actions/ql/src/change-notes/released/0.6.8.md b/actions/ql/src/change-notes/released/0.6.8.md
new file mode 100644
index 00000000000..9984c422a37
--- /dev/null
+++ b/actions/ql/src/change-notes/released/0.6.8.md
@@ -0,0 +1,3 @@
+## 0.6.8
+
+No user-facing changes.
diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml
index a6d2952e5fb..cad7cba6ce3 100644
--- a/actions/ql/src/codeql-pack.release.yml
+++ b/actions/ql/src/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 0.6.7
+lastReleaseVersion: 0.6.8
diff --git a/actions/ql/src/experimental/Security/CWE-829/ArtifactPoisoningPathTraversal.ql b/actions/ql/src/experimental/Security/CWE-829/ArtifactPoisoningPathTraversal.ql
index 519437ddb22..517a9d1eaad 100644
--- a/actions/ql/src/experimental/Security/CWE-829/ArtifactPoisoningPathTraversal.ql
+++ b/actions/ql/src/experimental/Security/CWE-829/ArtifactPoisoningPathTraversal.ql
@@ -37,8 +37,6 @@ where
)
or
// upload artifact is not used in the same workflow
- not exists(UsesStep upload |
- download.getEnclosingWorkflow().getAJob().(LocalJob).getAStep() = upload
- )
+ not download.getEnclosingWorkflow().getAJob().(LocalJob).getAStep() instanceof UsesStep
)
select download, "Potential artifact poisoning"
diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml
index 11e5bb790b7..4eae56a5c13 100644
--- a/actions/ql/src/qlpack.yml
+++ b/actions/ql/src/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/actions-queries
-version: 0.6.8-dev
+version: 0.6.9-dev
library: false
warnOnImplicitThis: true
groups: [actions, queries]
diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md
index 7abedf38ee1..705432b565d 100644
--- a/cpp/ql/lib/CHANGELOG.md
+++ b/cpp/ql/lib/CHANGELOG.md
@@ -1,3 +1,14 @@
+## 5.5.0
+
+### New Features
+
+* Added a new class `PchFile` representing precompiled header (PCH) files used during project compilation.
+
+### Minor Analysis Improvements
+
+* Added flow summaries for the `Microsoft::WRL::ComPtr` member functions.
+* The new dataflow/taint-tracking library (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now resolves virtual function calls more precisely. This results in fewer false positives when running dataflow/taint-tracking queries on C++ projects.
+
## 5.4.1
### Minor Analysis Improvements
diff --git a/cpp/ql/lib/Options.qll b/cpp/ql/lib/Options.qll
index a0a13881a94..c4652e3f6ca 100644
--- a/cpp/ql/lib/Options.qll
+++ b/cpp/ql/lib/Options.qll
@@ -35,7 +35,7 @@ class CustomOptions extends Options {
override predicate returnsNull(Call call) { Options.super.returnsNull(call) }
/**
- * Holds if a call to this function will never return.
+ * Holds if a call to the function `f` will never return.
*
* By default, this holds for `exit`, `_exit`, `abort`, `__assert_fail`,
* `longjmp`, `error`, `__builtin_unreachable` and any function with a
diff --git a/cpp/ql/lib/change-notes/2025-08-19-virtual-dispatch.md b/cpp/ql/lib/change-notes/2025-08-19-virtual-dispatch.md
deleted file mode 100644
index 4342bb7f62d..00000000000
--- a/cpp/ql/lib/change-notes/2025-08-19-virtual-dispatch.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: minorAnalysis
----
-* The new dataflow/taint-tracking library (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now resolves virtual function calls more precisely. This results in fewer false positives when running dataflow/taint-tracking queries on C++ projects.
\ No newline at end of file
diff --git a/cpp/ql/lib/change-notes/2025-08-27-pch.md b/cpp/ql/lib/change-notes/2025-08-27-pch.md
deleted file mode 100644
index c4a59f112c5..00000000000
--- a/cpp/ql/lib/change-notes/2025-08-27-pch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-category: feature
----
-* Added a new class `PchFile` representing precompiled header (PCH) files used during project compilation.
-
diff --git a/cpp/ql/lib/change-notes/2025-08-28-comptr.md b/cpp/ql/lib/change-notes/2025-08-28-comptr.md
deleted file mode 100644
index 9ce6fde50cb..00000000000
--- a/cpp/ql/lib/change-notes/2025-08-28-comptr.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: minorAnalysis
----
-* Added flow summaries for the `Microsoft::WRL::ComPtr` member functions.
\ No newline at end of file
diff --git a/cpp/ql/lib/change-notes/2025-09-02-vla.md b/cpp/ql/lib/change-notes/2025-09-02-vla.md
new file mode 100644
index 00000000000..e59e3ef5ffe
--- /dev/null
+++ b/cpp/ql/lib/change-notes/2025-09-02-vla.md
@@ -0,0 +1,4 @@
+---
+category: feature
+---
+* Added predicates `getTransitiveNumberOfVlaDimensionStmts`, `getTransitiveVlaDimensionStmt`, and `getParentVlaDecl` to `VlaDeclStmt` for handling `VlaDeclStmt`s whose base type defined in terms of an other `VlaDeclStmt` via a `typedef`.
diff --git a/cpp/ql/lib/change-notes/2025-09-03-rename-api.md b/cpp/ql/lib/change-notes/2025-09-03-rename-api.md
new file mode 100644
index 00000000000..23c9fa3c046
--- /dev/null
+++ b/cpp/ql/lib/change-notes/2025-09-03-rename-api.md
@@ -0,0 +1,4 @@
+---
+category: deprecated
+---
+* The predicate `getAContructorCall` in the class `SslContextClass` has been deprecated. Use `getAConstructorCall` instead.
diff --git a/cpp/ql/lib/change-notes/released/5.5.0.md b/cpp/ql/lib/change-notes/released/5.5.0.md
new file mode 100644
index 00000000000..aad060fdd59
--- /dev/null
+++ b/cpp/ql/lib/change-notes/released/5.5.0.md
@@ -0,0 +1,10 @@
+## 5.5.0
+
+### New Features
+
+* Added a new class `PchFile` representing precompiled header (PCH) files used during project compilation.
+
+### Minor Analysis Improvements
+
+* Added flow summaries for the `Microsoft::WRL::ComPtr` member functions.
+* The new dataflow/taint-tracking library (`semmle.code.cpp.dataflow.new.DataFlow` and `semmle.code.cpp.dataflow.new.TaintTracking`) now resolves virtual function calls more precisely. This results in fewer false positives when running dataflow/taint-tracking queries on C++ projects.
diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml
index 7adcb16ea28..4b8cf9533c1 100644
--- a/cpp/ql/lib/codeql-pack.release.yml
+++ b/cpp/ql/lib/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 5.4.1
+lastReleaseVersion: 5.5.0
diff --git a/cpp/ql/lib/experimental/cryptography/CryptoArtifact.qll b/cpp/ql/lib/experimental/cryptography/CryptoArtifact.qll
index 0bb22d688ed..296b97f66f2 100644
--- a/cpp/ql/lib/experimental/cryptography/CryptoArtifact.qll
+++ b/cpp/ql/lib/experimental/cryptography/CryptoArtifact.qll
@@ -127,7 +127,7 @@ abstract class CryptographicAlgorithm extends CryptographicArtifact {
/**
* Normalizes a raw name into a normalized name as found in `CryptoAlgorithmNames.qll`.
* Subclassess should override for more api-specific normalization.
- * By deafult, converts a raw name to upper-case with no hyphen, underscore, hash, or space.
+ * By default, converts a raw name to upper-case with no hyphen, underscore, hash, or space.
*/
bindingset[s]
string normalizeName(string s) {
diff --git a/cpp/ql/lib/experimental/cryptography/modules/OpenSSL.qll b/cpp/ql/lib/experimental/cryptography/modules/OpenSSL.qll
index 0a52fa5bb81..6b6338a4926 100644
--- a/cpp/ql/lib/experimental/cryptography/modules/OpenSSL.qll
+++ b/cpp/ql/lib/experimental/cryptography/modules/OpenSSL.qll
@@ -652,14 +652,14 @@ module KeyGeneration {
* Trace from EVP_PKEY_CTX* at algorithm sink to keygen,
* users can then extrapolatae the matching algorithm from the alg sink to the keygen
*/
- module EVP_PKEY_CTX_Ptr_Source_to_KeyGenOperationWithNoSize implements DataFlow::ConfigSig {
+ module EVP_PKEY_CTX_Ptr_Source_to_KeyGenOperationWithNoSizeConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) { isEVP_PKEY_CTX_Source(source, _) }
predicate isSink(DataFlow::Node sink) { isKeyGen_EVP_PKEY_CTX_Sink(sink, _) }
}
module EVP_PKEY_CTX_Ptr_Source_to_KeyGenOperationWithNoSize_Flow =
- DataFlow::Global;
+ DataFlow::Global;
/**
* UNKNOWN key sizes to general purpose key generation functions (i.e., that take in no key size and assume
diff --git a/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/CryptoFunction.qll b/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/CryptoFunction.qll
index 2c46a7c0674..1e0f3b6dfbf 100644
--- a/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/CryptoFunction.qll
+++ b/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/CryptoFunction.qll
@@ -59,7 +59,7 @@ private string privateNormalizeFunctionName(Function f, string algType) {
*
* The predicate attempts to restrict normalization to what looks like an openssl
* library by looking for functions only in an openssl path (see `isPossibleOpenSSLFunction`).
- * This may give false postive functions if a directory erronously appears to be openssl;
+ * This may give false positive functions if a directory erronously appears to be openssl;
* however, we take the stance that if a function
* exists strongly mapping to a known function name in a directory such as these,
* regardless of whether its actually a part of openSSL or not, we will analyze it as though it were.
diff --git a/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/DataBuilders.qll b/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/DataBuilders.qll
index ba83de34597..54121c36766 100644
--- a/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/DataBuilders.qll
+++ b/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/DataBuilders.qll
@@ -49,7 +49,7 @@ private string privateNormalizeFunctionName(Function f, string algType) {
*
* The predicate attempts to restrict normalization to what looks like an openssl
* library by looking for functions only in an openssl path (see `isPossibleOpenSSLFunction`).
- * This may give false postive functions if a directory erronously appears to be openssl;
+ * This may give false positive functions if a directory erronously appears to be openssl;
* however, we take the stance that if a function
* exists strongly mapping to a known function name in a directory such as these,
* regardless of whether its actually a part of openSSL or not, we will analyze it as though it were.
diff --git a/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/PassthroughFunction.qll b/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/PassthroughFunction.qll
index f772f85afb1..e1e64f78e3e 100644
--- a/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/PassthroughFunction.qll
+++ b/cpp/ql/lib/experimental/cryptography/utils/OpenSSL/PassthroughFunction.qll
@@ -31,7 +31,7 @@ predicate knownPassthroughFunction(Function f, int inInd, int outInd) {
/**
* `c` is a call to a function that preserves the algorithm but changes its form.
- * `onExpr` is the input argument passing through to, `outExpr` is the next expression in a dataflow step associated with `c`
+ * `inExpr` is the input argument passing through to, `outExpr` is the next expression in a dataflow step associated with `c`
*/
predicate knownPassthoughCall(Call c, Expr inExpr, Expr outExpr) {
exists(int inInd, int outInd |
diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/rangeanalysis/RangeAnalysis.qll b/cpp/ql/lib/experimental/semmle/code/cpp/rangeanalysis/RangeAnalysis.qll
index e5de44b396d..e026c4dbe4b 100644
--- a/cpp/ql/lib/experimental/semmle/code/cpp/rangeanalysis/RangeAnalysis.qll
+++ b/cpp/ql/lib/experimental/semmle/code/cpp/rangeanalysis/RangeAnalysis.qll
@@ -298,10 +298,11 @@ private predicate boundFlowStep(Instruction i, NonPhiOperand op, int delta, bool
else
if strictlyNegative(x)
then upper = true and delta = -1
- else
- if negative(x)
- then upper = true and delta = 0
- else none()
+ else (
+ negative(x) and
+ upper = true and
+ delta = 0
+ )
)
or
exists(Operand x |
@@ -321,10 +322,11 @@ private predicate boundFlowStep(Instruction i, NonPhiOperand op, int delta, bool
else
if strictlyNegative(x)
then upper = false and delta = 1
- else
- if negative(x)
- then upper = false and delta = 0
- else none()
+ else (
+ negative(x) and
+ upper = false and
+ delta = 0
+ )
)
or
i.(RemInstruction).getRightOperand() = op and positive(op) and delta = -1 and upper = true
diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml
index 68f412126f4..2b9af14a4b3 100644
--- a/cpp/ql/lib/qlpack.yml
+++ b/cpp/ql/lib/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/cpp-all
-version: 5.4.2-dev
+version: 5.5.1-dev
groups: cpp
dbscheme: semmlecode.cpp.dbscheme
extractor: cpp
diff --git a/cpp/ql/lib/semmle/code/cpp/Concept.qll b/cpp/ql/lib/semmle/code/cpp/Concept.qll
index 1770c1965ed..6e66bca9823 100644
--- a/cpp/ql/lib/semmle/code/cpp/Concept.qll
+++ b/cpp/ql/lib/semmle/code/cpp/Concept.qll
@@ -198,7 +198,7 @@ class ConceptIdExpr extends Expr, @concept_id {
final Locatable getATemplateArgumentKind() { result = this.getTemplateArgumentKind(_) }
/**
- * Gets the `i`th template argument passed to the concept.
+ * Gets template argument at index `index` passed to the concept, if any.
*
* For example, if:
* ```cpp
@@ -219,7 +219,7 @@ class ConceptIdExpr extends Expr, @concept_id {
}
/**
- * Gets the kind of the `i`th template argument value passed to the concept.
+ * Gets the kind of the template argument value at index `index` passed to the concept, if any.
*
* For example, if:
* ```cpp
diff --git a/cpp/ql/lib/semmle/code/cpp/Declaration.qll b/cpp/ql/lib/semmle/code/cpp/Declaration.qll
index cedacca4dfe..6f791234b63 100644
--- a/cpp/ql/lib/semmle/code/cpp/Declaration.qll
+++ b/cpp/ql/lib/semmle/code/cpp/Declaration.qll
@@ -223,8 +223,8 @@ class Declaration extends Locatable, @declaration {
final Locatable getATemplateArgumentKind() { result = this.getTemplateArgumentKind(_) }
/**
- * Gets the `i`th template argument used to instantiate this declaration from a
- * template.
+ * Gets the template argument at index `index` used to instantiate this declaration from a
+ * template, if any.
*
* For example:
*
@@ -245,9 +245,9 @@ class Declaration extends Locatable, @declaration {
}
/**
- * Gets the `i`th template argument value used to instantiate this declaration
- * from a template. When called on a template, this will return the `i`th template
- * parameter value if it exists.
+ * Gets the template argument value at index `index` used to instantiate this declaration
+ * from a template. When called on a template, this will return the template
+ * parameter value at index `index` if it exists.
*
* For example:
*
diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll
index 51d2e294b36..023ce09c5c1 100644
--- a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll
+++ b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll
@@ -877,7 +877,7 @@ class FormatLiteral extends Literal instanceof StringLiteral {
}
/**
- * Gets the char type required by the nth conversion specifier.
+ * Gets the char type required by the `n`th conversion specifier.
* - in the base case this is the default for the formatting function
* (e.g. `char` for `printf`, `char` or `wchar_t` for `wprintf`).
* - the `%C` format character reverses wideness.
@@ -922,7 +922,7 @@ class FormatLiteral extends Literal instanceof StringLiteral {
}
/**
- * Gets the string type required by the nth conversion specifier.
+ * Gets the string type required by the `n`th conversion specifier.
* - in the base case this is the default for the formatting function
* (e.g. `char *` for `printf`, `char *` or `wchar_t *` for `wprintf`).
* - the `%S` format character reverses wideness on some platforms.
diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/Dominance.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/Dominance.qll
index 424e615f3ea..a8a4b867ba6 100644
--- a/cpp/ql/lib/semmle/code/cpp/controlflow/Dominance.qll
+++ b/cpp/ql/lib/semmle/code/cpp/controlflow/Dominance.qll
@@ -101,7 +101,7 @@ predicate postDominates(ControlFlowNode postDominator, ControlFlowNode node) {
*/
/**
- * Holds if `dominator` is an immediate dominator of `node` in the control-flow
+ * Holds if `dom` is an immediate dominator of `node` in the control-flow
* graph of basic blocks.
*/
predicate bbIDominates(BasicBlock dom, BasicBlock node) =
@@ -117,7 +117,7 @@ private predicate bb_predecessor(BasicBlock succ, BasicBlock pred) { bb_successo
private predicate bb_exit(ExitBasicBlock exit) { any() }
/**
- * Holds if `postDominator` is an immediate post-dominator of `node` in the control-flow
+ * Holds if `pDom` is an immediate post-dominator of `node` in the control-flow
* graph of basic blocks.
*/
predicate bbIPostDominates(BasicBlock pDom, BasicBlock node) =
diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/internal/CFG.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/internal/CFG.qll
index 05eafe28275..23ef5859221 100644
--- a/cpp/ql/lib/semmle/code/cpp/controlflow/internal/CFG.qll
+++ b/cpp/ql/lib/semmle/code/cpp/controlflow/internal/CFG.qll
@@ -1042,8 +1042,8 @@ private predicate subEdgeIncludingDestructors(Pos p1, Node n1, Node n2, Pos p2)
* - `MicrosoftTryFinallyStmt`: On the edge following the `__finally` block for
* the case where an exception was thrown and needs to be propagated.
*/
-DestructorCall getSynthesisedDestructorCallAfterNode(Node n, int i) {
- synthetic_destructor_call(n, i, result)
+DestructorCall getSynthesisedDestructorCallAfterNode(Node node, int index) {
+ synthetic_destructor_call(node, index, result)
}
/**
diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll
index 72e742f13aa..e6d53f8bf64 100644
--- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll
+++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowUtil.qll
@@ -834,8 +834,10 @@ class ContentSet instanceof Content {
* For more information, see
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
- predicate hasLocationInfo(string path, int sl, int sc, int el, int ec) {
- super.hasLocationInfo(path, sl, sc, el, ec)
+ predicate hasLocationInfo(
+ string filepath, int startline, int startcolumn, int endline, int endcolumn
+ ) {
+ super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
}
}
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
index 3aa8994a449..582391e81cc 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
@@ -1880,9 +1880,7 @@ module IteratorFlow {
}
}
- private module SsaInput implements SsaImpl::InputSig {
- import Ssa::InputSigCommon
-
+ private module SsaInput implements SsaImpl::InputSig {
class SourceVariable = IteratorFlow::SourceVariable;
/** A call to function that dereferences an iterator. */
@@ -1960,7 +1958,7 @@ module IteratorFlow {
* Holds if `(bb, i)` contains a write to an iterator that may have been obtained
* by calling `begin` (or related functions) on the variable `v`.
*/
- predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableWrite(IRCfg::BasicBlock bb, int i, SourceVariable v, boolean certain) {
certain = false and
exists(GetsIteratorCall beginCall, Instruction writeToDeref, IRBlock bbQual, int iQual |
isIteratorStoreInstruction(beginCall, writeToDeref) and
@@ -1971,12 +1969,12 @@ module IteratorFlow {
}
/** Holds if `(bb, i)` reads the container variable `v`. */
- predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableRead(IRCfg::BasicBlock bb, int i, SourceVariable v, boolean certain) {
Ssa::variableRead(bb, i, v, certain)
}
}
- private module IteratorSsa = SsaImpl::Make;
+ private module IteratorSsa = SsaImpl::Make;
private module DataFlowIntegrationInput implements IteratorSsa::DataFlowIntegrationInputSig {
private import codeql.util.Void
@@ -1989,7 +1987,7 @@ module IteratorFlow {
)
}
- predicate hasCfgNode(SsaInput::BasicBlock bb, int i) { bb.getInstruction(i) = this }
+ predicate hasCfgNode(IRCfg::BasicBlock bb, int i) { bb.getInstruction(i) = this }
}
predicate ssaDefHasSource(IteratorSsa::WriteDefinition def) { none() }
@@ -1999,20 +1997,16 @@ module IteratorFlow {
class GuardValue = Void;
class Guard extends Void {
- predicate hasValueBranchEdge(
- SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue val
- ) {
+ predicate hasValueBranchEdge(IRCfg::BasicBlock bb1, IRCfg::BasicBlock bb2, GuardValue val) {
none()
}
- predicate valueControlsBranchEdge(
- SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue val
- ) {
+ predicate valueControlsBranchEdge(IRCfg::BasicBlock bb1, IRCfg::BasicBlock bb2, GuardValue val) {
none()
}
}
- predicate guardDirectlyControlsBlock(Guard guard, SsaInput::BasicBlock bb, GuardValue val) {
+ predicate guardDirectlyControlsBlock(Guard guard, IRCfg::BasicBlock bb, GuardValue val) {
none()
}
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
index ef4051171af..82dcd43e136 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
@@ -2273,8 +2273,10 @@ class ContentSet instanceof Content {
* For more information, see
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
- predicate hasLocationInfo(string path, int sl, int sc, int el, int ec) {
- super.hasLocationInfo(path, sl, sc, el, ec)
+ predicate hasLocationInfo(
+ string filepath, int startline, int startcolumn, int endline, int endcolumn
+ ) {
+ super.hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
}
}
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll
index 1cf45439d8b..d48a48dfb44 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImpl.qll
@@ -891,15 +891,14 @@ private predicate baseSourceVariableIsGlobal(
)
}
-private module SsaInput implements Ssa::InputSig {
- import InputSigCommon
+private module SsaInput implements Ssa::InputSig {
import SourceVariables
/**
* Holds if the `i`'th write in block `bb` writes to the variable `v`.
* `certain` is `true` if the write is guaranteed to overwrite the entire variable.
*/
- predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableWrite(IRCfg::BasicBlock bb, int i, SourceVariable v, boolean certain) {
DataFlowImplCommon::forceCachingInSameStage() and
(
exists(DefImpl def | def.hasIndexInBlock(v, bb, i) |
@@ -917,7 +916,7 @@ private module SsaInput implements Ssa::InputSig {
* Holds if the `i`'th read in block `bb` reads to the variable `v`.
* `certain` is `true` if the read is guaranteed. For C++, this is always the case.
*/
- predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableRead(IRCfg::BasicBlock bb, int i, SourceVariable v, boolean certain) {
exists(UseImpl use | use.hasIndexInBlock(bb, i, v) |
if use.isCertain() then certain = true else certain = false
)
@@ -965,7 +964,7 @@ class GlobalDef extends Definition {
GlobalLikeVariable getVariable() { result = impl.getVariable() }
}
-private module SsaImpl = Ssa::Make;
+private module SsaImpl = Ssa::Make;
private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationInputSig {
private import codeql.util.Boolean
@@ -978,7 +977,7 @@ private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationI
)
}
- predicate hasCfgNode(SsaInput::BasicBlock bb, int i) { bb.getInstruction(i) = this }
+ predicate hasCfgNode(IRCfg::BasicBlock bb, int i) { bb.getInstruction(i) = this }
}
Expr getARead(SsaImpl::Definition def) {
@@ -1006,9 +1005,7 @@ private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationI
class Guard instanceof IRGuards::IRGuardCondition {
string toString() { result = super.toString() }
- predicate hasValueBranchEdge(
- SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue branch
- ) {
+ predicate hasValueBranchEdge(IRCfg::BasicBlock bb1, IRCfg::BasicBlock bb2, GuardValue branch) {
exists(EdgeKind kind |
super.getBlock() = bb1 and
kind = getConditionalEdge(branch) and
@@ -1017,13 +1014,13 @@ private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationI
}
predicate valueControlsBranchEdge(
- SsaInput::BasicBlock bb1, SsaInput::BasicBlock bb2, GuardValue branch
+ IRCfg::BasicBlock bb1, IRCfg::BasicBlock bb2, GuardValue branch
) {
this.hasValueBranchEdge(bb1, bb2, branch)
}
}
- predicate guardDirectlyControlsBlock(Guard guard, SsaInput::BasicBlock bb, GuardValue branch) {
+ predicate guardDirectlyControlsBlock(Guard guard, IRCfg::BasicBlock bb, GuardValue branch) {
guard.(IRGuards::IRGuardCondition).controls(bb, branch)
}
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll
index 617e2be8cc3..552f504b84b 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll
@@ -768,21 +768,3 @@ private module Cached {
}
import Cached
-
-/**
- * Inputs to the shared SSA library's parameterized module that is shared
- * between the SSA pruning stage, and the final SSA stage.
- */
-module InputSigCommon {
- class BasicBlock extends IRBlock {
- ControlFlowNode getNode(int i) { result = this.getInstruction(i) }
-
- int length() { result = this.getInstructionCount() }
- }
-
- class ControlFlowNode = Instruction;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { result.immediatelyDominates(bb) }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() }
-}
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll
index 0a0703fe16f..c7ab5edf624 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/EdgeKind.qll
@@ -2,6 +2,7 @@
* Provides classes that specify the conditions under which control flows along a given edge.
*/
+private import codeql.controlflow.SuccessorType
private import internal.EdgeKindInternal
private newtype TEdgeKind =
@@ -28,6 +29,21 @@ abstract private class EdgeKindImpl extends TEdgeKind {
final class EdgeKind = EdgeKindImpl;
+private SuccessorType getAMatchingSpecificSuccessorType(EdgeKind k) {
+ result.(BooleanSuccessor).getValue() = true and k instanceof TrueEdge
+ or
+ result.(BooleanSuccessor).getValue() = false and k instanceof FalseEdge
+ or
+ result instanceof ExceptionSuccessor and k instanceof ExceptionEdge
+}
+
+SuccessorType getAMatchingSuccessorType(EdgeKind k) {
+ result = getAMatchingSpecificSuccessorType(k)
+ or
+ not exists(getAMatchingSpecificSuccessorType(k)) and
+ result instanceof DirectSuccessor
+}
+
/**
* A "goto" edge, representing the unconditional successor of an `Instruction`
* or `IRBlock`.
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll
index 50395db47e7..7f7c5cd0a4d 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/IRBlock.qll
@@ -7,6 +7,7 @@ import Instruction
private import internal.IRBlockImports as Imports
import Imports::EdgeKind
private import Cached
+private import codeql.controlflow.BasicBlock as BB
/**
* Holds if `block` is a block in `func` and `sortOverride`, `sortKey1`, and `sortKey2` are the
@@ -263,6 +264,54 @@ private predicate isEntryBlock(TIRBlock block) {
block = MkIRBlock(any(EnterFunctionInstruction enter))
}
+module IRCfg implements BB::CfgSig {
+ private import codeql.controlflow.SuccessorType
+
+ class ControlFlowNode = Instruction;
+
+ final private class FinalIRBlock = IRBlock;
+
+ class BasicBlock extends FinalIRBlock {
+ ControlFlowNode getNode(int i) { result = this.getInstruction(i) }
+
+ ControlFlowNode getLastNode() { result = super.getLastInstruction() }
+
+ int length() { result = this.getInstructionCount() }
+
+ BasicBlock getASuccessor() { result = super.getASuccessor() }
+
+ BasicBlock getASuccessor(SuccessorType t) {
+ exists(EdgeKind k |
+ result = super.getSuccessor(k) and
+ t = getAMatchingSuccessorType(k)
+ )
+ }
+
+ predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) }
+
+ predicate dominates(BasicBlock bb) { super.dominates(bb) }
+
+ BasicBlock getImmediateDominator() { result.immediatelyDominates(this) }
+
+ predicate inDominanceFrontier(BasicBlock df) { super.dominanceFrontier() = df }
+
+ predicate strictlyPostDominates(BasicBlock bb) { super.strictlyPostDominates(bb) }
+
+ predicate postDominates(BasicBlock bb) { super.postDominates(bb) }
+ }
+
+ class EntryBasicBlock extends BasicBlock {
+ EntryBasicBlock() { isEntryBlock(this) }
+ }
+
+ pragma[nomagic]
+ predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) {
+ bb1.getASuccessor() = bb2 and
+ bb1 = bb2.getImmediateDominator() and
+ forall(BasicBlock pred | pred = bb2.getAPredecessor() and pred != bb1 | bb2.dominates(pred))
+ }
+}
+
cached
private module Cached {
cached
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll
index 50395db47e7..7f7c5cd0a4d 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/IRBlock.qll
@@ -7,6 +7,7 @@ import Instruction
private import internal.IRBlockImports as Imports
import Imports::EdgeKind
private import Cached
+private import codeql.controlflow.BasicBlock as BB
/**
* Holds if `block` is a block in `func` and `sortOverride`, `sortKey1`, and `sortKey2` are the
@@ -263,6 +264,54 @@ private predicate isEntryBlock(TIRBlock block) {
block = MkIRBlock(any(EnterFunctionInstruction enter))
}
+module IRCfg implements BB::CfgSig {
+ private import codeql.controlflow.SuccessorType
+
+ class ControlFlowNode = Instruction;
+
+ final private class FinalIRBlock = IRBlock;
+
+ class BasicBlock extends FinalIRBlock {
+ ControlFlowNode getNode(int i) { result = this.getInstruction(i) }
+
+ ControlFlowNode getLastNode() { result = super.getLastInstruction() }
+
+ int length() { result = this.getInstructionCount() }
+
+ BasicBlock getASuccessor() { result = super.getASuccessor() }
+
+ BasicBlock getASuccessor(SuccessorType t) {
+ exists(EdgeKind k |
+ result = super.getSuccessor(k) and
+ t = getAMatchingSuccessorType(k)
+ )
+ }
+
+ predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) }
+
+ predicate dominates(BasicBlock bb) { super.dominates(bb) }
+
+ BasicBlock getImmediateDominator() { result.immediatelyDominates(this) }
+
+ predicate inDominanceFrontier(BasicBlock df) { super.dominanceFrontier() = df }
+
+ predicate strictlyPostDominates(BasicBlock bb) { super.strictlyPostDominates(bb) }
+
+ predicate postDominates(BasicBlock bb) { super.postDominates(bb) }
+ }
+
+ class EntryBasicBlock extends BasicBlock {
+ EntryBasicBlock() { isEntryBlock(this) }
+ }
+
+ pragma[nomagic]
+ predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) {
+ bb1.getASuccessor() = bb2 and
+ bb1 = bb2.getImmediateDominator() and
+ forall(BasicBlock pred | pred = bb2.getAPredecessor() and pred != bb1 | bb2.dominates(pred))
+ }
+}
+
cached
private module Cached {
cached
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/InstructionTag.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/InstructionTag.qll
index d864e86aa04..be3f680aa16 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/InstructionTag.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/InstructionTag.qll
@@ -97,7 +97,14 @@ newtype TInstructionTag =
exists(Stmt s | exists(s.getImplicitDestructorCall(index)))
} or
CoAwaitBranchTag() or
- BoolToIntConversionTag()
+ BoolToIntConversionTag() or
+ SizeofVlaBaseSizeTag() or
+ SizeofVlaConversionTag(int index) {
+ exists(VlaDeclStmt v | exists(v.getTransitiveVlaDimensionStmt(index)))
+ } or
+ SizeofVlaDimensionTag(int index) {
+ exists(VlaDeclStmt v | exists(v.getTransitiveVlaDimensionStmt(index)))
+ }
class InstructionTag extends TInstructionTag {
final string toString() { result = getInstructionTagId(this) }
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll
index e1314035437..330362f5560 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedElement.qll
@@ -123,13 +123,16 @@ private predicate ignoreExprAndDescendants(Expr expr) {
// or
ignoreExprAndDescendants(getRealParent(expr)) // recursive case
or
- // va_start doesn't evaluate its argument, so we don't need to translate it.
+ // va_start does not evaluate its argument, so we do not need to translate it.
exists(BuiltInVarArgsStart vaStartExpr |
vaStartExpr.getLastNamedParameter().getFullyConverted() = expr
)
or
+ // sizeof does not evaluate its argument, so we do not need to translate it.
+ exists(SizeofExprOperator sizeofExpr | sizeofExpr.getExprOperand().getFullyConverted() = expr)
+ or
// The children of C11 _Generic expressions are just surface syntax.
- exists(C11GenericExpr generic | generic.getAChild() = expr)
+ exists(C11GenericExpr generic | generic.getAChild().getFullyConverted() = expr)
or
// Do not translate implicit destructor calls for unnamed temporary variables that are
// conditionally constructed (until we have a mechanism for calling these only when the
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll
index f749f8b7502..6024a881c5f 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedExpr.qll
@@ -187,7 +187,7 @@ Variable getEnclosingVariable(Expr e) {
}
/**
- * The IR translation of the "core" part of an expression. This is the part of
+ * The IR translation of the "core" part of an expression. This is the part of
* the expression that produces the result value of the expression, before any
* lvalue-to-rvalue conversion on the result. Every expression has a single
* `TranslatedCoreExpr`.
@@ -4094,6 +4094,155 @@ class TranslatedStmtExpr extends TranslatedNonConstantExpr {
TranslatedStmt getStmt() { result = getTranslatedStmt(expr.getStmt()) }
}
+private VlaDeclStmt getVlaDeclStmt(Expr expr, int pointerDerefCount) {
+ expr.(VariableAccess).getTarget() = result.getVariable() and
+ pointerDerefCount = 0
+ or
+ not expr.(PointerDereferenceExpr).getOperand() instanceof AddressOfExpr and
+ result = getVlaDeclStmt(expr.(PointerDereferenceExpr).getOperand(), pointerDerefCount - 1)
+ or
+ // Skip sequences of the form `*&...`
+ result =
+ getVlaDeclStmt(expr.(PointerDereferenceExpr).getOperand().(AddressOfExpr).getOperand(),
+ pointerDerefCount)
+ or
+ result = getVlaDeclStmt(expr.(ArrayExpr).getArrayBase(), pointerDerefCount - 1)
+}
+
+/**
+ * The IR translation of `SizeofExprOperator` when its result is non-constant, i.e.,
+ * when the operand expression refers to a variable length array.
+ */
+class TranslatedSizeofExpr extends TranslatedNonConstantExpr {
+ override SizeofExprOperator expr;
+ VlaDeclStmt vlaDeclStmt;
+ int vlaDimensions;
+ int pointerDerefCount;
+
+ TranslatedSizeofExpr() {
+ vlaDeclStmt = getVlaDeclStmt(expr.getExprOperand(), pointerDerefCount) and
+ vlaDimensions = vlaDeclStmt.getTransitiveNumberOfVlaDimensionStmts() and
+ pointerDerefCount < vlaDimensions
+ }
+
+ final override Instruction getFirstInstruction(EdgeKind kind) {
+ result = this.getInstruction(SizeofVlaBaseSizeTag()) and
+ kind instanceof GotoEdge
+ }
+
+ override Instruction getALastInstructionInternal() {
+ result = this.getInstruction(SizeofVlaDimensionTag(vlaDimensions - 1))
+ }
+
+ final override TranslatedElement getChildInternal(int id) { none() }
+
+ final override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) {
+ opcode instanceof Opcode::Constant and
+ tag = SizeofVlaBaseSizeTag() and
+ resultType = this.getResultType()
+ or
+ exists(int n, Type dimType |
+ pointerDerefCount <= n and
+ n < vlaDimensions and
+ dimType = this.getDimensionExpr(n).getUnderlyingType() and
+ tag = SizeofVlaConversionTag(n)
+ |
+ (
+ expr.getUnderlyingType() = dimType and
+ opcode instanceof Opcode::CopyValue
+ or
+ not expr.getUnderlyingType() = dimType and
+ opcode instanceof Opcode::Convert
+ )
+ ) and
+ resultType = this.getResultType()
+ or
+ opcode instanceof Opcode::Mul and
+ exists(int n | pointerDerefCount <= n and n < vlaDimensions | tag = SizeofVlaDimensionTag(n)) and
+ resultType = this.getResultType()
+ }
+
+ final override Instruction getInstructionSuccessorInternal(InstructionTag tag, EdgeKind kind) {
+ tag = SizeofVlaBaseSizeTag() and
+ result = this.getInstruction(SizeofVlaConversionTag(pointerDerefCount)) and
+ kind instanceof GotoEdge
+ or
+ exists(int n | pointerDerefCount <= n and n < vlaDimensions |
+ tag = SizeofVlaConversionTag(n) and
+ result = this.getInstruction(SizeofVlaDimensionTag(n))
+ ) and
+ kind instanceof GotoEdge
+ or
+ exists(int n | pointerDerefCount <= n and n < vlaDimensions - 1 |
+ tag = SizeofVlaDimensionTag(n) and
+ result = this.getInstruction(SizeofVlaConversionTag(n + 1))
+ ) and
+ kind instanceof GotoEdge
+ or
+ tag = SizeofVlaDimensionTag(vlaDimensions - 1) and
+ result = this.getParent().getChildSuccessor(this, kind)
+ }
+
+ override string getInstructionConstantValue(InstructionTag tag) {
+ tag = SizeofVlaBaseSizeTag() and
+ result = this.getBaseType(vlaDeclStmt).getSize().toString()
+ }
+
+ private Type getBaseType(VlaDeclStmt v) {
+ not exists(v.getParentVlaDecl()) and
+ (
+ result =
+ this.getBaseType(v.getVariable().getUnderlyingType(), v.getNumberOfVlaDimensionStmts())
+ or
+ result = this.getBaseType(v.getType().getUnderlyingType(), v.getNumberOfVlaDimensionStmts())
+ )
+ or
+ result = this.getBaseType(v.getParentVlaDecl())
+ }
+
+ private Type getBaseType(Type type, int n) {
+ n = 0 and
+ result = type
+ or
+ result = this.getBaseType(type.(DerivedType).getBaseType(), n - 1)
+ }
+
+ override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) {
+ exists(int n | pointerDerefCount <= n and n < vlaDimensions |
+ tag = SizeofVlaConversionTag(n) and
+ (
+ operandTag instanceof UnaryOperandTag and
+ result = getTranslatedExpr(this.getDimensionExpr(n)).getResult()
+ )
+ )
+ or
+ exists(int n | pointerDerefCount <= n and n < vlaDimensions |
+ tag = SizeofVlaDimensionTag(n) and
+ (
+ operandTag instanceof LeftOperandTag and
+ (
+ n - 1 >= pointerDerefCount and
+ result = this.getInstruction(SizeofVlaDimensionTag(n - 1))
+ or
+ n - 1 < pointerDerefCount and
+ result = this.getInstruction(SizeofVlaBaseSizeTag())
+ )
+ or
+ operandTag instanceof RightOperandTag and
+ result = this.getInstruction(SizeofVlaConversionTag(n))
+ )
+ )
+ }
+
+ private Expr getDimensionExpr(int n) {
+ result = vlaDeclStmt.getTransitiveVlaDimensionStmt(n).getDimensionExpr().getFullyConverted()
+ }
+
+ final override Instruction getResult() {
+ result = this.getInstruction(SizeofVlaDimensionTag(vlaDimensions - 1))
+ }
+}
+
class TranslatedErrorExpr extends TranslatedSingleInstructionExpr {
override ErrorExpr expr;
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll
index 83736ae98d0..26f5393db10 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedFunction.qll
@@ -50,7 +50,7 @@ CppType getEllipsisVariablePRValueType() {
CppType getEllipsisVariableGLValueType() { result = getTypeForGLValue(any(UnknownType t)) }
/**
- * Holds if the function returns a value, as opposed to returning `void`.
+ * Holds if the function `func` returns a value, as opposed to returning `void`.
*/
predicate hasReturnValue(Function func) { not func.getUnspecifiedType() instanceof VoidType }
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll
index 3914c5e8e59..9dccf7752aa 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedStmt.qll
@@ -601,7 +601,7 @@ class TranslatedReturnVoidStmt extends TranslatedReturnStmt {
* The IR translation of an implicit `return` statement generated by the extractor to handle control
* flow that reaches the end of a non-`void`-returning function body. Such control flow
* produces undefined behavior in C++ but not in C. However even in C using the return value is
- * undefined behaviour. We make it return uninitialized memory to get as much flow as possible.
+ * undefined behavior. We make it return uninitialized memory to get as much flow as possible.
*/
class TranslatedNoValueReturnStmt extends TranslatedReturnStmt, TranslatedVariableInitialization {
TranslatedNoValueReturnStmt() {
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll
index 50395db47e7..7f7c5cd0a4d 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/IRBlock.qll
@@ -7,6 +7,7 @@ import Instruction
private import internal.IRBlockImports as Imports
import Imports::EdgeKind
private import Cached
+private import codeql.controlflow.BasicBlock as BB
/**
* Holds if `block` is a block in `func` and `sortOverride`, `sortKey1`, and `sortKey2` are the
@@ -263,6 +264,54 @@ private predicate isEntryBlock(TIRBlock block) {
block = MkIRBlock(any(EnterFunctionInstruction enter))
}
+module IRCfg implements BB::CfgSig {
+ private import codeql.controlflow.SuccessorType
+
+ class ControlFlowNode = Instruction;
+
+ final private class FinalIRBlock = IRBlock;
+
+ class BasicBlock extends FinalIRBlock {
+ ControlFlowNode getNode(int i) { result = this.getInstruction(i) }
+
+ ControlFlowNode getLastNode() { result = super.getLastInstruction() }
+
+ int length() { result = this.getInstructionCount() }
+
+ BasicBlock getASuccessor() { result = super.getASuccessor() }
+
+ BasicBlock getASuccessor(SuccessorType t) {
+ exists(EdgeKind k |
+ result = super.getSuccessor(k) and
+ t = getAMatchingSuccessorType(k)
+ )
+ }
+
+ predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) }
+
+ predicate dominates(BasicBlock bb) { super.dominates(bb) }
+
+ BasicBlock getImmediateDominator() { result.immediatelyDominates(this) }
+
+ predicate inDominanceFrontier(BasicBlock df) { super.dominanceFrontier() = df }
+
+ predicate strictlyPostDominates(BasicBlock bb) { super.strictlyPostDominates(bb) }
+
+ predicate postDominates(BasicBlock bb) { super.postDominates(bb) }
+ }
+
+ class EntryBasicBlock extends BasicBlock {
+ EntryBasicBlock() { isEntryBlock(this) }
+ }
+
+ pragma[nomagic]
+ predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) {
+ bb1.getASuccessor() = bb2 and
+ bb1 = bb2.getImmediateDominator() and
+ forall(BasicBlock pred | pred = bb2.getAPredecessor() and pred != bb1 | bb2.dominates(pred))
+ }
+}
+
cached
private module Cached {
cached
diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRUtilities.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRUtilities.qll
index bfd850384ac..c42f734a62a 100644
--- a/cpp/ql/lib/semmle/code/cpp/ir/internal/IRUtilities.qll
+++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/IRUtilities.qll
@@ -49,7 +49,8 @@ Type getVariableType(Variable v) {
}
/**
- * Holds if the database contains a `case` label with the specified minimum and maximum value.
+ * Holds if the database contains a `switchCase` label with the specified minimum `minValue`
+ * and maximum `maxValue` value.
*/
predicate hasCaseEdge(SwitchCase switchCase, string minValue, string maxValue) {
minValue = switchCase.getExpr().getFullyConverted().getValue() and
diff --git a/cpp/ql/lib/semmle/code/cpp/models/interfaces/FunctionInputsAndOutputs.qll b/cpp/ql/lib/semmle/code/cpp/models/interfaces/FunctionInputsAndOutputs.qll
index 9c8ee43b52a..d81bc960988 100644
--- a/cpp/ql/lib/semmle/code/cpp/models/interfaces/FunctionInputsAndOutputs.qll
+++ b/cpp/ql/lib/semmle/code/cpp/models/interfaces/FunctionInputsAndOutputs.qll
@@ -371,7 +371,7 @@ class FunctionOutput extends TFunctionOutput {
/**
* Holds if this is the output value pointed to by a pointer parameter to a function, or the
* output value referred to by a reference parameter to a function, where the parameter has
- * index `index`.
+ * index `i`.
*
* Example:
* ```
@@ -389,7 +389,7 @@ class FunctionOutput extends TFunctionOutput {
/**
* Holds if this is the output value pointed to by a pointer parameter (through `ind` number
* of indirections) to a function, or the output value referred to by a reference parameter to
- * a function, where the parameter has index `index`.
+ * a function, where the parameter has index `i`.
*
* Example:
* ```
diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExpr.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExpr.qll
index 668d9b52659..f269d0dfff2 100644
--- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExpr.qll
+++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/SemanticExpr.qll
@@ -307,13 +307,12 @@ class SemStoreExpr extends SemUnaryExpr {
}
class SemConditionalExpr extends SemKnownExpr {
- SemExpr condition;
SemExpr trueResult;
SemExpr falseResult;
SemConditionalExpr() {
opcode instanceof Opcode::Conditional and
- Specific::conditionalExpr(this, type, condition, trueResult, falseResult)
+ Specific::conditionalExpr(this, type, any(SemExpr condition), trueResult, falseResult)
}
final SemExpr getBranchExpr(boolean branch) {
diff --git a/cpp/ql/lib/semmle/code/cpp/security/FileWrite.qll b/cpp/ql/lib/semmle/code/cpp/security/FileWrite.qll
index dc421e8f3ae..6c0552a7d18 100644
--- a/cpp/ql/lib/semmle/code/cpp/security/FileWrite.qll
+++ b/cpp/ql/lib/semmle/code/cpp/security/FileWrite.qll
@@ -21,7 +21,9 @@ class FileWrite extends Expr {
Expr getDest() { fileWrite(this, _, result) }
/**
- * Gets the conversion character for this write, if it exists and is known. For example in the following code the write of `value1` has conversion character `"s"`, whereas the write of `value2` has no conversion specifier.
+ * Gets the conversion character from `source` for this write, if it exists and is known.
+ * For example in the following code the write of `value1` has conversion character `"s"`, whereas
+ * the write of `value2` has no conversion specifier.
* ```
* fprintf(file, "%s", value1);
* stream << value2;
diff --git a/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll b/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll
index 559ebd444f3..984bd874ae5 100644
--- a/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll
+++ b/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll
@@ -191,11 +191,19 @@ module BoostorgAsio {
class SslContextClass extends Class {
SslContextClass() { this.getQualifiedName() = "boost::asio::ssl::context" }
- ConstructorCall getAContructorCall() {
+ /**
+ * Gets a constructor call, if any.
+ */
+ ConstructorCall getAConstructorCall() {
this.getAConstructor().getACallToThisFunction() = result and
not result.getLocation().getFile().toString().matches("%/boost/asio/%") and
result.fromSource()
}
+
+ /**
+ * DEPRECATED: Use `getAConstructorCall` instead.
+ */
+ deprecated ConstructorCall getAContructorCall() { result = this.getAConstructorCall() }
}
/**
@@ -368,7 +376,7 @@ module BoostorgAsio {
*/
default predicate isSink(DataFlow::Node sink) {
exists(ConstructorCall cc, SslContextClass c, Expr e | e = sink.asExpr() |
- c.getAContructorCall() = cc and
+ c.getAConstructorCall() = cc and
cc.getArgument(0) = e
)
}
@@ -468,7 +476,7 @@ module BoostorgAsio {
predicate isSource(DataFlow::Node source) {
exists(SslContextClass c, ConstructorCall cc |
cc = source.asExpr() and
- c.getAContructorCall() = cc
+ c.getAConstructorCall() = cc
)
}
diff --git a/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll b/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll
index 5305c8ca58f..bd3a54c6159 100644
--- a/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll
+++ b/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll
@@ -2355,6 +2355,20 @@ class VlaDeclStmt extends Stmt, @stmt_vla_decl {
)
}
+ /**
+ * Gets the number of VLA dimension statements in this VLA declaration
+ * statement and transitively of the VLA declaration used to define its
+ * base type. if any.
+ */
+ int getTransitiveNumberOfVlaDimensionStmts() {
+ not exists(this.getParentVlaDecl()) and
+ result = this.getNumberOfVlaDimensionStmts()
+ or
+ result =
+ this.getNumberOfVlaDimensionStmts() +
+ this.getParentVlaDecl().getTransitiveNumberOfVlaDimensionStmts()
+ }
+
/**
* Gets the `i`th VLA dimension statement in this VLA
* declaration statement.
@@ -2367,6 +2381,19 @@ class VlaDeclStmt extends Stmt, @stmt_vla_decl {
)
}
+ /**
+ * Gets the `i`th VLA dimension statement in this VLA declaration
+ * statement or transitively of the VLA declaration used to define
+ * its base type.
+ */
+ VlaDimensionStmt getTransitiveVlaDimensionStmt(int i) {
+ i < this.getNumberOfVlaDimensionStmts() and
+ result = this.getVlaDimensionStmt(i)
+ or
+ result =
+ this.getParentVlaDecl().getTransitiveVlaDimensionStmt(i - this.getNumberOfVlaDimensionStmts())
+ }
+
/**
* Gets the type that this VLA declaration statement relates to,
* if any.
@@ -2378,4 +2405,31 @@ class VlaDeclStmt extends Stmt, @stmt_vla_decl {
* if any.
*/
Variable getVariable() { variable_vla(unresolveElement(result), underlyingElement(this)) }
+
+ /**
+ * Get the VLA declaration used to define the base type of
+ * this VLA declaration, if any.
+ */
+ VlaDeclStmt getParentVlaDecl() {
+ exists(Variable v, Type baseType |
+ v = this.getVariable() and
+ baseType = this.getBaseType(v.getType(), this.getNumberOfVlaDimensionStmts())
+ |
+ result.getType() = baseType
+ )
+ or
+ exists(Type t, Type baseType |
+ t = this.getType().(TypedefType).getBaseType() and
+ baseType = this.getBaseType(t, this.getNumberOfVlaDimensionStmts())
+ |
+ result.getType() = baseType
+ )
+ }
+
+ private Type getBaseType(Type type, int n) {
+ n = 0 and
+ result = type
+ or
+ result = this.getBaseType(type.(DerivedType).getBaseType(), n - 1)
+ }
}
diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats
index 0943aadd694..42cff5d8d16 100644
--- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats
+++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats
@@ -2,7 +2,7 @@
@compilation
- 12642
+ 12643
@externalDataElement
@@ -10,11 +10,11 @@
@file
- 65207
+ 65212
@folder
- 12388
+ 12389
@diagnostic
@@ -22,7 +22,7 @@
@location_default
- 46945184
+ 46945087
@pch
@@ -30,7 +30,7 @@
@macro_expansion
- 40256666
+ 40256583
@other_macro_reference
@@ -38,7 +38,7 @@
@normal_function
- 2738028
+ 2738022
@unknown_function
@@ -46,7 +46,7 @@
@constructor
- 698700
+ 698728
@destructor
@@ -58,7 +58,7 @@
@operator
- 652446
+ 652444
@user_defined_literal
@@ -70,27 +70,27 @@
@fun_decl
- 4202975
+ 4202967
@var_decl
- 9383123
+ 9383104
@type_decl
- 1633485
+ 1633482
@namespace_decl
- 407776
+ 407775
@using_declaration
- 267925
+ 267822
@using_directive
- 6472
+ 6473
@using_enum_declaration
@@ -98,27 +98,27 @@
@static_assert
- 173263
+ 173262
@parameter
- 7019846
+ 7019832
@membervariable
- 1497677
+ 1497674
@globalvariable
- 488149
+ 488148
@localvariable
- 726313
+ 726300
@enumconstant
- 347817
+ 347816
@errortype
@@ -366,11 +366,11 @@
@pointer
- 452470
+ 452469
@type_with_specifiers
- 693239
+ 693238
@array
@@ -378,11 +378,11 @@
@routineptr
- 684085
+ 684112
@reference
- 967316
+ 967314
@gnu_vector
@@ -394,7 +394,7 @@
@rvalue_reference
- 291043
+ 291042
@block
@@ -404,6 +404,10 @@
@scalable_vector
1
+
+ @decltype
+ 102349
+
@typeof
816
@@ -484,13 +488,9 @@
@remove_reference
5723
-
- @decltype
- 102349
-
@struct
- 979805
+ 979892
@union
@@ -502,11 +502,11 @@
@template_parameter
- 867019
+ 867095
@alias
- 1762205
+ 1762360
@unknown_usertype
@@ -514,7 +514,7 @@
@class
- 324975
+ 324974
@template_template_parameter
@@ -522,7 +522,7 @@
@proxy_class
- 48435
+ 48439
@scoped_enum
@@ -530,7 +530,7 @@
@template_struct
- 212065
+ 212084
@template_class
@@ -542,11 +542,11 @@
@mangledname
- 6364281
+ 6364268
@type_mention
- 5903906
+ 5903894
@concept_template
@@ -554,11 +554,11 @@
@routinetype
- 604298
+ 604322
@ptrtomember
- 9727
+ 9728
@specifier
@@ -574,7 +574,7 @@
@declspec
- 330282
+ 330281
@msattribute
@@ -582,7 +582,7 @@
@alignas
- 2165
+ 2164
@attribute_arg_token
@@ -590,7 +590,7 @@
@attribute_arg_constant_expr
- 71712
+ 71856
@attribute_arg_expr
@@ -610,19 +610,19 @@
@derivation
- 476883
+ 476902
@frienddecl
- 700403
+ 700465
@comment
- 11233426
+ 11233402
@namespace
- 8649
+ 8650
@specialnamequalifyingelement
@@ -630,15 +630,15 @@
@namequalifier
- 3041831
+ 3041979
@value
- 13474629
+ 13474601
@initialiser
- 2251326
+ 2251321
@address_of
@@ -646,19 +646,19 @@
@indirect
- 404154
+ 404153
@array_to_pointer
- 1953754
+ 1953750
@parexpr
- 4915216
+ 4915206
@arithnegexpr
- 586535
+ 586534
@unaryplusexpr
@@ -666,11 +666,11 @@
@complementexpr
- 38200
+ 38199
@notexpr
- 355765
+ 355764
@postincrexpr
@@ -690,19 +690,19 @@
@conditionalexpr
- 897881
+ 897879
@addexpr
- 571554
+ 571552
@subexpr
- 466800
+ 466799
@mulexpr
- 435794
+ 435793
@divexpr
@@ -710,7 +710,7 @@
@remexpr
- 16011
+ 16012
@paddexpr
@@ -726,19 +726,19 @@
@lshiftexpr
- 551697
+ 551696
@rshiftexpr
- 200555
+ 200554
@andexpr
- 481219
+ 481218
@orexpr
- 194056
+ 194055
@xorexpr
@@ -746,11 +746,11 @@
@eqexpr
- 643373
+ 643372
@neexpr
- 411871
+ 411870
@gtexpr
@@ -770,7 +770,7 @@
@assignexpr
- 1281147
+ 1281144
@assignaddexpr
@@ -782,7 +782,7 @@
@assignmulexpr
- 11184
+ 11185
@assigndivexpr
@@ -826,7 +826,7 @@
@orlogicalexpr
- 1103525
+ 1103522
@commaexpr
@@ -834,11 +834,11 @@
@subscriptexpr
- 435143
+ 435142
@callexpr
- 239770
+ 239780
@vastartexpr
@@ -858,15 +858,15 @@
@varaccess
- 8254646
+ 8254629
@runtime_sizeof
- 402048
+ 402047
@runtime_alignof
- 49875
+ 49877
@expr_stmt
@@ -874,11 +874,11 @@
@routineexpr
- 5732184
+ 5732444
@type_operand
- 1405365
+ 1405362
@offsetofexpr
@@ -886,11 +886,11 @@
@typescompexpr
- 701935
+ 701934
@literal
- 7967037
+ 7966299
@aggregateliteral
@@ -898,23 +898,23 @@
@c_style_cast
- 6026986
+ 6026987
@temp_init
- 992080
+ 992173
@errorexpr
- 45685
+ 45686
@reference_to
- 1903026
+ 1903138
@ref_indirect
- 2107241
+ 2107325
@vacuous_destructor_call
@@ -974,23 +974,23 @@
@thisaccess
- 1558281
+ 1558277
@new_expr
- 46196
+ 46198
@delete_expr
- 11480
+ 11481
@throw_expr
- 24156
+ 24178
@condition_decl
- 408903
+ 408920
@braced_init_list
@@ -998,7 +998,7 @@
@type_id
- 47899
+ 47901
@sizeof_pack
@@ -1106,7 +1106,7 @@
@ctordirectinit
- 112833
+ 112837
@ctorvirtualinit
@@ -1122,19 +1122,19 @@
@dtordirectdestruct
- 39450
+ 39452
@dtorvirtualdestruct
- 3985
+ 3986
@dtorfielddestruct
- 39825
+ 39827
@static_cast
- 348054
+ 348053
@reinterpret_cast
@@ -1142,7 +1142,7 @@
@const_cast
- 24460
+ 24461
@dynamic_cast
@@ -1154,7 +1154,7 @@
@param_ref
- 163949
+ 164066
@noopexpr
@@ -1254,11 +1254,11 @@
@isfinalexpr
- 9402
+ 9403
@noexceptexpr
- 28344
+ 28465
@builtinshufflevector
@@ -1430,7 +1430,7 @@
@reuseexpr
- 847004
+ 847039
@istriviallycopyassignable
@@ -1530,7 +1530,7 @@
@requires_expr
- 16502
+ 16503
@nested_requirement
@@ -1542,7 +1542,7 @@
@concept_id
- 90430
+ 90433
@lambdacapture
@@ -1550,31 +1550,31 @@
@stmt_expr
- 2031618
+ 2031613
@stmt_if
- 990216
+ 990214
@stmt_while
- 39648
+ 39647
@stmt_goto
- 157895
+ 157909
@stmt_label
- 78018
+ 78025
@stmt_return
- 1241679
+ 1241788
@stmt_block
- 1728670
+ 1728666
@stmt_end_test_while
@@ -1586,11 +1586,11 @@
@stmt_switch_case
- 836117
+ 836152
@stmt_switch
- 411851
+ 411868
@stmt_asm
@@ -1598,11 +1598,11 @@
@stmt_decl
- 772426
+ 772425
@stmt_empty
- 429386
+ 429404
@stmt_continue
@@ -1614,7 +1614,7 @@
@stmt_try_block
- 26748
+ 26740
@stmt_microsoft_try
@@ -1638,11 +1638,11 @@
@stmt_handler
- 43790
+ 43781
@stmt_constexpr_if
- 106038
+ 106037
@stmt_co_return
@@ -1662,11 +1662,11 @@
@ppd_if
- 590944
+ 590942
@ppd_ifdef
- 214364
+ 214363
@ppd_ifndef
@@ -1674,7 +1674,7 @@
@ppd_elif
- 21915
+ 21917
@ppd_else
@@ -1682,15 +1682,15 @@
@ppd_endif
- 888973
+ 888971
@ppd_plain_include
- 318536
+ 318564
@ppd_define
- 2750129
+ 2750123
@ppd_undef
@@ -1698,7 +1698,7 @@
@ppd_pragma
- 406188
+ 406187
@ppd_include_next
@@ -1764,11 +1764,11 @@
compilations
- 12642
+ 12643
id
- 12642
+ 12643
cwd
@@ -1786,7 +1786,7 @@
1
2
- 12642
+ 12643
@@ -1812,11 +1812,11 @@
compilation_args
- 1012124
+ 1012213
id
- 12642
+ 12643
num
@@ -1824,7 +1824,7 @@
arg
- 29266
+ 29268
@@ -2152,12 +2152,12 @@
1
2
- 13402
+ 13403
2
3
- 12684
+ 12685
3
@@ -2183,12 +2183,12 @@
1
2
- 19380
+ 19382
2
3
- 8723
+ 8724
3
@@ -2203,15 +2203,15 @@
compilation_build_mode
- 12642
+ 2
id
- 12642
+ 2
mode
- 10
+ 2
@@ -2225,7 +2225,7 @@
1
2
- 12642
+ 2
@@ -2239,9 +2239,9 @@
12
- 1197
- 1198
- 10
+ 1
+ 2
+ 2
@@ -2513,7 +2513,7 @@
seconds
- 12634
+ 13396
@@ -2594,47 +2594,47 @@
3
4
- 980
+ 816
4
5
- 381
+ 544
- 5
- 8
- 217
+ 6
+ 7
+ 163
8
- 10
+ 9
163
10
11
- 108
+ 217
11
- 12
+ 15
217
- 14
- 17
+ 15
+ 19
217
- 17
- 22
+ 19
+ 26
217
- 25
- 93
- 217
+ 42
+ 92
+ 163
@@ -2699,6 +2699,11 @@
12
+
+ 2
+ 3
+ 54
+
3
4
@@ -2707,7 +2712,7 @@
4
5
- 1034
+ 980
5
@@ -2717,32 +2722,32 @@
6
7
- 490
+ 544
7
8
- 217
+ 163
8
9
- 326
+ 272
9
- 17
+ 14
381
- 23
- 48
+ 17
+ 44
381
- 83
- 84
- 54
+ 49
+ 87
+ 108
@@ -2798,13 +2803,13 @@
54
- 129
- 130
+ 144
+ 145
54
- 150
- 151
+ 149
+ 150
54
@@ -2821,27 +2826,27 @@
1
2
- 6643
+ 6807
2
3
- 2069
+ 3376
3
4
- 2014
+ 1633
4
5
- 1198
+ 1034
5
- 46
- 707
+ 45
+ 544
@@ -2857,32 +2862,32 @@
1
2
- 6480
+ 6208
2
3
- 1797
+ 2668
3
4
- 1361
+ 2069
4
5
- 1198
+ 925
5
- 7
- 1143
+ 8
+ 1198
- 7
- 77
- 653
+ 8
+ 74
+ 326
@@ -2898,12 +2903,17 @@
1
2
- 9693
+ 10510
2
3
- 2940
+ 2831
+
+
+ 3
+ 4
+ 54
@@ -3159,19 +3169,19 @@
compilation_finished
- 12642
+ 12643
id
- 12642
+ 12643
cpu_seconds
- 9537
+ 9379
elapsed_seconds
- 221
+ 232
@@ -3185,7 +3195,7 @@
1
2
- 12642
+ 12643
@@ -3201,7 +3211,7 @@
1
2
- 12642
+ 12643
@@ -3217,17 +3227,17 @@
1
2
- 8026
+ 7763
2
3
- 1056
+ 1172
3
- 28
- 454
+ 29
+ 443
@@ -3243,12 +3253,12 @@
1
2
- 8945
+ 8735
2
3
- 591
+ 644
@@ -3264,7 +3274,7 @@
1
2
- 42
+ 63
2
@@ -3273,72 +3283,37 @@
3
- 4
- 10
-
-
- 4
5
- 10
-
-
- 5
- 6
- 10
-
-
- 6
- 7
- 10
+ 21
8
9
- 10
+ 31
- 9
- 10
- 10
-
-
- 14
+ 12
15
- 10
-
-
- 15
- 16
21
- 34
- 35
- 10
+ 15
+ 37
+ 21
- 61
- 62
- 10
+ 51
+ 177
+ 21
- 172
- 173
- 10
+ 241
+ 286
+ 21
- 230
- 231
- 10
-
-
- 300
- 301
- 10
-
-
- 313
- 314
+ 326
+ 327
10
@@ -3355,7 +3330,7 @@
1
2
- 42
+ 63
2
@@ -3364,72 +3339,37 @@
3
- 4
- 10
-
-
- 4
5
- 10
-
-
- 5
- 6
- 10
-
-
- 6
- 7
- 10
+ 21
8
9
- 10
+ 31
- 9
- 10
- 10
-
-
- 14
+ 12
15
21
15
- 16
- 10
+ 37
+ 21
- 33
- 34
- 10
-
-
- 58
- 59
- 10
-
-
- 156
- 157
- 10
-
-
- 161
+ 48
162
- 10
+ 21
- 218
- 219
- 10
+ 165
+ 221
+ 21
- 247
- 248
+ 237
+ 238
10
@@ -3667,11 +3607,11 @@
locations_default
- 46945184
+ 46945087
id
- 46945184
+ 46945087
file
@@ -3679,7 +3619,7 @@
beginLine
- 7500635
+ 7500620
beginColumn
@@ -3687,7 +3627,7 @@
endLine
- 7501758
+ 7501742
endColumn
@@ -3705,7 +3645,7 @@
1
2
- 46945184
+ 46945087
@@ -3721,7 +3661,7 @@
1
2
- 46945184
+ 46945087
@@ -3737,7 +3677,7 @@
1
2
- 46945184
+ 46945087
@@ -3753,7 +3693,7 @@
1
2
- 46945184
+ 46945087
@@ -3769,7 +3709,7 @@
1
2
- 46945184
+ 46945087
@@ -4170,27 +4110,27 @@
1
2
- 4957467
+ 4957457
2
3
- 779068
+ 779066
3
4
- 543913
+ 543911
4
12
- 570360
+ 570359
12
97
- 563374
+ 563372
97
@@ -4211,22 +4151,22 @@
1
2
- 5019469
+ 5019458
2
3
- 1221309
+ 1221306
3
6
- 639971
+ 639969
6
57
- 563249
+ 563248
57
@@ -4247,22 +4187,22 @@
1
2
- 5641351
+ 5641339
2
3
- 483159
+ 483158
3
7
- 582086
+ 582085
7
25
- 565245
+ 565244
25
@@ -4283,12 +4223,12 @@
1
2
- 7034567
+ 7034552
2
85
- 466068
+ 466067
@@ -4304,27 +4244,27 @@
1
2
- 5026455
+ 5026444
2
3
- 739397
+ 739395
3
4
- 539796
+ 539795
4
12
- 586952
+ 586950
12
72
- 564122
+ 564121
72
@@ -4725,27 +4665,27 @@
1
2
- 4955347
+ 4955336
2
3
- 781563
+ 781561
3
4
- 544786
+ 544785
4
12
- 567865
+ 567864
12
95
- 563498
+ 563497
95
@@ -4766,22 +4706,22 @@
1
2
- 5016599
+ 5016589
2
3
- 1223804
+ 1223801
3
6
- 633359
+ 633357
6
52
- 564122
+ 564121
52
@@ -4802,12 +4742,12 @@
1
2
- 7051657
+ 7051643
2
15
- 450100
+ 450099
@@ -4823,22 +4763,22 @@
1
2
- 5640478
+ 5640466
2
3
- 480539
+ 480538
3
7
- 587076
+ 587075
7
25
- 568863
+ 568862
25
@@ -4859,27 +4799,27 @@
1
2
- 5025082
+ 5025072
2
3
- 743763
+ 743762
3
4
- 539546
+ 539545
4
12
- 587575
+ 587574
12
72
- 562750
+ 562749
72
@@ -5199,15 +5139,15 @@
files
- 65207
+ 65212
id
- 65207
+ 65212
name
- 65207
+ 65212
@@ -5221,7 +5161,7 @@
1
2
- 65207
+ 65212
@@ -5237,7 +5177,7 @@
1
2
- 65207
+ 65212
@@ -5247,15 +5187,15 @@
folders
- 12388
+ 12389
id
- 12388
+ 12389
name
- 12388
+ 12389
@@ -5269,7 +5209,7 @@
1
2
- 12388
+ 12389
@@ -5285,7 +5225,7 @@
1
2
- 12388
+ 12389
@@ -5295,15 +5235,15 @@
containerparent
- 77574
+ 77581
parent
- 12388
+ 12389
child
- 77574
+ 77581
@@ -5317,7 +5257,7 @@
1
2
- 6030
+ 6031
2
@@ -5368,7 +5308,7 @@
1
2
- 77574
+ 77581
@@ -5378,11 +5318,11 @@
numlines
- 807885
+ 807883
element_id
- 806762
+ 806761
num_lines
@@ -5408,7 +5348,7 @@
1
2
- 805640
+ 805638
2
@@ -5429,7 +5369,7 @@
1
2
- 805640
+ 805638
2
@@ -5450,7 +5390,7 @@
1
2
- 806513
+ 806511
2
@@ -6801,11 +6741,11 @@
fileannotations
- 4200182
+ 4200551
id
- 5766
+ 5767
kind
@@ -6813,11 +6753,11 @@
name
- 58711
+ 58716
value
- 39510
+ 39514
@@ -6836,7 +6776,7 @@
2
3
- 5565
+ 5566
@@ -7062,22 +7002,22 @@
1
2
- 11026
+ 11027
2
3
- 4361
+ 4362
3
5
- 5058
+ 5059
5
7
- 4097
+ 4098
7
@@ -7092,7 +7032,7 @@
16
19
- 4889
+ 4890
19
@@ -7107,17 +7047,17 @@
47
128
- 4921
+ 4922
128
459
- 4625
+ 4626
459
546
- 1710
+ 1711
@@ -7133,7 +7073,7 @@
1
2
- 58711
+ 58716
@@ -7149,17 +7089,17 @@
1
2
- 11586
+ 11587
2
3
- 7688
+ 7689
3
4
- 4097
+ 4098
4
@@ -7169,7 +7109,7 @@
6
8
- 3421
+ 3422
8
@@ -7179,17 +7119,17 @@
11
17
- 5396
+ 5397
17
23
- 4699
+ 4700
23
41
- 4678
+ 4679
41
@@ -7230,12 +7170,12 @@
5
8
- 2460
+ 2461
8
14
- 2967
+ 2968
14
@@ -7265,7 +7205,7 @@
81
151
- 3083
+ 3084
151
@@ -7280,7 +7220,7 @@
473
547
- 2312
+ 2313
@@ -7296,7 +7236,7 @@
1
2
- 39500
+ 39503
2
@@ -7317,7 +7257,7 @@
1
2
- 3400
+ 3401
2
@@ -7332,7 +7272,7 @@
5
8
- 2481
+ 2482
8
@@ -7362,7 +7302,7 @@
41
66
- 2988
+ 2989
66
@@ -7372,7 +7312,7 @@
92
113
- 2988
+ 2989
113
@@ -7392,15 +7332,15 @@
inmacroexpansion
- 149996213
+ 149995903
id
- 24670919
+ 24670868
inv
- 3705278
+ 3705270
@@ -7414,37 +7354,37 @@
1
3
- 2209403
+ 2209399
3
5
- 1474980
+ 1474977
5
6
- 1620372
+ 1620368
6
7
- 6582556
+ 6582542
7
8
- 8719015
+ 8718997
8
9
- 3557055
+ 3557047
9
22
- 507535
+ 507534
@@ -7460,17 +7400,17 @@
1
2
- 531662
+ 531661
2
3
- 743209
+ 743208
3
4
- 481513
+ 481512
4
@@ -7480,12 +7420,12 @@
7
8
- 282153
+ 282152
8
9
- 330247
+ 330246
9
@@ -7495,17 +7435,17 @@
10
11
- 444651
+ 444650
11
337
- 307799
+ 307798
339
423
- 281756
+ 281755
423
@@ -7520,15 +7460,15 @@
affectedbymacroexpansion
- 48735923
+ 48735823
id
- 7044754
+ 7044739
inv
- 3803128
+ 3803120
@@ -7542,32 +7482,32 @@
1
2
- 3846717
+ 3846709
2
3
- 766306
+ 766304
3
4
- 361842
+ 361841
4
5
- 772737
+ 772736
5
12
- 535161
+ 535160
12
50
- 556268
+ 556267
50
@@ -7588,27 +7528,27 @@
1
4
- 313249
+ 313248
4
7
- 316608
+ 316607
7
9
- 301088
+ 301087
9
12
- 342939
+ 342938
12
13
- 456005
+ 456004
13
@@ -7618,7 +7558,7 @@
14
15
- 408039
+ 408038
15
@@ -7628,17 +7568,17 @@
16
17
- 377678
+ 377677
17
18
- 200637
+ 200636
18
20
- 344256
+ 344255
20
@@ -7658,11 +7598,11 @@
macroinvocations
- 40337807
+ 40337724
id
- 40337807
+ 40337724
macro_id
@@ -7670,7 +7610,7 @@
location
- 5912946
+ 5912934
kind
@@ -7688,7 +7628,7 @@
1
2
- 40337807
+ 40337724
@@ -7704,7 +7644,7 @@
1
2
- 40337807
+ 40337724
@@ -7720,7 +7660,7 @@
1
2
- 40337807
+ 40337724
@@ -7736,7 +7676,7 @@
1
2
- 60774
+ 60773
2
@@ -7864,12 +7804,12 @@
1
2
- 5256194
+ 5256183
2
4
- 422314
+ 422313
4
@@ -7890,12 +7830,12 @@
1
2
- 5890782
+ 5890770
2
37
- 22164
+ 22163
@@ -7911,7 +7851,7 @@
1
2
- 5912946
+ 5912934
@@ -7984,15 +7924,15 @@
macroparent
- 33655219
+ 33655149
id
- 33655219
+ 33655149
parent_id
- 15926236
+ 15926203
@@ -8006,7 +7946,7 @@
1
2
- 33655219
+ 33655149
@@ -8022,27 +7962,27 @@
1
2
- 7806472
+ 7806456
2
3
- 1595482
+ 1595479
3
4
- 4702965
+ 4702955
4
5
- 1295315
+ 1295312
5
205
- 526000
+ 525999
@@ -8052,15 +7992,15 @@
macrolocationbind
- 6041019
+ 6040022
id
- 4222263
+ 4221190
location
- 2279211
+ 2279306
@@ -8074,12 +8014,12 @@
1
2
- 3296060
+ 3294948
2
3
- 491244
+ 491264
3
@@ -8089,7 +8029,7 @@
4
5
- 413873
+ 413891
5
@@ -8110,12 +8050,12 @@
1
2
- 1336957
+ 1337013
2
3
- 482121
+ 482141
3
@@ -8125,12 +8065,12 @@
4
5
- 428203
+ 428221
5
522
- 24118
+ 24119
@@ -8140,11 +8080,11 @@
macro_argument_unexpanded
- 82490730
+ 82495572
invocation
- 26282743
+ 26282637
argument_index
@@ -8152,7 +8092,7 @@
text
- 343239
+ 343270
@@ -8166,22 +8106,22 @@
1
2
- 9681332
+ 9679766
2
3
- 9769775
+ 9770635
3
4
- 5001825
+ 5002265
4
67
- 1829810
+ 1829971
@@ -8197,22 +8137,22 @@
1
2
- 9863952
+ 9862401
2
3
- 9787317
+ 9788179
3
4
- 4845176
+ 4845602
4
67
- 1786296
+ 1786453
@@ -8237,7 +8177,7 @@
646840
- 2488531
+ 2488302
31
@@ -8280,52 +8220,52 @@
1
2
- 39700
+ 39704
2
3
- 62323
+ 62329
3
4
- 21028
+ 21029
4
5
- 34578
+ 34581
5
6
- 39246
+ 39250
6
9
- 30871
+ 30874
9
15
- 28980
+ 28983
15
26
- 25886
+ 25888
26
57
- 27143
+ 27145
57
517
- 25991
+ 25994
518
@@ -8346,12 +8286,12 @@
1
2
- 243158
+ 243180
2
3
- 89868
+ 89876
3
@@ -8366,11 +8306,11 @@
macro_argument_expanded
- 82490730
+ 82495572
invocation
- 26282743
+ 26282637
argument_index
@@ -8378,7 +8318,7 @@
text
- 207914
+ 207933
@@ -8392,22 +8332,22 @@
1
2
- 9681332
+ 9679766
2
3
- 9769775
+ 9770635
3
4
- 5001825
+ 5002265
4
67
- 1829810
+ 1829971
@@ -8423,22 +8363,22 @@
1
2
- 12639750
+ 12638444
2
3
- 8427729
+ 8428470
3
4
- 4224959
+ 4225331
4
9
- 990304
+ 990391
@@ -8463,7 +8403,7 @@
646840
- 2488531
+ 2488302
31
@@ -8506,22 +8446,22 @@
1
2
- 21830
+ 21832
2
3
- 26858
+ 26860
3
4
- 43492
+ 43496
4
5
- 15905
+ 15907
5
@@ -8531,32 +8471,32 @@
6
7
- 18398
+ 18399
7
10
- 18968
+ 18970
10
19
- 18324
+ 18325
19
51
- 15778
+ 15780
51
252
- 15599
+ 15600
252
- 1169434
- 9494
+ 1169205
+ 9495
@@ -8572,17 +8512,17 @@
1
2
- 105076
+ 105086
2
3
- 88907
+ 88914
3
66
- 13930
+ 13931
@@ -8592,15 +8532,15 @@
functions
- 4049407
+ 4049399
id
- 4049407
+ 4049399
name
- 1693365
+ 1693362
kind
@@ -8618,7 +8558,7 @@
1
2
- 4049407
+ 4049399
@@ -8634,7 +8574,7 @@
1
2
- 4049407
+ 4049399
@@ -8650,12 +8590,12 @@
1
2
- 1447232
+ 1447229
2
4
- 138972
+ 138971
4
@@ -8676,7 +8616,7 @@
1
2
- 1690496
+ 1690493
2
@@ -8783,26 +8723,26 @@
builtin_functions
- 30924
+ 30926
id
- 30924
+ 30926
function_entry_point
- 1141516
+ 1141561
id
- 1137768
+ 1137813
entry_point
- 1141516
+ 1141561
@@ -8816,7 +8756,7 @@
1
2
- 1134566
+ 1134611
2
@@ -8837,7 +8777,7 @@
1
2
- 1141516
+ 1141561
@@ -8847,15 +8787,15 @@
function_return_type
- 4066872
+ 4066864
id
- 4049407
+ 4049399
return_type
- 619262
+ 619261
@@ -8869,7 +8809,7 @@
1
2
- 4031942
+ 4031934
2
@@ -8900,12 +8840,12 @@
3
5
- 48029
+ 48028
5
365
- 46532
+ 46531
432
@@ -9190,44 +9130,44 @@
purefunctions
- 131704
+ 131703
id
- 131704
+ 131703
function_deleted
- 88084
+ 88088
id
- 88084
+ 88088
function_defaulted
- 51680
+ 51682
id
- 51680
+ 51682
function_prototyped
- 4047910
+ 4047902
id
- 4047910
+ 4047902
@@ -9307,15 +9247,15 @@
member_function_this_type
- 674152
+ 674151
id
- 674152
+ 674151
this_type
- 176023
+ 176022
@@ -9329,7 +9269,7 @@
1
2
- 674152
+ 674151
@@ -9385,27 +9325,27 @@
fun_decls
- 4208963
+ 4208955
id
- 4202975
+ 4202967
function
- 4024831
+ 4024823
type_id
- 611278
+ 611277
name
- 1691868
+ 1691865
location
- 2813252
+ 2813247
@@ -9419,7 +9359,7 @@
1
2
- 4202975
+ 4202967
@@ -9435,7 +9375,7 @@
1
2
- 4196987
+ 4196979
2
@@ -9456,7 +9396,7 @@
1
2
- 4202975
+ 4202967
@@ -9472,7 +9412,7 @@
1
2
- 4202975
+ 4202967
@@ -9488,12 +9428,12 @@
1
2
- 3861283
+ 3861275
2
5
- 163548
+ 163547
@@ -9509,7 +9449,7 @@
1
2
- 4006368
+ 4006360
2
@@ -9530,7 +9470,7 @@
1
2
- 4024831
+ 4024823
@@ -9546,12 +9486,12 @@
1
2
- 3881742
+ 3881734
2
4
- 143089
+ 143088
@@ -9567,12 +9507,12 @@
1
2
- 295160
+ 295159
2
3
- 220559
+ 220558
3
@@ -9613,7 +9553,7 @@
3
5
- 48029
+ 48028
5
@@ -9639,7 +9579,7 @@
1
2
- 491517
+ 491516
2
@@ -9670,17 +9610,17 @@
1
2
- 454965
+ 454964
2
3
- 69486
+ 69485
3
6
- 56013
+ 56012
6
@@ -9701,17 +9641,17 @@
1
2
- 1331339
+ 1331336
2
3
- 194486
+ 194485
3
11
- 129491
+ 129490
11
@@ -9732,12 +9672,12 @@
1
2
- 1446733
+ 1446730
2
4
- 139471
+ 139470
4
@@ -9758,7 +9698,7 @@
1
2
- 1602048
+ 1602045
2
@@ -9779,7 +9719,7 @@
1
2
- 1367267
+ 1367264
2
@@ -9805,17 +9745,17 @@
1
2
- 2420288
+ 2420283
2
3
- 251497
+ 251496
3
211
- 141467
+ 141466
@@ -9831,7 +9771,7 @@
1
2
- 2439000
+ 2438995
2
@@ -9841,7 +9781,7 @@
3
211
- 140968
+ 140967
@@ -9857,7 +9797,7 @@
1
2
- 2698856
+ 2698851
2
@@ -9878,7 +9818,7 @@
1
2
- 2774081
+ 2774075
2
@@ -9893,11 +9833,11 @@
fun_def
- 1422282
+ 1422279
id
- 1422282
+ 1422279
@@ -9926,11 +9866,11 @@
fun_decl_specifiers
- 4279697
+ 4279688
id
- 1748256
+ 1748252
name
@@ -9958,7 +9898,7 @@
3
4
- 1100176
+ 1100174
4
@@ -10160,26 +10100,26 @@
fun_decl_empty_throws
- 420912
+ 420911
fun_decl
- 420912
+ 420911
fun_decl_noexcept
- 141825
+ 141830
fun_decl
- 141825
+ 141830
constant
- 141348
+ 141353
@@ -10193,7 +10133,7 @@
1
2
- 141825
+ 141830
@@ -10209,7 +10149,7 @@
1
2
- 140905
+ 140910
2
@@ -10224,11 +10164,11 @@
fun_decl_empty_noexcept
- 1163674
+ 1163672
fun_decl
- 1163674
+ 1163672
@@ -10333,7 +10273,7 @@
fun_requires
- 29110
+ 29111
id
@@ -10345,7 +10285,7 @@
constraint
- 28873
+ 28875
@@ -10359,7 +10299,7 @@
1
2
- 10047
+ 10048
2
@@ -10463,7 +10403,7 @@
1
2
- 28637
+ 28638
2
@@ -10484,7 +10424,7 @@
1
2
- 28873
+ 28875
@@ -10494,11 +10434,11 @@
param_decl_bind
- 7310390
+ 7310375
id
- 7310390
+ 7310375
index
@@ -10506,7 +10446,7 @@
fun_decl
- 3531692
+ 3531684
@@ -10520,7 +10460,7 @@
1
2
- 7310390
+ 7310375
@@ -10536,7 +10476,7 @@
1
2
- 7310390
+ 7310375
@@ -10634,22 +10574,22 @@
1
2
- 1508984
+ 1508981
2
3
- 976298
+ 976296
3
4
- 602046
+ 602045
4
5
- 290669
+ 290668
5
@@ -10670,22 +10610,22 @@
1
2
- 1508984
+ 1508981
2
3
- 976298
+ 976296
3
4
- 602046
+ 602045
4
5
- 290669
+ 290668
5
@@ -10700,27 +10640,27 @@
var_decls
- 9389985
+ 9389965
id
- 9383123
+ 9383104
variable
- 9034695
+ 9034676
type_id
- 1456464
+ 1456461
name
- 852546
+ 852544
location
- 6274585
+ 6274572
@@ -10734,7 +10674,7 @@
1
2
- 9383123
+ 9383104
@@ -10750,7 +10690,7 @@
1
2
- 9376262
+ 9376243
2
@@ -10771,7 +10711,7 @@
1
2
- 9383123
+ 9383104
@@ -10787,7 +10727,7 @@
1
2
- 9383123
+ 9383104
@@ -10803,12 +10743,12 @@
1
2
- 8703731
+ 8703713
2
5
- 330963
+ 330962
@@ -10824,12 +10764,12 @@
1
2
- 8981176
+ 8981158
2
3
- 53518
+ 53517
@@ -10845,7 +10785,7 @@
1
2
- 8929280
+ 8929262
2
@@ -10866,12 +10806,12 @@
1
2
- 8783072
+ 8783054
2
4
- 251622
+ 251621
@@ -10887,12 +10827,12 @@
1
2
- 849926
+ 849924
2
3
- 284057
+ 284056
3
@@ -10923,12 +10863,12 @@
1
2
- 870759
+ 870758
2
3
- 269087
+ 269086
3
@@ -10938,7 +10878,7 @@
5
11
- 113024
+ 113023
11
@@ -10959,12 +10899,12 @@
1
2
- 1119512
+ 1119510
2
3
- 192615
+ 192614
3
@@ -10990,12 +10930,12 @@
1
2
- 985405
+ 985403
2
3
- 219062
+ 219061
3
@@ -11026,7 +10966,7 @@
1
2
- 465943
+ 465942
2
@@ -11067,12 +11007,12 @@
1
2
- 478917
+ 478916
2
3
- 165045
+ 165044
3
@@ -11108,7 +11048,7 @@
1
2
- 654691
+ 654690
2
@@ -11118,7 +11058,7 @@
3
11
- 65494
+ 65493
11
@@ -11139,7 +11079,7 @@
1
2
- 493763
+ 493762
2
@@ -11154,7 +11094,7 @@
4
8
- 64995
+ 64994
8
@@ -11175,12 +11115,12 @@
1
2
- 5774834
+ 5774822
2
21
- 472306
+ 472305
21
@@ -11201,12 +11141,12 @@
1
2
- 5855673
+ 5855660
2
2935
- 418912
+ 418911
@@ -11222,12 +11162,12 @@
1
2
- 5976057
+ 5976045
2
2555
- 298528
+ 298527
@@ -11243,7 +11183,7 @@
1
2
- 6262235
+ 6262222
2
@@ -11258,11 +11198,11 @@
var_def
- 3766972
+ 3766964
id
- 3766972
+ 3766964
@@ -11280,11 +11220,11 @@
var_decl_specifiers
- 489895
+ 489894
id
- 489895
+ 489894
name
@@ -11302,7 +11242,7 @@
1
2
- 489895
+ 489894
@@ -11412,19 +11352,19 @@
type_decls
- 1633485
+ 1633482
id
- 1633485
+ 1633482
type_id
- 1614523
+ 1614520
location
- 1547407
+ 1547404
@@ -11438,7 +11378,7 @@
1
2
- 1633485
+ 1633482
@@ -11454,7 +11394,7 @@
1
2
- 1633485
+ 1633482
@@ -11470,7 +11410,7 @@
1
2
- 1598181
+ 1598177
2
@@ -11491,7 +11431,7 @@
1
2
- 1598305
+ 1598302
2
@@ -11512,7 +11452,7 @@
1
2
- 1525326
+ 1525323
2
@@ -11533,7 +11473,7 @@
1
2
- 1525451
+ 1525448
2
@@ -11548,22 +11488,22 @@
type_def
- 1095560
+ 1095558
id
- 1095560
+ 1095558
type_decl_top
- 673960
+ 673959
type_decl
- 673960
+ 673959
@@ -11574,7 +11514,7 @@
id
- 2043
+ 2044
constraint
@@ -11643,11 +11583,11 @@
namespace_decls
- 407776
+ 407775
id
- 407776
+ 407775
namespace_id
@@ -11655,11 +11595,11 @@
location
- 407776
+ 407775
bodylocation
- 407776
+ 407775
@@ -11673,7 +11613,7 @@
1
2
- 407776
+ 407775
@@ -11689,7 +11629,7 @@
1
2
- 407776
+ 407775
@@ -11705,7 +11645,7 @@
1
2
- 407776
+ 407775
@@ -11919,7 +11859,7 @@
1
2
- 407776
+ 407775
@@ -11935,7 +11875,7 @@
1
2
- 407776
+ 407775
@@ -11951,7 +11891,7 @@
1
2
- 407776
+ 407775
@@ -11967,7 +11907,7 @@
1
2
- 407776
+ 407775
@@ -11983,7 +11923,7 @@
1
2
- 407776
+ 407775
@@ -11999,7 +11939,7 @@
1
2
- 407776
+ 407775
@@ -12009,19 +11949,19 @@
usings
- 272076
+ 271973
id
- 272076
+ 271973
element_id
- 59060
+ 58938
location
- 26847
+ 26849
kind
@@ -12039,7 +11979,7 @@
1
2
- 272076
+ 271973
@@ -12055,7 +11995,7 @@
1
2
- 272076
+ 271973
@@ -12071,7 +12011,7 @@
1
2
- 272076
+ 271973
@@ -12087,7 +12027,7 @@
1
2
- 51329
+ 51206
2
@@ -12113,7 +12053,7 @@
1
2
- 51329
+ 51206
2
@@ -12139,7 +12079,7 @@
1
2
- 59060
+ 58938
@@ -12155,17 +12095,17 @@
1
2
- 21175
+ 21177
2
4
- 2291
+ 2292
4
132
- 1953
+ 1954
145
@@ -12186,17 +12126,17 @@
1
2
- 21175
+ 21177
2
4
- 2291
+ 2292
4
132
- 1953
+ 1954
145
@@ -12217,7 +12157,7 @@
1
2
- 26847
+ 26849
@@ -12236,8 +12176,8 @@
10
- 25368
- 25369
+ 25356
+ 25357
10
@@ -12257,8 +12197,8 @@
10
- 5378
- 5379
+ 5366
+ 5367
10
@@ -12290,15 +12230,15 @@
using_container
- 580125
+ 580049
parent
- 21894
+ 21874
child
- 272076
+ 271973
@@ -12312,12 +12252,12 @@
1
2
- 10371
+ 10372
2
3
- 1615
+ 1616
3
@@ -12327,7 +12267,7 @@
6
7
- 2291
+ 2270
7
@@ -12363,27 +12303,27 @@
1
2
- 96606
+ 96488
2
3
- 120274
+ 120285
3
4
- 20098
+ 20100
4
5
- 26710
+ 26712
5
65
- 8385
+ 8386
@@ -12393,15 +12333,15 @@
static_asserts
- 173263
+ 173262
id
- 173263
+ 173262
condition
- 173263
+ 173262
message
@@ -12427,7 +12367,7 @@
1
2
- 173263
+ 173262
@@ -12443,7 +12383,7 @@
1
2
- 173263
+ 173262
@@ -12459,7 +12399,7 @@
1
2
- 173263
+ 173262
@@ -12475,7 +12415,7 @@
1
2
- 173263
+ 173262
@@ -12491,7 +12431,7 @@
1
2
- 173263
+ 173262
@@ -12507,7 +12447,7 @@
1
2
- 173263
+ 173262
@@ -12523,7 +12463,7 @@
1
2
- 173263
+ 173262
@@ -12539,7 +12479,7 @@
1
2
- 173263
+ 173262
@@ -13001,15 +12941,15 @@
params
- 7060764
+ 7060750
id
- 7019846
+ 7019832
function
- 3404945
+ 3404938
index
@@ -13017,7 +12957,7 @@
type_id
- 1220311
+ 1220308
@@ -13031,7 +12971,7 @@
1
2
- 7019846
+ 7019832
@@ -13047,7 +12987,7 @@
1
2
- 7019846
+ 7019832
@@ -13063,7 +13003,7 @@
1
2
- 6978928
+ 6978913
2
@@ -13084,17 +13024,17 @@
1
2
- 1473180
+ 1473177
2
3
- 926273
+ 926272
3
4
- 578718
+ 578717
4
@@ -13120,17 +13060,17 @@
1
2
- 1473180
+ 1473177
2
3
- 926273
+ 926272
3
4
- 578718
+ 578717
4
@@ -13156,22 +13096,22 @@
1
2
- 1781689
+ 1781685
2
3
- 1030690
+ 1030688
3
4
- 437500
+ 437499
4
11
- 155065
+ 155064
@@ -13310,7 +13250,7 @@
1
2
- 737526
+ 737524
2
@@ -13346,12 +13286,12 @@
1
2
- 819612
+ 819610
2
3
- 179641
+ 179640
3
@@ -13382,7 +13322,7 @@
1
2
- 995136
+ 995134
2
@@ -13406,7 +13346,7 @@
new
- 151070
+ 151069
old
@@ -13424,7 +13364,7 @@
1
2
- 142370
+ 142369
2
@@ -13480,19 +13420,19 @@
membervariables
- 1500128
+ 1500125
id
- 1497677
+ 1497674
type_id
- 456186
+ 456185
name
- 642157
+ 642156
@@ -13506,7 +13446,7 @@
1
2
- 1495336
+ 1495333
2
@@ -13527,7 +13467,7 @@
1
2
- 1497677
+ 1497674
@@ -13543,7 +13483,7 @@
1
2
- 338450
+ 338449
2
@@ -13558,7 +13498,7 @@
10
4445
- 10129
+ 10128
@@ -13574,7 +13514,7 @@
1
2
- 356040
+ 356039
2
@@ -13605,7 +13545,7 @@
1
2
- 421497
+ 421496
2
@@ -13636,7 +13576,7 @@
1
2
- 524421
+ 524420
2
@@ -13656,11 +13596,11 @@
globalvariables
- 488149
+ 488148
id
- 488149
+ 488148
type_id
@@ -13668,7 +13608,7 @@
name
- 112525
+ 112524
@@ -13682,7 +13622,7 @@
1
2
- 488149
+ 488148
@@ -13698,7 +13638,7 @@
1
2
- 488149
+ 488148
@@ -13842,19 +13782,19 @@
localvariables
- 726313
+ 726300
id
- 726313
+ 726300
type_id
- 53445
+ 53440
name
- 101635
+ 101634
@@ -13868,7 +13808,7 @@
1
2
- 726313
+ 726300
@@ -13884,7 +13824,7 @@
1
2
- 726313
+ 726300
@@ -13900,7 +13840,7 @@
1
2
- 28869
+ 28865
2
@@ -13946,7 +13886,7 @@
1
2
- 38374
+ 38369
2
@@ -13977,7 +13917,7 @@
1
2
- 62541
+ 62540
2
@@ -13987,7 +13927,7 @@
3
4
- 6531
+ 6530
4
@@ -14018,7 +13958,7 @@
1
2
- 84587
+ 84586
2
@@ -14043,11 +13983,11 @@
autoderivation
- 229167
+ 229166
var
- 229167
+ 229166
derivation_type
@@ -14065,7 +14005,7 @@
1
2
- 229167
+ 229166
@@ -14111,15 +14051,15 @@
orphaned_variables
- 44322
+ 44324
var
- 44322
+ 44324
function
- 41051
+ 41053
@@ -14133,7 +14073,7 @@
1
2
- 44322
+ 44324
@@ -14149,7 +14089,7 @@
1
2
- 40200
+ 40201
2
@@ -14164,11 +14104,11 @@
enumconstants
- 347817
+ 347816
id
- 347817
+ 347816
parent
@@ -14176,7 +14116,7 @@
index
- 13941
+ 13940
type_id
@@ -14188,7 +14128,7 @@
location
- 320425
+ 320424
@@ -14202,7 +14142,7 @@
1
2
- 347817
+ 347816
@@ -14218,7 +14158,7 @@
1
2
- 347817
+ 347816
@@ -14234,7 +14174,7 @@
1
2
- 347817
+ 347816
@@ -14250,7 +14190,7 @@
1
2
- 347817
+ 347816
@@ -14266,7 +14206,7 @@
1
2
- 347817
+ 347816
@@ -14674,7 +14614,7 @@
1
2
- 13941
+ 13940
@@ -14977,7 +14917,7 @@
1
2
- 319390
+ 319389
2
@@ -14998,7 +14938,7 @@
1
2
- 320425
+ 320424
@@ -15014,7 +14954,7 @@
1
2
- 319390
+ 319389
2
@@ -15035,7 +14975,7 @@
1
2
- 320425
+ 320424
@@ -15051,7 +14991,7 @@
1
2
- 319390
+ 319389
2
@@ -15743,15 +15683,15 @@
derivedtypes
- 3030942
+ 3030936
id
- 3030942
+ 3030936
name
- 1460581
+ 1460578
kind
@@ -15759,7 +15699,7 @@
type_id
- 1946734
+ 1946730
@@ -15773,7 +15713,7 @@
1
2
- 3030942
+ 3030936
@@ -15789,7 +15729,7 @@
1
2
- 3030942
+ 3030936
@@ -15805,7 +15745,7 @@
1
2
- 3030942
+ 3030936
@@ -15821,7 +15761,7 @@
1
2
- 1344064
+ 1344061
2
@@ -15847,7 +15787,7 @@
1
2
- 1460581
+ 1460578
@@ -15863,7 +15803,7 @@
1
2
- 1344188
+ 1344185
2
@@ -16012,7 +15952,7 @@
1
2
- 1317492
+ 1317489
2
@@ -16043,7 +15983,7 @@
1
2
- 1318989
+ 1318986
2
@@ -16074,17 +16014,17 @@
1
2
- 1319363
+ 1319360
2
3
- 376497
+ 376496
3
4
- 123503
+ 123502
4
@@ -16099,11 +16039,11 @@
pointerishsize
- 2247383
+ 2247379
id
- 2247383
+ 2247379
size
@@ -16125,7 +16065,7 @@
1
2
- 2247383
+ 2247379
@@ -16141,7 +16081,7 @@
1
2
- 2247383
+ 2247379
@@ -16664,15 +16604,15 @@
typedefbase
- 1762205
+ 1762360
id
- 1762205
+ 1762360
type_id
- 837964
+ 838037
@@ -16686,7 +16626,7 @@
1
2
- 1762205
+ 1762360
@@ -16702,22 +16642,22 @@
1
2
- 662494
+ 662552
2
3
- 80933
+ 80940
3
6
- 64172
+ 64177
6
4526
- 30364
+ 30367
@@ -16727,7 +16667,7 @@
decltypes
- 814477
+ 814475
id
@@ -16735,7 +16675,7 @@
expr
- 814477
+ 814475
kind
@@ -16865,7 +16805,7 @@
1
2
- 814477
+ 814475
@@ -16881,7 +16821,7 @@
1
2
- 814477
+ 814475
@@ -16897,7 +16837,7 @@
1
2
- 814477
+ 814475
@@ -16913,7 +16853,7 @@
1
2
- 814477
+ 814475
@@ -17175,11 +17115,11 @@
type_operators
- 7960
+ 7961
id
- 7960
+ 7961
arg_type
@@ -17191,7 +17131,7 @@
base_type
- 5249
+ 5250
@@ -17205,7 +17145,7 @@
1
2
- 7960
+ 7961
@@ -17221,7 +17161,7 @@
1
2
- 7960
+ 7961
@@ -17237,7 +17177,7 @@
1
2
- 7960
+ 7961
@@ -17471,7 +17411,7 @@
1
2
- 4087
+ 4088
2
@@ -17491,15 +17431,15 @@
usertypes
- 4151345
+ 4151710
id
- 4151345
+ 4151710
name
- 918453
+ 918534
kind
@@ -17517,7 +17457,7 @@
1
2
- 4151345
+ 4151710
@@ -17533,7 +17473,7 @@
1
2
- 4151345
+ 4151710
@@ -17549,22 +17489,22 @@
1
2
- 654203
+ 654261
2
3
- 158655
+ 158669
3
8
- 70561
+ 70567
8
32669
- 35032
+ 35035
@@ -17580,12 +17520,12 @@
1
2
- 866712
+ 866789
2
10
- 51741
+ 51745
@@ -17737,11 +17677,11 @@
usertypesize
- 1363697
+ 1363817
id
- 1363697
+ 1363817
size
@@ -17763,7 +17703,7 @@
1
2
- 1363697
+ 1363817
@@ -17779,7 +17719,7 @@
1
2
- 1363697
+ 1363817
@@ -18037,11 +17977,11 @@
usertype_alias_kind
- 1762205
+ 1762360
id
- 1762205
+ 1762360
alias_kind
@@ -18059,7 +17999,7 @@
1
2
- 1762205
+ 1762360
@@ -18090,26 +18030,26 @@
nontype_template_parameters
- 766257
+ 766287
id
- 766257
+ 766287
type_template_type_constraint
- 27152
+ 27153
id
- 13382
+ 13383
constraint
- 26012
+ 26013
@@ -18123,7 +18063,7 @@
1
2
- 10219
+ 10220
2
@@ -18159,7 +18099,7 @@
1
2
- 24872
+ 24873
2
@@ -18174,15 +18114,15 @@
mangled_name
- 7852432
+ 7852416
id
- 7852432
+ 7852416
mangled_name
- 6364281
+ 6364268
is_complete
@@ -18200,7 +18140,7 @@
1
2
- 7852432
+ 7852416
@@ -18216,7 +18156,7 @@
1
2
- 7852432
+ 7852416
@@ -18232,12 +18172,12 @@
1
2
- 6036187
+ 6036174
2
1120
- 328094
+ 328093
@@ -18253,7 +18193,7 @@
1
2
- 6364281
+ 6364268
@@ -18305,59 +18245,59 @@
is_pod_class
- 593736
+ 593760
id
- 593736
+ 593760
is_standard_layout_class
- 1124319
+ 1124418
id
- 1124319
+ 1124418
is_complete
- 1346175
+ 1346294
id
- 1346175
+ 1346294
is_class_template
- 232153
+ 232173
id
- 232153
+ 232173
class_instantiation
- 1125977
+ 1126076
to
- 1122936
+ 1123034
from
- 71797
+ 71803
@@ -18371,7 +18311,7 @@
1
2
- 1120802
+ 1120901
2
@@ -18392,42 +18332,42 @@
1
2
- 20499
+ 20501
2
3
- 12885
+ 12886
3
4
- 7107
+ 7108
4
5
- 4657
+ 4658
5
7
- 6072
+ 6073
7
10
- 5713
+ 5714
10
17
- 5903
+ 5904
17
51
- 5396
+ 5397
51
@@ -18442,11 +18382,11 @@
class_template_argument
- 2898417
+ 2898672
type_id
- 1366992
+ 1367112
index
@@ -18454,7 +18394,7 @@
arg_type
- 822026
+ 822099
@@ -18468,27 +18408,27 @@
1
2
- 579311
+ 579362
2
3
- 410252
+ 410289
3
4
- 251027
+ 251049
4
7
- 103091
+ 103100
7
113
- 23309
+ 23311
@@ -18504,22 +18444,22 @@
1
2
- 607849
+ 607902
2
3
- 424257
+ 424294
3
4
- 251861
+ 251883
4
113
- 83024
+ 83031
@@ -18627,27 +18567,27 @@
1
2
- 513671
+ 513716
2
3
- 167632
+ 167647
3
5
- 75082
+ 75088
5
47
- 61732
+ 61737
47
12618
- 3907
+ 3908
@@ -18663,17 +18603,17 @@
1
2
- 723751
+ 723815
2
3
- 79908
+ 79915
3
22
- 18366
+ 18368
@@ -18683,11 +18623,11 @@
class_template_argument_value
- 510065
+ 510086
type_id
- 205804
+ 205812
index
@@ -18695,7 +18635,7 @@
arg_value
- 509929
+ 509949
@@ -18709,12 +18649,12 @@
1
2
- 155792
+ 155799
2
3
- 43368
+ 43370
3
@@ -18735,12 +18675,12 @@
1
2
- 147923
+ 147929
2
3
- 40472
+ 40474
3
@@ -18878,7 +18818,7 @@
1
2
- 509793
+ 509813
2
@@ -18899,7 +18839,7 @@
1
2
- 509929
+ 509949
@@ -18909,15 +18849,15 @@
is_proxy_class_for
- 48435
+ 48439
id
- 48435
+ 48439
templ_param_id
- 45763
+ 45767
@@ -18931,7 +18871,7 @@
1
2
- 48435
+ 48439
@@ -18947,7 +18887,7 @@
1
2
- 45045
+ 45048
2
@@ -18962,19 +18902,19 @@
type_mentions
- 5903906
+ 5903894
id
- 5903906
+ 5903894
type_id
- 276914
+ 276913
location
- 5847598
+ 5847585
kind
@@ -18992,7 +18932,7 @@
1
2
- 5903906
+ 5903894
@@ -19008,7 +18948,7 @@
1
2
- 5903906
+ 5903894
@@ -19024,7 +18964,7 @@
1
2
- 5903906
+ 5903894
@@ -19040,7 +18980,7 @@
1
2
- 136796
+ 136795
2
@@ -19091,7 +19031,7 @@
1
2
- 136796
+ 136795
2
@@ -19142,7 +19082,7 @@
1
2
- 276914
+ 276913
@@ -19158,7 +19098,7 @@
1
2
- 5801908
+ 5801896
2
@@ -19179,7 +19119,7 @@
1
2
- 5801908
+ 5801896
2
@@ -19200,7 +19140,7 @@
1
2
- 5847598
+ 5847585
@@ -19258,26 +19198,26 @@
is_function_template
- 1331339
+ 1331336
id
- 1331339
+ 1331336
function_instantiation
- 973595
+ 973633
to
- 973595
+ 973633
from
- 182638
+ 182645
@@ -19291,7 +19231,7 @@
1
2
- 973595
+ 973633
@@ -19307,17 +19247,17 @@
1
2
- 110584
+ 110589
2
3
- 42789
+ 42791
3
9
- 14376
+ 14377
9
@@ -19337,11 +19277,11 @@
function_template_argument
- 2484714
+ 2484813
function_id
- 1453238
+ 1453296
index
@@ -19349,7 +19289,7 @@
arg_type
- 297992
+ 298004
@@ -19363,22 +19303,22 @@
1
2
- 782984
+ 783015
2
3
- 413142
+ 413158
3
4
- 171804
+ 171811
4
15
- 85306
+ 85309
@@ -19394,22 +19334,22 @@
1
2
- 802130
+ 802162
2
3
- 411234
+ 411251
3
4
- 169624
+ 169631
4
9
- 70248
+ 70250
@@ -19547,32 +19487,32 @@
1
2
- 174768
+ 174775
2
3
- 26334
+ 26335
3
4
- 19997
+ 19998
4
6
- 22655
+ 22656
6
11
- 23234
+ 23235
11
76
- 23370
+ 23371
79
@@ -19593,12 +19533,12 @@
1
2
- 256804
+ 256814
2
3
- 32126
+ 32127
3
@@ -19613,11 +19553,11 @@
function_template_argument_value
- 452763
+ 452781
function_id
- 196776
+ 196784
index
@@ -19625,7 +19565,7 @@
arg_value
- 450072
+ 450090
@@ -19639,17 +19579,17 @@
1
2
- 151398
+ 151404
2
3
- 42891
+ 42893
3
8
- 2486
+ 2487
@@ -19665,17 +19605,17 @@
1
2
- 144482
+ 144488
2
3
- 36691
+ 36692
3
54
- 14853
+ 14854
54
@@ -19818,7 +19758,7 @@
1
2
- 447380
+ 447398
2
@@ -19839,7 +19779,7 @@
1
2
- 450072
+ 450090
@@ -19860,11 +19800,11 @@
variable_instantiation
- 422780
+ 422779
to
- 422780
+ 422779
from
@@ -19882,7 +19822,7 @@
1
2
- 422780
+ 422779
@@ -19943,11 +19883,11 @@
variable_template_argument
- 768464
+ 768462
variable_id
- 400948
+ 400947
index
@@ -19955,7 +19895,7 @@
arg_type
- 256113
+ 256112
@@ -19969,7 +19909,7 @@
1
2
- 156562
+ 156561
2
@@ -20005,7 +19945,7 @@
2
3
- 180015
+ 180014
3
@@ -20413,7 +20353,7 @@
template_template_argument
- 9674
+ 9675
type_id
@@ -20425,7 +20365,7 @@
arg_type
- 9082
+ 9083
@@ -20439,7 +20379,7 @@
1
2
- 5016
+ 5017
2
@@ -20470,7 +20410,7 @@
1
2
- 5037
+ 5038
2
@@ -20623,7 +20563,7 @@
1
2
- 9051
+ 9052
3
@@ -20644,7 +20584,7 @@
1
2
- 9061
+ 9062
2
@@ -20911,11 +20851,11 @@
concept_instantiation
- 90430
+ 90433
to
- 90430
+ 90433
from
@@ -20933,7 +20873,7 @@
1
2
- 90430
+ 90433
@@ -21029,22 +20969,22 @@
is_type_constraint
- 36899
+ 36900
concept_id
- 36899
+ 36900
concept_template_argument
- 113042
+ 113047
concept_id
- 76380
+ 76383
index
@@ -21052,7 +20992,7 @@
arg_type
- 21429
+ 21430
@@ -21066,12 +21006,12 @@
1
2
- 46473
+ 46475
2
3
- 24678
+ 24679
3
@@ -21092,17 +21032,17 @@
1
2
- 50088
+ 50090
2
3
- 22376
+ 22377
3
7
- 3915
+ 3916
@@ -21402,15 +21342,15 @@
routinetypes
- 604298
+ 604322
id
- 604298
+ 604322
return_type
- 283854
+ 283865
@@ -21424,7 +21364,7 @@
1
2
- 604298
+ 604322
@@ -21440,12 +21380,12 @@
1
2
- 234217
+ 234226
2
3
- 35090
+ 35091
3
@@ -21460,11 +21400,11 @@
routinetypeargs
- 1176653
+ 1176651
routine
- 415071
+ 415070
index
@@ -21547,7 +21487,7 @@
5
10
- 32892
+ 32891
10
@@ -21826,19 +21766,19 @@
ptrtomembers
- 9727
+ 9728
id
- 9727
+ 9728
type_id
- 7973
+ 7974
class_id
- 4868
+ 4869
@@ -21852,7 +21792,7 @@
1
2
- 9727
+ 9728
@@ -21868,7 +21808,7 @@
1
2
- 9727
+ 9728
@@ -22030,11 +21970,11 @@
typespecifiers
- 854197
+ 854272
type_id
- 849053
+ 849128
spec_id
@@ -22052,7 +21992,7 @@
1
2
- 843910
+ 843984
2
@@ -22123,11 +22063,11 @@
funspecifiers
- 9714461
+ 9714441
func_id
- 4008863
+ 4008855
spec_id
@@ -22145,22 +22085,22 @@
1
2
- 1527073
+ 1527070
2
3
- 506238
+ 506237
3
4
- 1036927
+ 1036925
4
5
- 692865
+ 692863
5
@@ -22281,11 +22221,11 @@
varspecifiers
- 3075354
+ 3075347
var_id
- 2314873
+ 2314869
spec_id
@@ -22303,12 +22243,12 @@
1
2
- 1658061
+ 1658058
2
3
- 553643
+ 553642
3
@@ -22427,11 +22367,11 @@
attributes
- 653818
+ 653817
id
- 653818
+ 653817
kind
@@ -22447,7 +22387,7 @@
location
- 647705
+ 647704
@@ -22461,7 +22401,7 @@
1
2
- 653818
+ 653817
@@ -22477,7 +22417,7 @@
1
2
- 653818
+ 653817
@@ -22493,7 +22433,7 @@
1
2
- 653818
+ 653817
@@ -22509,7 +22449,7 @@
1
2
- 653818
+ 653817
@@ -22912,7 +22852,7 @@
1
2
- 641842
+ 641841
2
@@ -22933,7 +22873,7 @@
1
2
- 647705
+ 647704
@@ -22949,7 +22889,7 @@
1
2
- 642590
+ 642589
2
@@ -22970,7 +22910,7 @@
1
2
- 647705
+ 647704
@@ -23250,7 +23190,7 @@
1
2
- 68748
+ 68747
2
@@ -23508,7 +23448,7 @@
1
2
- 56936
+ 56935
2
@@ -23679,15 +23619,15 @@
attribute_arg_constant
- 71712
+ 71856
arg
- 71712
+ 71856
constant
- 71712
+ 71856
@@ -23701,7 +23641,7 @@
1
2
- 71712
+ 71856
@@ -23717,7 +23657,7 @@
1
2
- 71712
+ 71856
@@ -23832,7 +23772,7 @@
type_id
- 94561
+ 94560
spec_id
@@ -23891,15 +23831,15 @@
funcattributes
- 843564
+ 843562
func_id
- 799028
+ 799026
spec_id
- 616767
+ 616766
@@ -23913,7 +23853,7 @@
1
2
- 758983
+ 758981
2
@@ -23934,12 +23874,12 @@
1
2
- 571732
+ 571731
2
213
- 45035
+ 45034
@@ -24012,7 +23952,7 @@
namespaceattributes
- 5995
+ 5996
namespace_id
@@ -24020,7 +23960,7 @@
spec_id
- 5995
+ 5996
@@ -24060,7 +24000,7 @@
1
2
- 5995
+ 5996
@@ -24138,15 +24078,15 @@
unspecifiedtype
- 7172915
+ 7172900
type_id
- 7172915
+ 7172900
unspecified_type_id
- 3962331
+ 3962323
@@ -24160,7 +24100,7 @@
1
2
- 7172915
+ 7172900
@@ -24176,17 +24116,17 @@
1
2
- 2480542
+ 2480537
2
3
- 1116768
+ 1116765
3
7
- 302645
+ 302644
7
@@ -24201,11 +24141,11 @@
member
- 4189627
+ 4189618
parent
- 543289
+ 543288
index
@@ -24213,7 +24153,7 @@
child
- 4185011
+ 4185003
@@ -24227,7 +24167,7 @@
1
2
- 128992
+ 128991
2
@@ -24308,7 +24248,7 @@
4
5
- 45035
+ 45034
5
@@ -24491,7 +24431,7 @@
1
2
- 4185011
+ 4185003
@@ -24507,7 +24447,7 @@
1
2
- 4180395
+ 4180387
2
@@ -24522,15 +24462,15 @@
enclosingfunction
- 114809
+ 114813
child
- 114809
+ 114813
parent
- 71338
+ 71341
@@ -24544,7 +24484,7 @@
1
2
- 114809
+ 114813
@@ -24560,7 +24500,7 @@
1
2
- 49330
+ 49332
2
@@ -24570,7 +24510,7 @@
3
4
- 15364
+ 15365
4
@@ -24585,15 +24525,15 @@
derivations
- 476883
+ 476902
derivation
- 476883
+ 476902
sub
- 455148
+ 455166
index
@@ -24601,11 +24541,11 @@
super
- 235546
+ 235555
location
- 35396
+ 35398
@@ -24619,7 +24559,7 @@
1
2
- 476883
+ 476902
@@ -24635,7 +24575,7 @@
1
2
- 476883
+ 476902
@@ -24651,7 +24591,7 @@
1
2
- 476883
+ 476902
@@ -24667,7 +24607,7 @@
1
2
- 476883
+ 476902
@@ -24683,12 +24623,12 @@
1
2
- 438625
+ 438642
2
9
- 16522
+ 16523
@@ -24704,12 +24644,12 @@
1
2
- 438625
+ 438642
2
8
- 16522
+ 16523
@@ -24725,12 +24665,12 @@
1
2
- 438625
+ 438642
2
9
- 16522
+ 16523
@@ -24746,12 +24686,12 @@
1
2
- 438625
+ 438642
2
8
- 16522
+ 16523
@@ -24906,7 +24846,7 @@
1
2
- 225734
+ 225743
2
@@ -24927,7 +24867,7 @@
1
2
- 225734
+ 225743
2
@@ -24948,7 +24888,7 @@
1
2
- 235103
+ 235112
2
@@ -24969,7 +24909,7 @@
1
2
- 230197
+ 230206
2
@@ -24990,7 +24930,7 @@
1
2
- 26504
+ 26505
2
@@ -25026,7 +24966,7 @@
1
2
- 26504
+ 26505
2
@@ -25062,7 +25002,7 @@
1
2
- 35396
+ 35398
@@ -25078,7 +25018,7 @@
1
2
- 28719
+ 28720
2
@@ -25103,11 +25043,11 @@
derspecifiers
- 478655
+ 478674
der_id
- 476440
+ 476459
spec_id
@@ -25125,7 +25065,7 @@
1
2
- 474226
+ 474245
2
@@ -25171,11 +25111,11 @@
direct_base_offsets
- 449970
+ 449987
der_id
- 449970
+ 449987
offset
@@ -25193,7 +25133,7 @@
1
2
- 449970
+ 449987
@@ -25390,19 +25330,19 @@
frienddecls
- 700403
+ 700465
id
- 700403
+ 700465
type_id
- 42414
+ 42416
decl_id
- 77845
+ 77848
location
@@ -25420,7 +25360,7 @@
1
2
- 700403
+ 700465
@@ -25436,7 +25376,7 @@
1
2
- 700403
+ 700465
@@ -25452,7 +25392,7 @@
1
2
- 700403
+ 700465
@@ -25468,12 +25408,12 @@
1
2
- 6200
+ 6166
2
3
- 13933
+ 13968
3
@@ -25483,7 +25423,7 @@
7
12
- 3440
+ 3441
12
@@ -25524,12 +25464,12 @@
1
2
- 6200
+ 6166
2
3
- 13933
+ 13968
3
@@ -25539,7 +25479,7 @@
7
12
- 3440
+ 3441
12
@@ -25580,7 +25520,7 @@
1
2
- 41051
+ 41053
2
@@ -25601,17 +25541,17 @@
1
2
- 48104
+ 48071
2
3
- 5927
+ 5962
3
8
- 5995
+ 5996
8
@@ -25642,17 +25582,17 @@
1
2
- 48104
+ 48071
2
3
- 5927
+ 5962
3
8
- 5995
+ 5996
8
@@ -25683,7 +25623,7 @@
1
2
- 77163
+ 77167
2
@@ -25708,7 +25648,7 @@
2
- 20370
+ 20371
374
@@ -25725,7 +25665,7 @@
1
2
- 5961
+ 5962
2
@@ -25761,19 +25701,19 @@
comments
- 11233426
+ 11233402
id
- 11233426
+ 11233402
contents
- 4303649
+ 4303640
location
- 11233426
+ 11233402
@@ -25787,7 +25727,7 @@
1
2
- 11233426
+ 11233402
@@ -25803,7 +25743,7 @@
1
2
- 11233426
+ 11233402
@@ -25819,12 +25759,12 @@
1
2
- 3928898
+ 3928890
2
6
- 322979
+ 322978
6
@@ -25845,12 +25785,12 @@
1
2
- 3928898
+ 3928890
2
6
- 322979
+ 322978
6
@@ -25871,7 +25811,7 @@
1
2
- 11233426
+ 11233402
@@ -25887,7 +25827,7 @@
1
2
- 11233426
+ 11233402
@@ -25897,15 +25837,15 @@
commentbinding
- 3914801
+ 3914793
id
- 3350803
+ 3350796
element
- 3749257
+ 3749249
@@ -25919,7 +25859,7 @@
1
2
- 3289176
+ 3289170
2
@@ -25940,12 +25880,12 @@
1
2
- 3583713
+ 3583705
2
3
- 165544
+ 165543
@@ -25955,15 +25895,15 @@
exprconv
- 9633104
+ 9633084
converted
- 9632998
+ 9632979
conversion
- 9633104
+ 9633084
@@ -25977,7 +25917,7 @@
1
2
- 9632893
+ 9632873
2
@@ -25998,7 +25938,7 @@
1
2
- 9633104
+ 9633084
@@ -26008,22 +25948,22 @@
compgenerated
- 9892067
+ 9892394
id
- 9892067
+ 9892394
synthetic_destructor_call
- 1671632
+ 1671701
element
- 1244913
+ 1244965
i
@@ -26031,7 +25971,7 @@
destructor_call
- 1671632
+ 1671701
@@ -26045,17 +25985,17 @@
1
2
- 828651
+ 828685
2
3
- 409463
+ 409480
3
19
- 6798
+ 6799
@@ -26071,17 +26011,17 @@
1
2
- 828651
+ 828685
2
3
- 409463
+ 409480
3
19
- 6798
+ 6799
@@ -26229,7 +26169,7 @@
1
2
- 1671632
+ 1671701
@@ -26245,7 +26185,7 @@
1
2
- 1671632
+ 1671701
@@ -26255,11 +26195,11 @@
namespaces
- 8649
+ 8650
id
- 8649
+ 8650
name
@@ -26277,7 +26217,7 @@
1
2
- 8649
+ 8650
@@ -26293,7 +26233,7 @@
1
2
- 3738
+ 3739
2
@@ -26324,7 +26264,7 @@
namespacembrs
- 2037677
+ 2037673
parentid
@@ -26332,7 +26272,7 @@
memberid
- 2037677
+ 2037673
@@ -26422,7 +26362,7 @@
1
2
- 2037677
+ 2037673
@@ -26432,11 +26372,11 @@
exprparents
- 19454250
+ 19454210
expr_id
- 19454250
+ 19454210
child_index
@@ -26444,7 +26384,7 @@
parent_id
- 12940010
+ 12939983
@@ -26458,7 +26398,7 @@
1
2
- 19454250
+ 19454210
@@ -26474,7 +26414,7 @@
1
2
- 19454250
+ 19454210
@@ -26592,17 +26532,17 @@
1
2
- 7394770
+ 7394754
2
3
- 5082689
+ 5082678
3
712
- 462551
+ 462550
@@ -26618,17 +26558,17 @@
1
2
- 7394770
+ 7394754
2
3
- 5082689
+ 5082678
3
712
- 462551
+ 462550
@@ -26638,22 +26578,22 @@
expr_isload
- 6909346
+ 6909332
expr_id
- 6909346
+ 6909332
conversionkinds
- 6050442
+ 6050443
expr_id
- 6050442
+ 6050443
kind
@@ -26671,7 +26611,7 @@
1
2
- 6050442
+ 6050443
@@ -26715,8 +26655,8 @@
1
- 5831534
- 5831535
+ 5831535
+ 5831536
1
@@ -26727,11 +26667,11 @@
iscall
- 5802562
+ 5802824
caller
- 5802562
+ 5802824
kind
@@ -26749,7 +26689,7 @@
1
2
- 5802562
+ 5802824
@@ -26773,8 +26713,8 @@
21
- 268053
- 268054
+ 268054
+ 268055
21
@@ -26785,11 +26725,11 @@
numtemplatearguments
- 627371
+ 627369
expr_id
- 627371
+ 627369
num
@@ -26807,7 +26747,7 @@
1
2
- 627371
+ 627369
@@ -26891,23 +26831,23 @@
namequalifiers
- 3041831
+ 3041979
id
- 3041831
+ 3041979
qualifiableelement
- 3041831
+ 3041979
qualifyingelement
- 47484
+ 47486
location
- 552434
+ 552457
@@ -26921,7 +26861,7 @@
1
2
- 3041831
+ 3041979
@@ -26937,7 +26877,7 @@
1
2
- 3041831
+ 3041979
@@ -26953,7 +26893,7 @@
1
2
- 3041831
+ 3041979
@@ -26969,7 +26909,7 @@
1
2
- 3041831
+ 3041979
@@ -26985,7 +26925,7 @@
1
2
- 3041831
+ 3041979
@@ -27001,7 +26941,7 @@
1
2
- 3041831
+ 3041979
@@ -27017,12 +26957,12 @@
1
2
- 31541
+ 31543
2
3
- 8175
+ 8176
3
@@ -27031,7 +26971,7 @@
5
- 6810
+ 6811
3571
@@ -27053,12 +26993,12 @@
1
2
- 31541
+ 31543
2
3
- 8175
+ 8176
3
@@ -27067,7 +27007,7 @@
5
- 6810
+ 6811
3571
@@ -27089,7 +27029,7 @@
1
2
- 34403
+ 34404
2
@@ -27120,22 +27060,22 @@
1
2
- 79155
+ 79137
2
6
- 38082
+ 38105
6
7
- 398985
+ 399001
7
192
- 36210
+ 36212
@@ -27151,22 +27091,22 @@
1
2
- 79155
+ 79137
2
6
- 38082
+ 38105
6
7
- 398985
+ 399001
7
192
- 36210
+ 36212
@@ -27182,22 +27122,22 @@
1
2
- 111536
+ 111541
2
4
- 13296
+ 13297
4
5
- 415294
+ 415311
5
33
- 12306
+ 12307
@@ -27207,15 +27147,15 @@
varbind
- 8254646
+ 8254629
expr
- 8254646
+ 8254629
var
- 1050377
+ 1050375
@@ -27229,7 +27169,7 @@
1
2
- 8254646
+ 8254629
@@ -27245,17 +27185,17 @@
1
2
- 171536
+ 171535
2
3
- 188701
+ 188700
3
4
- 145648
+ 145647
4
@@ -27265,7 +27205,7 @@
5
6
- 83151
+ 83150
6
@@ -27300,15 +27240,15 @@
funbind
- 5812287
+ 5812528
expr
- 5809813
+ 5810054
fun
- 275937
+ 275948
@@ -27322,7 +27262,7 @@
1
2
- 5807338
+ 5807579
2
@@ -27343,27 +27283,27 @@
1
2
- 181441
+ 181448
2
3
- 38835
+ 38837
3
4
- 17190
+ 17191
4
8
- 22741
+ 22742
8
37798
- 15727
+ 15728
@@ -27373,11 +27313,11 @@
expr_allocator
- 45242
+ 45244
expr
- 45242
+ 45244
func
@@ -27399,7 +27339,7 @@
1
2
- 45242
+ 45244
@@ -27415,7 +27355,7 @@
1
2
- 45242
+ 45244
@@ -27499,11 +27439,11 @@
expr_deallocator
- 53827
+ 53829
expr
- 53827
+ 53829
func
@@ -27525,7 +27465,7 @@
1
2
- 53827
+ 53829
@@ -27541,7 +27481,7 @@
1
2
- 53827
+ 53829
@@ -27646,15 +27586,15 @@
expr_cond_guard
- 897881
+ 897879
cond
- 897881
+ 897879
guard
- 897881
+ 897879
@@ -27668,7 +27608,7 @@
1
2
- 897881
+ 897879
@@ -27684,7 +27624,7 @@
1
2
- 897881
+ 897879
@@ -27694,15 +27634,15 @@
expr_cond_true
- 897877
+ 897876
cond
- 897877
+ 897876
true
- 897877
+ 897876
@@ -27716,7 +27656,7 @@
1
2
- 897877
+ 897876
@@ -27732,7 +27672,7 @@
1
2
- 897877
+ 897876
@@ -27742,15 +27682,15 @@
expr_cond_false
- 897881
+ 897879
cond
- 897881
+ 897879
false
- 897881
+ 897879
@@ -27764,7 +27704,7 @@
1
2
- 897881
+ 897879
@@ -27780,7 +27720,7 @@
1
2
- 897881
+ 897879
@@ -27790,11 +27730,11 @@
values
- 13474629
+ 13474601
id
- 13474629
+ 13474601
str
@@ -27812,7 +27752,7 @@
1
2
- 13474629
+ 13474601
@@ -27828,7 +27768,7 @@
1
2
- 78303
+ 78302
2
@@ -27858,11 +27798,11 @@
valuetext
- 6647554
+ 6647456
id
- 6647554
+ 6647456
text
@@ -27880,7 +27820,7 @@
1
2
- 6647554
+ 6647456
@@ -27921,15 +27861,15 @@
valuebind
- 13583211
+ 13583183
val
- 13474629
+ 13474601
expr
- 13583211
+ 13583183
@@ -27943,7 +27883,7 @@
1
2
- 13384074
+ 13384046
2
@@ -27964,7 +27904,7 @@
1
2
- 13583211
+ 13583183
@@ -27974,11 +27914,11 @@
fieldoffsets
- 1497677
+ 1497674
id
- 1497677
+ 1497674
byteoffset
@@ -28000,7 +27940,7 @@
1
2
- 1497677
+ 1497674
@@ -28016,7 +27956,7 @@
1
2
- 1497677
+ 1497674
@@ -28078,7 +28018,7 @@
1
2
- 30387
+ 30386
2
@@ -28361,23 +28301,23 @@
initialisers
- 2251326
+ 2251321
init
- 2251326
+ 2251321
var
- 981180
+ 981178
expr
- 2251326
+ 2251321
location
- 516962
+ 516961
@@ -28391,7 +28331,7 @@
1
2
- 2251326
+ 2251321
@@ -28407,7 +28347,7 @@
1
2
- 2251326
+ 2251321
@@ -28423,7 +28363,7 @@
1
2
- 2251326
+ 2251321
@@ -28439,7 +28379,7 @@
1
2
- 870760
+ 870758
2
@@ -28465,7 +28405,7 @@
1
2
- 870760
+ 870758
2
@@ -28491,7 +28431,7 @@
1
2
- 981172
+ 981170
2
@@ -28512,7 +28452,7 @@
1
2
- 2251326
+ 2251321
@@ -28528,7 +28468,7 @@
1
2
- 2251326
+ 2251321
@@ -28544,7 +28484,7 @@
1
2
- 2251326
+ 2251321
@@ -28560,7 +28500,7 @@
1
2
- 415112
+ 415111
2
@@ -28591,7 +28531,7 @@
1
2
- 444413
+ 444412
2
@@ -28617,7 +28557,7 @@
1
2
- 415112
+ 415111
2
@@ -28642,26 +28582,26 @@
braced_initialisers
- 68440
+ 68438
init
- 68440
+ 68438
expr_ancestor
- 1677613
+ 1677683
exp
- 1677613
+ 1677683
ancestor
- 839624
+ 839659
@@ -28675,7 +28615,7 @@
1
2
- 1677613
+ 1677683
@@ -28691,12 +28631,12 @@
1
2
- 17083
+ 17084
2
3
- 812471
+ 812505
3
@@ -28711,11 +28651,11 @@
exprs
- 25210619
+ 25210567
id
- 25210619
+ 25210567
kind
@@ -28723,7 +28663,7 @@
location
- 10585876
+ 10585854
@@ -28737,7 +28677,7 @@
1
2
- 25210619
+ 25210567
@@ -28753,7 +28693,7 @@
1
2
- 25210619
+ 25210567
@@ -28931,22 +28871,22 @@
1
2
- 8903903
+ 8903885
2
3
- 820610
+ 820608
3
16
- 797200
+ 797198
16
71733
- 64162
+ 64161
@@ -28962,17 +28902,17 @@
1
2
- 9043306
+ 9043287
2
3
- 774274
+ 774272
3
32
- 768295
+ 768294
@@ -28982,15 +28922,15 @@
expr_reuse
- 847004
+ 847039
reuse
- 847004
+ 847039
original
- 847004
+ 847039
value_category
@@ -29008,7 +28948,7 @@
1
2
- 847004
+ 847039
@@ -29024,7 +28964,7 @@
1
2
- 847004
+ 847039
@@ -29040,7 +28980,7 @@
1
2
- 847004
+ 847039
@@ -29056,7 +28996,7 @@
1
2
- 847004
+ 847039
@@ -29108,15 +29048,15 @@
expr_types
- 25210619
+ 25210567
id
- 25210619
+ 25210567
typeid
- 214203
+ 214202
value_category
@@ -29134,7 +29074,7 @@
1
2
- 25210619
+ 25210567
@@ -29150,7 +29090,7 @@
1
2
- 25210619
+ 25210567
@@ -29295,15 +29235,15 @@
new_allocated_type
- 46196
+ 46198
expr
- 46196
+ 46198
type_id
- 27390
+ 27391
@@ -29317,7 +29257,7 @@
1
2
- 46196
+ 46198
@@ -29333,12 +29273,12 @@
1
2
- 11514
+ 11515
2
3
- 14478
+ 14479
3
@@ -30752,15 +30692,15 @@
condition_decl_bind
- 408903
+ 408920
expr
- 408903
+ 408920
decl
- 408903
+ 408920
@@ -30774,7 +30714,7 @@
1
2
- 408903
+ 408920
@@ -30790,7 +30730,7 @@
1
2
- 408903
+ 408920
@@ -30800,15 +30740,15 @@
typeid_bind
- 47899
+ 47901
expr
- 47899
+ 47901
type_id
- 15943
+ 15944
@@ -30822,7 +30762,7 @@
1
2
- 47899
+ 47901
@@ -30838,7 +30778,7 @@
1
2
- 2963
+ 2964
2
@@ -30911,11 +30851,11 @@
sizeof_bind
- 242027
+ 242026
expr
- 242027
+ 242026
type_id
@@ -30933,7 +30873,7 @@
1
2
- 242027
+ 242026
@@ -32428,7 +32368,7 @@
1
2
- 17254
+ 17253
2
@@ -32632,11 +32572,11 @@
stmts
- 6368850
+ 6368836
id
- 6368850
+ 6368836
kind
@@ -32644,7 +32584,7 @@
location
- 2684488
+ 2684483
@@ -32658,7 +32598,7 @@
1
2
- 6368850
+ 6368836
@@ -32674,7 +32614,7 @@
1
2
- 6368850
+ 6368836
@@ -32912,7 +32852,7 @@
1
2
- 2224998
+ 2224993
2
@@ -32922,7 +32862,7 @@
3
10
- 202174
+ 202173
10
@@ -32943,7 +32883,7 @@
1
2
- 2601532
+ 2601527
2
@@ -33113,15 +33053,15 @@
if_then
- 990216
+ 990214
if_stmt
- 990216
+ 990214
then_id
- 990216
+ 990214
@@ -33135,7 +33075,7 @@
1
2
- 990216
+ 990214
@@ -33151,7 +33091,7 @@
1
2
- 990216
+ 990214
@@ -33161,15 +33101,15 @@
if_else
- 437089
+ 437107
if_stmt
- 437089
+ 437107
else_id
- 437089
+ 437107
@@ -33183,7 +33123,7 @@
1
2
- 437089
+ 437107
@@ -33199,7 +33139,7 @@
1
2
- 437089
+ 437107
@@ -33257,15 +33197,15 @@
constexpr_if_then
- 106038
+ 106037
constexpr_if_stmt
- 106038
+ 106037
then_id
- 106038
+ 106037
@@ -33279,7 +33219,7 @@
1
2
- 106038
+ 106037
@@ -33295,7 +33235,7 @@
1
2
- 106038
+ 106037
@@ -33449,15 +33389,15 @@
while_body
- 39648
+ 39647
while_stmt
- 39648
+ 39647
body_id
- 39648
+ 39647
@@ -33471,7 +33411,7 @@
1
2
- 39648
+ 39647
@@ -33487,7 +33427,7 @@
1
2
- 39648
+ 39647
@@ -33593,11 +33533,11 @@
switch_case
- 836117
+ 836152
switch_stmt
- 411851
+ 411868
index
@@ -33605,7 +33545,7 @@
case_id
- 836117
+ 836152
@@ -33624,7 +33564,7 @@
2
3
- 408968
+ 408985
3
@@ -33650,7 +33590,7 @@
2
3
- 408968
+ 408985
3
@@ -33813,7 +33753,7 @@
1
2
- 836117
+ 836152
@@ -33829,7 +33769,7 @@
1
2
- 836117
+ 836152
@@ -33839,15 +33779,15 @@
switch_body
- 411851
+ 411868
switch_stmt
- 411851
+ 411868
body_id
- 411851
+ 411868
@@ -33861,7 +33801,7 @@
1
2
- 411851
+ 411868
@@ -33877,7 +33817,7 @@
1
2
- 411851
+ 411868
@@ -34079,11 +34019,11 @@
stmtparents
- 5628275
+ 5628263
id
- 5628275
+ 5628263
index
@@ -34091,7 +34031,7 @@
parent
- 2381446
+ 2381441
@@ -34105,7 +34045,7 @@
1
2
- 5628275
+ 5628263
@@ -34121,7 +34061,7 @@
1
2
- 5628275
+ 5628263
@@ -34259,17 +34199,17 @@
1
2
- 1358990
+ 1358987
2
3
- 517369
+ 517368
3
4
- 151517
+ 151516
4
@@ -34300,17 +34240,17 @@
1
2
- 1358990
+ 1358987
2
3
- 517369
+ 517368
3
4
- 151517
+ 151516
4
@@ -34335,22 +34275,22 @@
ishandler
- 43790
+ 43781
block
- 43790
+ 43781
stmt_decl_bind
- 725871
+ 725870
stmt
- 715303
+ 715301
num
@@ -34358,7 +34298,7 @@
decl
- 725871
+ 725870
@@ -34372,7 +34312,7 @@
1
2
- 707837
+ 707836
2
@@ -34393,7 +34333,7 @@
1
2
- 707837
+ 707836
2
@@ -34526,7 +34466,7 @@
1
2
- 725871
+ 725870
@@ -34542,7 +34482,7 @@
1
2
- 725871
+ 725870
@@ -34552,11 +34492,11 @@
stmt_decl_entry_bind
- 725871
+ 725870
stmt
- 715303
+ 715301
num
@@ -34564,7 +34504,7 @@
decl_entry
- 725871
+ 725870
@@ -34578,7 +34518,7 @@
1
2
- 707837
+ 707836
2
@@ -34599,7 +34539,7 @@
1
2
- 707837
+ 707836
2
@@ -34732,7 +34672,7 @@
1
2
- 725871
+ 725870
@@ -34748,7 +34688,7 @@
1
2
- 725871
+ 725870
@@ -34758,15 +34698,15 @@
blockscope
- 1644338
+ 1644335
block
- 1644338
+ 1644335
enclosing
- 1427147
+ 1427145
@@ -34780,7 +34720,7 @@
1
2
- 1644338
+ 1644335
@@ -34796,7 +34736,7 @@
1
2
- 1294537
+ 1294535
2
@@ -34816,11 +34756,11 @@
jumpinfo
- 348321
+ 348320
id
- 348321
+ 348320
str
@@ -34842,7 +34782,7 @@
1
2
- 348321
+ 348320
@@ -34858,7 +34798,7 @@
1
2
- 348321
+ 348320
@@ -34951,7 +34891,7 @@
2
3
- 36211
+ 36210
3
@@ -34997,11 +34937,11 @@
preprocdirects
- 5408441
+ 5408430
id
- 5408441
+ 5408430
kind
@@ -35009,7 +34949,7 @@
location
- 5405198
+ 5405187
@@ -35023,7 +34963,7 @@
1
2
- 5408441
+ 5408430
@@ -35039,7 +34979,7 @@
1
2
- 5408441
+ 5408430
@@ -35187,7 +35127,7 @@
1
2
- 5405073
+ 5405062
27
@@ -35208,7 +35148,7 @@
1
2
- 5405198
+ 5405187
@@ -35218,15 +35158,15 @@
preprocpair
- 1141219
+ 1141217
begin
- 888973
+ 888971
elseelifend
- 1141219
+ 1141217
@@ -35240,7 +35180,7 @@
1
2
- 649576
+ 649575
2
@@ -35266,7 +35206,7 @@
1
2
- 1141219
+ 1141217
@@ -35298,19 +35238,19 @@
preproctext
- 4352427
+ 4352418
id
- 4352427
+ 4352418
head
- 2955094
+ 2955088
body
- 1683385
+ 1683382
@@ -35324,7 +35264,7 @@
1
2
- 4352427
+ 4352418
@@ -35340,7 +35280,7 @@
1
2
- 4352427
+ 4352418
@@ -35356,12 +35296,12 @@
1
2
- 2756491
+ 2756485
2
798
- 198603
+ 198602
@@ -35377,7 +35317,7 @@
1
2
- 2873881
+ 2873875
2
@@ -35398,7 +35338,7 @@
1
2
- 1535182
+ 1535178
2
@@ -35424,7 +35364,7 @@
1
2
- 1539423
+ 1539420
2
@@ -35444,15 +35384,15 @@
includes
- 318610
+ 318638
id
- 318610
+ 318638
included
- 58690
+ 58695
@@ -35466,7 +35406,7 @@
1
2
- 318610
+ 318638
@@ -35482,7 +35422,7 @@
1
2
- 29044
+ 29046
2
@@ -35497,7 +35437,7 @@
4
6
- 5354
+ 5355
6
@@ -35570,11 +35510,11 @@
link_parent
- 30397027
+ 30398238
element
- 3865967
+ 3866121
link_target
@@ -35592,17 +35532,17 @@
1
2
- 530438
+ 530459
2
9
- 26947
+ 26948
9
10
- 3308580
+ 3308712
diff --git a/cpp/ql/src/Best Practices/Magic Constants/MagicConstants.qll b/cpp/ql/src/Best Practices/Magic Constants/MagicConstants.qll
index 53e33ab4fa5..03384076483 100644
--- a/cpp/ql/src/Best Practices/Magic Constants/MagicConstants.qll
+++ b/cpp/ql/src/Best Practices/Magic Constants/MagicConstants.qll
@@ -164,12 +164,17 @@ predicate valueOccurrenceCount(string value, int n) {
n > 20
}
-predicate occurenceCount(Literal lit, string value, int n) {
+predicate occurrenceCount(Literal lit, string value, int n) {
valueOccurrenceCount(value, n) and
value = lit.getValue() and
nonTrivialValue(_, lit)
}
+/**
+ * DEPRECATED: Use `occurrenceCount` instead.
+ */
+deprecated predicate occurenceCount = occurrenceCount/3;
+
/*
* Literals repeated frequently
*/
@@ -178,7 +183,7 @@ predicate check(Literal lit, string value, int n, File f) {
// Check that the literal is nontrivial
not trivial(lit) and
// Check that it is repeated a number of times
- occurenceCount(lit, value, n) and
+ occurrenceCount(lit, value, n) and
n > 20 and
f = lit.getFile() and
// Exclude generated files
diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md
index e3c013b76c7..eb805dc1af6 100644
--- a/cpp/ql/src/CHANGELOG.md
+++ b/cpp/ql/src/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 1.4.7
+
+### Bug Fixes
+
+* Fixed an inconsistency across languages where most have a `Customizations.qll` file for adding customizations, but not all did.
+
## 1.4.6
### Minor Analysis Improvements
diff --git a/cpp/ql/src/Likely Bugs/Leap Year/LeapYear.qll b/cpp/ql/src/Likely Bugs/Leap Year/LeapYear.qll
index 863fd1e6120..2b68730fa58 100644
--- a/cpp/ql/src/Likely Bugs/Leap Year/LeapYear.qll
+++ b/cpp/ql/src/Likely Bugs/Leap Year/LeapYear.qll
@@ -128,11 +128,18 @@ abstract class LeapYearFieldAccess extends YearFieldAccess {
/**
* Holds if the top-level binary operation includes an addition or subtraction operator with an operand specified by `valueToCheck`.
*/
- predicate additionalAdditionOrSubstractionCheckForLeapYear(int valueToCheck) {
+ predicate additionalAdditionOrSubtractionCheckForLeapYear(int valueToCheck) {
additionalLogicalCheck(this, "+", valueToCheck) or
additionalLogicalCheck(this, "-", valueToCheck)
}
+ /**
+ * DEPRECATED: Use `additionalAdditionOrSubtractionCheckForLeapYear` instead.
+ */
+ deprecated predicate additionalAdditionOrSubstractionCheckForLeapYear(int valueToCheck) {
+ this.additionalAdditionOrSubtractionCheckForLeapYear(valueToCheck)
+ }
+
/**
* Holds if this object is used on a modulus 4 operation, which would likely indicate the start of a leap year check.
*/
@@ -180,13 +187,13 @@ class StructTmLeapYearFieldAccess extends LeapYearFieldAccess {
this.additionalModulusCheckForLeapYear(100) and
// tm_year represents years since 1900
(
- this.additionalAdditionOrSubstractionCheckForLeapYear(1900)
+ this.additionalAdditionOrSubtractionCheckForLeapYear(1900)
or
// some systems may use 2000 for 2-digit year conversions
- this.additionalAdditionOrSubstractionCheckForLeapYear(2000)
+ this.additionalAdditionOrSubtractionCheckForLeapYear(2000)
or
// converting from/to Unix epoch
- this.additionalAdditionOrSubstractionCheckForLeapYear(1970)
+ this.additionalAdditionOrSubtractionCheckForLeapYear(1970)
)
}
}
diff --git a/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql b/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql
index f5d1a09d04e..e50a2d54543 100644
--- a/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql
+++ b/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql
@@ -14,7 +14,7 @@ import cpp
import semmle.code.cpp.security.boostorg.asio.protocols
predicate isSourceImpl(DataFlow::Node source, ConstructorCall cc) {
- exists(BoostorgAsio::SslContextClass c | c.getAContructorCall() = cc and cc = source.asExpr())
+ exists(BoostorgAsio::SslContextClass c | c.getAConstructorCall() = cc and cc = source.asExpr())
}
predicate isSinkImpl(DataFlow::Node sink, FunctionCall fcSetOptions) {
diff --git a/cpp/ql/src/Metrics/Internal/CallableExtents.ql b/cpp/ql/src/Metrics/Internal/CallableExtents.ql
index 7a376c6da72..7ebae0385da 100644
--- a/cpp/ql/src/Metrics/Internal/CallableExtents.ql
+++ b/cpp/ql/src/Metrics/Internal/CallableExtents.ql
@@ -20,12 +20,14 @@ class RangeFunction extends Function {
* For more information, see
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
- predicate hasLocationInfo(string path, int sl, int sc, int el, int ec) {
- super.getLocation().hasLocationInfo(path, sl, sc, _, _) and
+ predicate hasLocationInfo(
+ string filepath, int startline, int startcolumn, int endline, int endcolumn
+ ) {
+ super.getLocation().hasLocationInfo(filepath, startline, startcolumn, _, _) and
(
- this.getBlock().getLocation().hasLocationInfo(path, _, _, el, ec)
+ this.getBlock().getLocation().hasLocationInfo(filepath, _, _, endline, endcolumn)
or
- not exists(this.getBlock()) and el = sl + 1 and ec = 1
+ not exists(this.getBlock()) and endline = startline + 1 and endcolumn = 1
)
}
}
diff --git a/cpp/ql/src/Security/CWE/CWE-190/IntegerOverflowTainted.ql b/cpp/ql/src/Security/CWE/CWE-190/IntegerOverflowTainted.ql
index 6ff06d355b9..3978d2ded95 100644
--- a/cpp/ql/src/Security/CWE/CWE-190/IntegerOverflowTainted.ql
+++ b/cpp/ql/src/Security/CWE/CWE-190/IntegerOverflowTainted.ql
@@ -25,10 +25,10 @@ import semmle.code.cpp.controlflow.IRGuards as IRGuards
predicate outOfBoundsExpr(Expr expr, string kind) {
if convertedExprMightOverflowPositively(expr)
then kind = "overflow"
- else
- if convertedExprMightOverflowNegatively(expr)
- then kind = "overflow negatively"
- else none()
+ else (
+ convertedExprMightOverflowNegatively(expr) and
+ kind = "overflow negatively"
+ )
}
predicate isSource(FS::FlowSource source, string sourceType) { sourceType = source.getSourceType() }
diff --git a/cpp/ql/src/Security/CWE/CWE-457/UninitializedVariables.qll b/cpp/ql/src/Security/CWE/CWE-457/UninitializedVariables.qll
index 14eec81ff58..804d6a48754 100644
--- a/cpp/ql/src/Security/CWE/CWE-457/UninitializedVariables.qll
+++ b/cpp/ql/src/Security/CWE/CWE-457/UninitializedVariables.qll
@@ -31,27 +31,28 @@ private predicate hasConditionalInitialization(
class ConditionallyInitializedVariable extends LocalVariable {
ConditionalInitializationCall call;
ConditionalInitializationFunction f;
- VariableAccess initAccess;
Evidence e;
ConditionallyInitializedVariable() {
// Find a call that conditionally initializes this variable
- hasConditionalInitialization(f, call, this, initAccess, e) and
- // Ignore cases where the variable is assigned prior to the call
- not reaches(this.getAnAssignedValue(), initAccess) and
- // Ignore cases where the variable is assigned field-wise prior to the call.
- not exists(FieldAccess fa |
- exists(Assignment a |
- fa = getAFieldAccess(this) and
- a.getLValue() = fa
+ exists(VariableAccess initAccess |
+ hasConditionalInitialization(f, call, this, initAccess, e) and
+ // Ignore cases where the variable is assigned prior to the call
+ not reaches(this.getAnAssignedValue(), initAccess) and
+ // Ignore cases where the variable is assigned field-wise prior to the call.
+ not exists(FieldAccess fa |
+ exists(Assignment a |
+ fa = getAFieldAccess(this) and
+ a.getLValue() = fa
+ )
+ |
+ reaches(fa, initAccess)
+ ) and
+ // Ignore cases where the variable is assigned by a prior call to an initialization function
+ not exists(Call c |
+ this.getAnAccess() = getAnInitializedArgument(c).(AddressOfExpr).getOperand() and
+ reaches(c, initAccess)
)
- |
- reaches(fa, initAccess)
- ) and
- // Ignore cases where the variable is assigned by a prior call to an initialization function
- not exists(Call c |
- this.getAnAccess() = getAnInitializedArgument(c).(AddressOfExpr).getOperand() and
- reaches(c, initAccess)
) and
/*
* Static local variables with constant initializers do not have the initializer expr as part of
diff --git a/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql b/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql
index d4d908f8474..c03ae995090 100644
--- a/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql
+++ b/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql
@@ -41,7 +41,7 @@ predicate deleteMayThrow(DeleteOrDeleteArrayExpr deleteExpr) {
}
/**
- * Holds if the function may throw an exception when called. That is, if the body of the function looks
+ * Holds if the function `f` may throw an exception when called. That is, if the body of the function looks
* like it might throw an exception, and the function does not have a `noexcept` or `throw()` specifier.
*/
predicate functionMayThrow(Function f) {
diff --git a/cpp/ql/src/change-notes/2025-08-20-add-customizations.md b/cpp/ql/src/change-notes/2025-08-20-add-customizations.md
deleted file mode 100644
index 3a01298283c..00000000000
--- a/cpp/ql/src/change-notes/2025-08-20-add-customizations.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: fix
----
-* Fixed an inconsistency across languages where most have a `Customizations.qll` file for adding customizations, but not all did.
\ No newline at end of file
diff --git a/cpp/ql/src/change-notes/2025-09-03-rename-api.md b/cpp/ql/src/change-notes/2025-09-03-rename-api.md
new file mode 100644
index 00000000000..5fd788ef76f
--- /dev/null
+++ b/cpp/ql/src/change-notes/2025-09-03-rename-api.md
@@ -0,0 +1,5 @@
+---
+category: fix
+---
+* The predicate `occurenceCount` in the file module `MagicConstants` has been deprecated. Use `occurrenceCount` instead.
+* The predicate `additionalAdditionOrSubstractionCheckForLeapYear` in the file module `LeapYear` has been deprecated. Use `additionalAdditionOrSubtractionCheckForLeapYear` instead.
diff --git a/swift/ql/src/change-notes/2025-08-20-add-customizations.md b/cpp/ql/src/change-notes/released/1.4.7.md
similarity index 82%
rename from swift/ql/src/change-notes/2025-08-20-add-customizations.md
rename to cpp/ql/src/change-notes/released/1.4.7.md
index 3a01298283c..d3b9a12c798 100644
--- a/swift/ql/src/change-notes/2025-08-20-add-customizations.md
+++ b/cpp/ql/src/change-notes/released/1.4.7.md
@@ -1,4 +1,5 @@
----
-category: fix
----
-* Fixed an inconsistency across languages where most have a `Customizations.qll` file for adding customizations, but not all did.
\ No newline at end of file
+## 1.4.7
+
+### Bug Fixes
+
+* Fixed an inconsistency across languages where most have a `Customizations.qll` file for adding customizations, but not all did.
diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml
index 3b00bbce928..163362bd632 100644
--- a/cpp/ql/src/codeql-pack.release.yml
+++ b/cpp/ql/src/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 1.4.6
+lastReleaseVersion: 1.4.7
diff --git a/cpp/ql/src/definitions.ql b/cpp/ql/src/definitions.ql
index c12277eaf23..339b481f5f7 100644
--- a/cpp/ql/src/definitions.ql
+++ b/cpp/ql/src/definitions.ql
@@ -13,6 +13,6 @@ where
def = definitionOf(e, kind) and
// We need to exclude definitions for elements inside template instantiations,
// as these often lead to multiple links to definitions from the same source location.
- // LGTM does not support this behaviour.
+ // LGTM does not support this behavior.
not e.isFromTemplateInstantiation(_)
select e, def, kind
diff --git a/cpp/ql/src/experimental/Likely Bugs/RedundantNullCheckParam.ql b/cpp/ql/src/experimental/Likely Bugs/RedundantNullCheckParam.ql
index 36e42cae92a..ce3497bb965 100644
--- a/cpp/ql/src/experimental/Likely Bugs/RedundantNullCheckParam.ql
+++ b/cpp/ql/src/experimental/Likely Bugs/RedundantNullCheckParam.ql
@@ -47,7 +47,7 @@ where
// for a function parameter
unchecked.getTarget() = param and
// this function parameter is not overwritten
- count(param.getAnAssignment()) = 0 and
+ not exists(param.getAnAssignment()) and
check.getTarget() = param and
// which is once checked
candidateResultChecked(check, eqop) and
diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-1126/DeclarationOfVariableWithUnnecessarilyWideScope.ql b/cpp/ql/src/experimental/Security/CWE/CWE-1126/DeclarationOfVariableWithUnnecessarilyWideScope.ql
index 136931f00ec..bbb219a22da 100644
--- a/cpp/ql/src/experimental/Security/CWE/CWE-1126/DeclarationOfVariableWithUnnecessarilyWideScope.ql
+++ b/cpp/ql/src/experimental/Security/CWE/CWE-1126/DeclarationOfVariableWithUnnecessarilyWideScope.ql
@@ -19,16 +19,17 @@ import cpp
* Errors when using a variable declaration inside a loop.
*/
class DangerousWhileLoop extends WhileStmt {
- Expr exp;
Declaration dl;
DangerousWhileLoop() {
this = dl.getParentScope().(BlockStmt).getParent*() and
- exp = this.getCondition().getAChild*() and
- not exp instanceof PointerFieldAccess and
- not exp instanceof ValueFieldAccess and
- exp.(VariableAccess).getTarget().getName() = dl.getName() and
- not exp.getParent*() instanceof FunctionCall
+ exists(Expr exp |
+ exp = this.getCondition().getAChild*() and
+ not exp instanceof PointerFieldAccess and
+ not exp instanceof ValueFieldAccess and
+ exp.(VariableAccess).getTarget().getName() = dl.getName() and
+ not exp.getParent*() instanceof FunctionCall
+ )
}
Declaration getDeclaration() { result = dl }
diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql
index 6529bf6cdf8..74ac8e6da66 100644
--- a/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql
+++ b/cpp/ql/src/experimental/Security/CWE/CWE-125/DangerousWorksWithMultibyteOrWideCharacters.ql
@@ -46,7 +46,7 @@ predicate exprMayBeString(Expr exp) {
)
}
-/** Holds if expression is constant or operator call `sizeof`. */
+/** Holds if expression `exp` is constant or operator call `sizeof`. */
predicate argConstOrSizeof(Expr exp) {
exp.getValue().toInt() > 1 or
exp.(SizeofTypeOperator).getTypeOperand().getSize() > 1
diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-243/IncorrectChangingWorkingDirectory.ql b/cpp/ql/src/experimental/Security/CWE/CWE-243/IncorrectChangingWorkingDirectory.ql
index ce5f4dd00f8..9d61418fd77 100644
--- a/cpp/ql/src/experimental/Security/CWE/CWE-243/IncorrectChangingWorkingDirectory.ql
+++ b/cpp/ql/src/experimental/Security/CWE/CWE-243/IncorrectChangingWorkingDirectory.ql
@@ -15,7 +15,7 @@
import cpp
import semmle.code.cpp.commons.Exclusions
-/** Holds if a `fc` function call is available before or after a `chdir` function call. */
+/** Holds if a `fcp` function call is available before or after a `chdir` function call. */
predicate inExistsChdir(FunctionCall fcp) {
exists(FunctionCall fctmp |
(
@@ -29,7 +29,7 @@ predicate inExistsChdir(FunctionCall fcp) {
)
}
-/** Holds if a `fc` function call is available before or after a function call containing a `chdir` call. */
+/** Holds if a `fcp` function call is available before or after a function call containing a `chdir` call. */
predicate outExistsChdir(FunctionCall fcp) {
exists(FunctionCall fctmp |
exists(FunctionCall fctmp2 |
diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql
index ffcac802b6d..fec373ce521 100644
--- a/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql
+++ b/cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.ql
@@ -266,7 +266,7 @@ class LifetimePointerType extends LifetimeIndirectionType {
class FullExpr extends Expr {
FullExpr() {
// A full-expression is not a subexpression
- not exists(Expr p | this.getParent() = p)
+ not this.getParent() instanceof Expr
or
// A sub-expression that is an unevaluated operand
this.isUnevaluated()
diff --git a/cpp/ql/src/external/DefectFilter.qll b/cpp/ql/src/external/DefectFilter.qll
index ad786e9cbc9..a3719140741 100644
--- a/cpp/ql/src/external/DefectFilter.qll
+++ b/cpp/ql/src/external/DefectFilter.qll
@@ -5,8 +5,8 @@ import cpp
/**
* Holds if `id` in the opaque identifier of a result reported by query `queryPath`,
* such that `message` is the associated message and the location of the result spans
- * column `startcolumn` of line `startline` to column `endcolumn` of line `endline`
- * in file `filepath`.
+ * column `startcol` of line `startline` to column `endcol` of line `endline`
+ * in file `file`.
*
* For more information, see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
diff --git a/cpp/ql/src/external/MetricFilter.qll b/cpp/ql/src/external/MetricFilter.qll
index 0315cd23c8d..39475451b7a 100644
--- a/cpp/ql/src/external/MetricFilter.qll
+++ b/cpp/ql/src/external/MetricFilter.qll
@@ -5,8 +5,8 @@ import cpp
/**
* Holds if `id` in the opaque identifier of a result reported by query `queryPath`,
* such that `value` is the reported metric value and the location of the result spans
- * column `startcolumn` of line `startline` to column `endcolumn` of line `endline`
- * in file `filepath`.
+ * column `startcol` of line `startline` to column `endcol` of line `endline`
+ * in file `file`.
*
* For more information, see [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
diff --git a/cpp/ql/src/jsf/4.10 Classes/AV Rule 96.ql b/cpp/ql/src/jsf/4.10 Classes/AV Rule 96.ql
index 67e01ffc7c0..4697af80c17 100644
--- a/cpp/ql/src/jsf/4.10 Classes/AV Rule 96.ql
+++ b/cpp/ql/src/jsf/4.10 Classes/AV Rule 96.ql
@@ -28,7 +28,7 @@ where
exists(FunctionCall c, int i, Function f |
c.getArgument(i) = e and
c.getTarget() = f and
- exists(Parameter p | f.getParameter(i) = p) and // varargs
+ exists(f.getParameter(i)) and // varargs
baseElement(e.getType(), cl) and // only interested in arrays with classes
not compatible(f.getParameter(i).getUnspecifiedType(), e.getUnspecifiedType())
)
diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml
index 3e64a19c68b..18637c336b9 100644
--- a/cpp/ql/src/qlpack.yml
+++ b/cpp/ql/src/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/cpp-queries
-version: 1.4.7-dev
+version: 1.4.8-dev
groups:
- cpp
- queries
diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected
index c3085da03ab..630a4ca5ceb 100644
--- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected
+++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected
@@ -24581,6 +24581,516 @@ ir.cpp:
# 2776| Value = [CStyleCast] 42
# 2776| ValueCategory = prvalue
# 2777| getStmt(2): [ReturnStmt] return ...
+# 2779| [TopLevelFunction] void vla_sizeof_test(int, size_t, char)
+# 2779| :
+# 2779| getParameter(0): [Parameter] len1
+# 2779| Type = [IntType] int
+# 2779| getParameter(1): [Parameter] len2
+# 2779| Type = [CTypedefType,Size_t] size_t
+# 2779| getParameter(2): [Parameter] len3
+# 2779| Type = [PlainCharType] char
+# 2779| getEntryPoint(): [BlockStmt] { ... }
+# 2780| getStmt(0): [DeclStmt] declaration
+# 2780| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1
+# 2780| Type = [ArrayType] char[]
+# 2780| getStmt(1): [VlaDimensionStmt] VLA dimension size
+# 2780| getDimensionExpr(): [VariableAccess] len1
+# 2780| Type = [IntType] int
+# 2780| ValueCategory = prvalue(load)
+# 2780| getStmt(2): [VlaDeclStmt] VLA declaration
+# 2781| getStmt(3): [DeclStmt] declaration
+# 2781| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x
+# 2781| Type = [CTypedefType,Size_t] size_t
+# 2781| getVariable().getInitializer(): [Initializer] initializer for x
+# 2781| getExpr(): [SizeofExprOperator] sizeof()
+# 2781| Type = [LongType] unsigned long
+# 2781| ValueCategory = prvalue
+# 2781| getExprOperand(): [VariableAccess] tmp1
+# 2781| Type = [ArrayType] char[]
+# 2781| ValueCategory = lvalue
+# 2781| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2781| Type = [ArrayType] char[]
+# 2781| ValueCategory = lvalue
+# 2782| getStmt(4): [DeclStmt] declaration
+# 2782| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp2
+# 2782| Type = [ArrayType] int[][]
+# 2782| getStmt(5): [VlaDimensionStmt] VLA dimension size
+# 2782| getDimensionExpr(): [VariableAccess] len1
+# 2782| Type = [IntType] int
+# 2782| ValueCategory = prvalue(load)
+# 2782| getStmt(6): [VlaDimensionStmt] VLA dimension size
+# 2782| getDimensionExpr(): [VariableAccess] len2
+# 2782| Type = [CTypedefType,Size_t] size_t
+# 2782| ValueCategory = prvalue(load)
+# 2782| getStmt(7): [VlaDeclStmt] VLA declaration
+# 2783| getStmt(8): [DeclStmt] declaration
+# 2783| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
+# 2783| Type = [CTypedefType,Size_t] size_t
+# 2783| getVariable().getInitializer(): [Initializer] initializer for y
+# 2783| getExpr(): [SizeofExprOperator] sizeof()
+# 2783| Type = [LongType] unsigned long
+# 2783| ValueCategory = prvalue
+# 2783| getExprOperand(): [VariableAccess] tmp2
+# 2783| Type = [ArrayType] int[][]
+# 2783| ValueCategory = lvalue
+# 2783| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2783| Type = [ArrayType] int[][]
+# 2783| ValueCategory = lvalue
+# 2784| getStmt(9): [DeclStmt] declaration
+# 2784| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
+# 2784| Type = [CTypedefType,Size_t] size_t
+# 2784| getVariable().getInitializer(): [Initializer] initializer for z
+# 2784| getExpr(): [SizeofExprOperator] sizeof()
+# 2784| Type = [LongType] unsigned long
+# 2784| ValueCategory = prvalue
+# 2784| getExprOperand(): [PointerDereferenceExpr] * ...
+# 2784| Type = [ArrayType] int[]
+# 2784| ValueCategory = lvalue
+# 2784| getOperand(): [VariableAccess] tmp2
+# 2784| Type = [ArrayType] int[][]
+# 2784| ValueCategory = lvalue
+# 2784| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2784| Type = [PointerType] int(*)[]
+# 2784| ValueCategory = prvalue
+# 2784| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2784| Type = [ArrayType] int[]
+# 2784| ValueCategory = lvalue
+# 2785| getStmt(10): [DeclStmt] declaration
+# 2785| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp3
+# 2785| Type = [ArrayType] int[][][]
+# 2785| getStmt(11): [VlaDimensionStmt] VLA dimension size
+# 2785| getDimensionExpr(): [VariableAccess] len1
+# 2785| Type = [IntType] int
+# 2785| ValueCategory = prvalue(load)
+# 2785| getStmt(12): [VlaDimensionStmt] VLA dimension size
+# 2785| getDimensionExpr(): [VariableAccess] len2
+# 2785| Type = [CTypedefType,Size_t] size_t
+# 2785| ValueCategory = prvalue(load)
+# 2785| getStmt(13): [VlaDimensionStmt] VLA dimension size
+# 2785| getDimensionExpr(): [VariableAccess] len3
+# 2785| Type = [PlainCharType] char
+# 2785| ValueCategory = prvalue(load)
+# 2785| getStmt(14): [VlaDeclStmt] VLA declaration
+# 2786| getStmt(15): [DeclStmt] declaration
+# 2786| getDeclarationEntry(0): [VariableDeclarationEntry] definition of w
+# 2786| Type = [CTypedefType,Size_t] size_t
+# 2786| getVariable().getInitializer(): [Initializer] initializer for w
+# 2786| getExpr(): [SizeofExprOperator] sizeof()
+# 2786| Type = [LongType] unsigned long
+# 2786| ValueCategory = prvalue
+# 2786| getExprOperand(): [VariableAccess] tmp3
+# 2786| Type = [ArrayType] int[][][]
+# 2786| ValueCategory = lvalue
+# 2786| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2786| Type = [ArrayType] int[][][]
+# 2786| ValueCategory = lvalue
+# 2787| getStmt(16): [DeclStmt] declaration
+# 2787| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v
+# 2787| Type = [CTypedefType,Size_t] size_t
+# 2787| getVariable().getInitializer(): [Initializer] initializer for v
+# 2787| getExpr(): [SizeofExprOperator] sizeof()
+# 2787| Type = [LongType] unsigned long
+# 2787| ValueCategory = prvalue
+# 2787| getExprOperand(): [PointerDereferenceExpr] * ...
+# 2787| Type = [ArrayType] int[][]
+# 2787| ValueCategory = lvalue
+# 2787| getOperand(): [VariableAccess] tmp3
+# 2787| Type = [ArrayType] int[][][]
+# 2787| ValueCategory = lvalue
+# 2787| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2787| Type = [PointerType] int(*)[][]
+# 2787| ValueCategory = prvalue
+# 2787| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2787| Type = [ArrayType] int[][]
+# 2787| ValueCategory = lvalue
+# 2788| getStmt(17): [DeclStmt] declaration
+# 2788| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u
+# 2788| Type = [CTypedefType,Size_t] size_t
+# 2788| getVariable().getInitializer(): [Initializer] initializer for u
+# 2788| getExpr(): [SizeofExprOperator] sizeof()
+# 2788| Type = [LongType] unsigned long
+# 2788| ValueCategory = prvalue
+# 2788| getExprOperand(): [PointerDereferenceExpr] * ...
+# 2788| Type = [ArrayType] int[]
+# 2788| ValueCategory = lvalue
+# 2788| getOperand(): [PointerDereferenceExpr] * ...
+# 2788| Type = [ArrayType] int[][]
+# 2788| ValueCategory = lvalue
+# 2788| getOperand(): [VariableAccess] tmp3
+# 2788| Type = [ArrayType] int[][][]
+# 2788| ValueCategory = lvalue
+# 2788| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2788| Type = [PointerType] int(*)[][]
+# 2788| ValueCategory = prvalue
+# 2788| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2788| Type = [PointerType] int(*)[]
+# 2788| ValueCategory = prvalue
+# 2788| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2788| Type = [ArrayType] int[]
+# 2788| ValueCategory = lvalue
+# 2789| getStmt(18): [DeclStmt] declaration
+# 2789| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t
+# 2789| Type = [CTypedefType,Size_t] size_t
+# 2789| getVariable().getInitializer(): [Initializer] initializer for t
+# 2789| getExpr(): [SizeofExprOperator] sizeof()
+# 2789| Type = [LongType] unsigned long
+# 2789| Value = [SizeofExprOperator] 4
+# 2789| ValueCategory = prvalue
+# 2789| getExprOperand(): [PointerDereferenceExpr] * ...
+# 2789| Type = [IntType] int
+# 2789| ValueCategory = lvalue
+# 2789| getOperand(): [PointerDereferenceExpr] * ...
+# 2789| Type = [ArrayType] int[]
+# 2789| ValueCategory = lvalue
+# 2789| getOperand(): [PointerDereferenceExpr] * ...
+# 2789| Type = [ArrayType] int[][]
+# 2789| ValueCategory = lvalue
+# 2789| getOperand(): [VariableAccess] tmp3
+# 2789| Type = [ArrayType] int[][][]
+# 2789| ValueCategory = lvalue
+# 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2789| Type = [PointerType] int(*)[][]
+# 2789| ValueCategory = prvalue
+# 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2789| Type = [PointerType] int(*)[]
+# 2789| ValueCategory = prvalue
+# 2789| getOperand().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2789| Type = [IntPointerType] int *
+# 2789| ValueCategory = prvalue
+# 2789| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2789| Type = [IntType] int
+# 2789| ValueCategory = lvalue
+# 2790| getStmt(19): [ReturnStmt] return ...
+# 2792| [TopLevelFunction] void vla_sizeof_test2(int, size_t, char)
+# 2792| :
+# 2792| getParameter(0): [Parameter] len1
+# 2792| Type = [IntType] int
+# 2792| getParameter(1): [Parameter] len2
+# 2792| Type = [CTypedefType,Size_t] size_t
+# 2792| getParameter(2): [Parameter] len3
+# 2792| Type = [PlainCharType] char
+# 2792| getEntryPoint(): [BlockStmt] { ... }
+# 2793| getStmt(0): [DeclStmt] declaration
+# 2793| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1
+# 2793| Type = [ArrayType] int[][]
+# 2793| getStmt(1): [VlaDimensionStmt] VLA dimension size
+# 2793| getDimensionExpr(): [VariableAccess] len1
+# 2793| Type = [IntType] int
+# 2793| ValueCategory = prvalue(load)
+# 2793| getStmt(2): [VlaDimensionStmt] VLA dimension size
+# 2793| getDimensionExpr(): [VariableAccess] len2
+# 2793| Type = [CTypedefType,Size_t] size_t
+# 2793| ValueCategory = prvalue(load)
+# 2793| getStmt(3): [VlaDeclStmt] VLA declaration
+# 2794| getStmt(4): [DeclStmt] declaration
+# 2794| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
+# 2794| Type = [CTypedefType,Size_t] size_t
+# 2794| getVariable().getInitializer(): [Initializer] initializer for z
+# 2794| getExpr(): [SizeofExprOperator] sizeof()
+# 2794| Type = [LongType] unsigned long
+# 2794| ValueCategory = prvalue
+# 2794| getExprOperand(): [ArrayExpr] access to array
+# 2794| Type = [ArrayType] int[]
+# 2794| ValueCategory = lvalue
+# 2794| getArrayBase(): [VariableAccess] tmp1
+# 2794| Type = [ArrayType] int[][]
+# 2794| ValueCategory = lvalue
+# 2794| getArrayOffset(): [Literal] 1
+# 2794| Type = [IntType] int
+# 2794| Value = [Literal] 1
+# 2794| ValueCategory = prvalue
+# 2794| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2794| Type = [PointerType] int(*)[]
+# 2794| ValueCategory = prvalue
+# 2794| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2794| Type = [ArrayType] int[]
+# 2794| ValueCategory = lvalue
+# 2795| getStmt(5): [DeclStmt] declaration
+# 2795| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp2
+# 2795| Type = [ArrayType] int[][][]
+# 2795| getStmt(6): [VlaDimensionStmt] VLA dimension size
+# 2795| getDimensionExpr(): [VariableAccess] len1
+# 2795| Type = [IntType] int
+# 2795| ValueCategory = prvalue(load)
+# 2795| getStmt(7): [VlaDimensionStmt] VLA dimension size
+# 2795| getDimensionExpr(): [VariableAccess] len2
+# 2795| Type = [CTypedefType,Size_t] size_t
+# 2795| ValueCategory = prvalue(load)
+# 2795| getStmt(8): [VlaDimensionStmt] VLA dimension size
+# 2795| getDimensionExpr(): [VariableAccess] len3
+# 2795| Type = [PlainCharType] char
+# 2795| ValueCategory = prvalue(load)
+# 2795| getStmt(9): [VlaDeclStmt] VLA declaration
+# 2796| getStmt(10): [DeclStmt] declaration
+# 2796| getDeclarationEntry(0): [VariableDeclarationEntry] definition of v
+# 2796| Type = [CTypedefType,Size_t] size_t
+# 2796| getVariable().getInitializer(): [Initializer] initializer for v
+# 2796| getExpr(): [SizeofExprOperator] sizeof()
+# 2796| Type = [LongType] unsigned long
+# 2796| ValueCategory = prvalue
+# 2796| getExprOperand(): [ArrayExpr] access to array
+# 2796| Type = [ArrayType] int[][]
+# 2796| ValueCategory = lvalue
+# 2796| getArrayBase(): [VariableAccess] tmp2
+# 2796| Type = [ArrayType] int[][][]
+# 2796| ValueCategory = lvalue
+# 2796| getArrayOffset(): [Literal] 1
+# 2796| Type = [IntType] int
+# 2796| Value = [Literal] 1
+# 2796| ValueCategory = prvalue
+# 2796| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2796| Type = [PointerType] int(*)[][]
+# 2796| ValueCategory = prvalue
+# 2796| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2796| Type = [ArrayType] int[][]
+# 2796| ValueCategory = lvalue
+# 2797| getStmt(11): [DeclStmt] declaration
+# 2797| getDeclarationEntry(0): [VariableDeclarationEntry] definition of u
+# 2797| Type = [CTypedefType,Size_t] size_t
+# 2797| getVariable().getInitializer(): [Initializer] initializer for u
+# 2797| getExpr(): [SizeofExprOperator] sizeof()
+# 2797| Type = [LongType] unsigned long
+# 2797| ValueCategory = prvalue
+# 2797| getExprOperand(): [ArrayExpr] access to array
+# 2797| Type = [ArrayType] int[]
+# 2797| ValueCategory = lvalue
+# 2797| getArrayBase(): [ArrayExpr] access to array
+# 2797| Type = [ArrayType] int[][]
+# 2797| ValueCategory = lvalue
+# 2797| getArrayBase(): [VariableAccess] tmp2
+# 2797| Type = [ArrayType] int[][][]
+# 2797| ValueCategory = lvalue
+# 2797| getArrayOffset(): [Literal] 1
+# 2797| Type = [IntType] int
+# 2797| Value = [Literal] 1
+# 2797| ValueCategory = prvalue
+# 2797| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2797| Type = [PointerType] int(*)[][]
+# 2797| ValueCategory = prvalue
+# 2797| getArrayOffset(): [Literal] 2
+# 2797| Type = [IntType] int
+# 2797| Value = [Literal] 2
+# 2797| ValueCategory = prvalue
+# 2797| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2797| Type = [PointerType] int(*)[]
+# 2797| ValueCategory = prvalue
+# 2797| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2797| Type = [ArrayType] int[]
+# 2797| ValueCategory = lvalue
+# 2798| getStmt(12): [DeclStmt] declaration
+# 2798| getDeclarationEntry(0): [VariableDeclarationEntry] definition of t
+# 2798| Type = [CTypedefType,Size_t] size_t
+# 2798| getVariable().getInitializer(): [Initializer] initializer for t
+# 2798| getExpr(): [SizeofExprOperator] sizeof()
+# 2798| Type = [LongType] unsigned long
+# 2798| Value = [SizeofExprOperator] 4
+# 2798| ValueCategory = prvalue
+# 2798| getExprOperand(): [ArrayExpr] access to array
+# 2798| Type = [IntType] int
+# 2798| ValueCategory = lvalue
+# 2798| getArrayBase(): [ArrayExpr] access to array
+# 2798| Type = [ArrayType] int[]
+# 2798| ValueCategory = lvalue
+# 2798| getArrayBase(): [ArrayExpr] access to array
+# 2798| Type = [ArrayType] int[][]
+# 2798| ValueCategory = lvalue
+# 2798| getArrayBase(): [VariableAccess] tmp2
+# 2798| Type = [ArrayType] int[][][]
+# 2798| ValueCategory = lvalue
+# 2798| getArrayOffset(): [Literal] 1
+# 2798| Type = [IntType] int
+# 2798| Value = [Literal] 1
+# 2798| ValueCategory = prvalue
+# 2798| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2798| Type = [PointerType] int(*)[][]
+# 2798| ValueCategory = prvalue
+# 2798| getArrayOffset(): [Literal] 2
+# 2798| Type = [IntType] int
+# 2798| Value = [Literal] 2
+# 2798| ValueCategory = prvalue
+# 2798| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2798| Type = [PointerType] int(*)[]
+# 2798| ValueCategory = prvalue
+# 2798| getArrayOffset(): [Literal] 3
+# 2798| Type = [IntType] int
+# 2798| Value = [Literal] 3
+# 2798| ValueCategory = prvalue
+# 2798| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2798| Type = [IntPointerType] int *
+# 2798| ValueCategory = prvalue
+# 2798| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2798| Type = [IntType] int
+# 2798| ValueCategory = lvalue
+# 2799| getStmt(13): [ReturnStmt] return ...
+# 2801| [TopLevelFunction] size_t vla_sizeof_test3(int, size_t, char, bool)
+# 2801| :
+# 2801| getParameter(0): [Parameter] len1
+# 2801| Type = [IntType] int
+# 2801| getParameter(1): [Parameter] len2
+# 2801| Type = [CTypedefType,Size_t] size_t
+# 2801| getParameter(2): [Parameter] len3
+# 2801| Type = [PlainCharType] char
+# 2801| getParameter(3): [Parameter] b
+# 2801| Type = [BoolType] bool
+# 2801| getEntryPoint(): [BlockStmt] { ... }
+# 2802| getStmt(0): [DeclStmt] declaration
+# 2802| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr
+# 2802| Type = [CTypedefType,LocalTypedefType] arr
+# 2802| getStmt(1): [VlaDimensionStmt] VLA dimension size
+# 2802| getDimensionExpr(): [VariableAccess] len1
+# 2802| Type = [IntType] int
+# 2802| ValueCategory = prvalue(load)
+# 2802| getStmt(2): [VlaDimensionStmt] VLA dimension size
+# 2802| getDimensionExpr(): [VariableAccess] len2
+# 2802| Type = [CTypedefType,Size_t] size_t
+# 2802| ValueCategory = prvalue(load)
+# 2802| getStmt(3): [VlaDeclStmt] VLA declaration
+# 2803| getStmt(4): [DeclStmt] declaration
+# 2803| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr2
+# 2803| Type = [CTypedefType,LocalTypedefType] arr2
+# 2803| getStmt(5): [VlaDeclStmt] VLA declaration
+# 2804| getStmt(6): [DeclStmt] declaration
+# 2804| getDeclarationEntry(0): [TypeDeclarationEntry] declaration of arr3
+# 2804| Type = [CTypedefType,LocalTypedefType] arr3
+# 2804| getStmt(7): [VlaDimensionStmt] VLA dimension size
+# 2804| getDimensionExpr(): [VariableAccess] len3
+# 2804| Type = [PlainCharType] char
+# 2804| ValueCategory = prvalue(load)
+# 2804| getStmt(8): [VlaDeclStmt] VLA declaration
+# 2806| getStmt(9): [IfStmt] if (...) ...
+# 2806| getCondition(): [VariableAccess] b
+# 2806| Type = [BoolType] bool
+# 2806| ValueCategory = prvalue(load)
+# 2806| getThen(): [BlockStmt] { ... }
+# 2807| getStmt(0): [DeclStmt] declaration
+# 2807| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp
+# 2807| Type = [CTypedefType,LocalTypedefType] arr3
+# 2807| getStmt(1): [VlaDeclStmt] VLA declaration
+# 2808| getStmt(2): [ReturnStmt] return ...
+# 2808| getExpr(): [SizeofExprOperator] sizeof()
+# 2808| Type = [LongType] unsigned long
+# 2808| ValueCategory = prvalue
+# 2808| getExprOperand(): [ArrayExpr] access to array
+# 2808| Type = [CTypedefType,LocalTypedefType] arr2
+# 2808| ValueCategory = lvalue
+# 2808| getArrayBase(): [VariableAccess] tmp
+# 2808| Type = [CTypedefType,LocalTypedefType] arr3
+# 2808| ValueCategory = lvalue
+# 2808| getArrayOffset(): [Literal] 1
+# 2808| Type = [IntType] int
+# 2808| Value = [Literal] 1
+# 2808| ValueCategory = prvalue
+# 2808| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2808| Type = [PointerType] arr2 *
+# 2808| ValueCategory = prvalue
+# 2808| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2808| Type = [CTypedefType,LocalTypedefType] arr2
+# 2808| ValueCategory = lvalue
+# 2811| getStmt(10): [ReturnStmt] return ...
+# 2811| getExpr(): [Literal] 0
+# 2811| Type = [IntType] int
+# 2811| Value = [Literal] 0
+# 2811| ValueCategory = prvalue
+# 2811| getExpr().getFullyConverted(): [CStyleCast] (size_t)...
+# 2811| Conversion = [IntegralConversion] integral conversion
+# 2811| Type = [CTypedefType,Size_t] size_t
+# 2811| Value = [CStyleCast] 0
+# 2811| ValueCategory = prvalue
+# 2814| [TopLevelFunction] void vla_sizeof_test4(int, size_t)
+# 2814| :
+# 2814| getParameter(0): [Parameter] len1
+# 2814| Type = [IntType] int
+# 2814| getParameter(1): [Parameter] len2
+# 2814| Type = [CTypedefType,Size_t] size_t
+# 2814| getEntryPoint(): [BlockStmt] { ... }
+# 2815| getStmt(0): [DeclStmt] declaration
+# 2815| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1
+# 2815| Type = [ArrayType] int[][]
+# 2815| getStmt(1): [VlaDimensionStmt] VLA dimension size
+# 2815| getDimensionExpr(): [VariableAccess] len1
+# 2815| Type = [IntType] int
+# 2815| ValueCategory = prvalue(load)
+# 2815| getStmt(2): [VlaDimensionStmt] VLA dimension size
+# 2815| getDimensionExpr(): [VariableAccess] len2
+# 2815| Type = [CTypedefType,Size_t] size_t
+# 2815| ValueCategory = prvalue(load)
+# 2815| getStmt(3): [VlaDeclStmt] VLA declaration
+# 2816| getStmt(4): [DeclStmt] declaration
+# 2816| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
+# 2816| Type = [CTypedefType,Size_t] size_t
+# 2816| getVariable().getInitializer(): [Initializer] initializer for z
+# 2816| getExpr(): [SizeofExprOperator] sizeof()
+# 2816| Type = [LongType] unsigned long
+# 2816| ValueCategory = prvalue
+# 2816| getExprOperand(): [ArrayExpr] access to array
+# 2816| Type = [ArrayType] int[]
+# 2816| ValueCategory = lvalue
+# 2816| getArrayBase(): [VariableAccess] tmp1
+# 2816| Type = [ArrayType] int[][]
+# 2816| ValueCategory = lvalue
+# 2816| getArrayOffset(): [Literal] 1
+# 2816| Type = [IntType] int
+# 2816| Value = [Literal] 1
+# 2816| ValueCategory = prvalue
+# 2816| getArrayBase().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion
+# 2816| Type = [PointerType] int(*)[]
+# 2816| ValueCategory = prvalue
+# 2816| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2816| Type = [ArrayType] int[]
+# 2816| ValueCategory = lvalue
+# 2817| getStmt(5): [ReturnStmt] return ...
+# 2819| [TopLevelFunction] void vla_sizeof_test5(int, size_t)
+# 2819| :
+# 2819| getParameter(0): [Parameter] len1
+# 2819| Type = [IntType] int
+# 2819| getParameter(1): [Parameter] len2
+# 2819| Type = [CTypedefType,Size_t] size_t
+# 2819| getEntryPoint(): [BlockStmt] { ... }
+# 2820| getStmt(0): [DeclStmt] declaration
+# 2820| getDeclarationEntry(0): [VariableDeclarationEntry] definition of tmp1
+# 2820| Type = [ArrayType] int[][]
+# 2820| getStmt(1): [VlaDimensionStmt] VLA dimension size
+# 2820| getDimensionExpr(): [VariableAccess] len1
+# 2820| Type = [IntType] int
+# 2820| ValueCategory = prvalue(load)
+# 2820| getStmt(2): [VlaDimensionStmt] VLA dimension size
+# 2820| getDimensionExpr(): [VariableAccess] len2
+# 2820| Type = [CTypedefType,Size_t] size_t
+# 2820| ValueCategory = prvalue(load)
+# 2820| getStmt(3): [VlaDeclStmt] VLA declaration
+# 2821| getStmt(4): [DeclStmt] declaration
+# 2821| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z
+# 2821| Type = [CTypedefType,Size_t] size_t
+# 2821| getVariable().getInitializer(): [Initializer] initializer for z
+# 2821| getExpr(): [SizeofExprOperator] sizeof()
+# 2821| Type = [LongType] unsigned long
+# 2821| ValueCategory = prvalue
+# 2821| getExprOperand(): [ArrayExpr] access to array
+# 2821| Type = [ArrayType] int[]
+# 2821| ValueCategory = lvalue
+# 2821| getArrayBase(): [PointerDereferenceExpr] * ...
+# 2821| Type = [ArrayType] int[][]
+# 2821| ValueCategory = lvalue
+# 2821| getOperand(): [AddressOfExpr] & ...
+# 2821| Type = [PointerType] int(*)[][]
+# 2821| ValueCategory = prvalue
+# 2821| getOperand(): [VariableAccess] tmp1
+# 2821| Type = [ArrayType] int[][]
+# 2821| ValueCategory = lvalue
+# 2821| getArrayOffset(): [Literal] 1
+# 2821| Type = [IntType] int
+# 2821| Value = [Literal] 1
+# 2821| ValueCategory = prvalue
+# 2821| getArrayBase().getFullyConverted(): [ParenthesisExpr] (...)
+# 2821| Type = [PointerType] int(*)[]
+# 2821| ValueCategory = prvalue
+# 2821| getExpr(): [ArrayToPointerConversion] array to pointer conversion
+# 2821| Type = [PointerType] int(*)[]
+# 2821| ValueCategory = prvalue
+# 2821| getExprOperand().getFullyConverted(): [ParenthesisExpr] (...)
+# 2821| Type = [ArrayType] int[]
+# 2821| ValueCategory = lvalue
+# 2822| getStmt(5): [ReturnStmt] return ...
ir23.cpp:
# 1| [TopLevelFunction] bool consteval_1()
# 1| :
diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected
index d8babdb54e2..566cf07423b 100644
--- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected
+++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected
@@ -20430,6 +20430,247 @@ ir.cpp:
# 2774| v2774_6(void) = AliasedUse : ~m2776_6
# 2774| v2774_7(void) = ExitFunction :
+# 2779| void vla_sizeof_test(int, size_t, char)
+# 2779| Block 0
+# 2779| v2779_1(void) = EnterFunction :
+# 2779| m2779_2(unknown) = AliasedDefinition :
+# 2779| m2779_3(unknown) = InitializeNonLocal :
+# 2779| m2779_4(unknown) = Chi : total:m2779_2, partial:m2779_3
+# 2779| r2779_5(glval) = VariableAddress[len1] :
+# 2779| m2779_6(int) = InitializeParameter[len1] : &:r2779_5
+# 2779| r2779_7(glval) = VariableAddress[len2] :
+# 2779| m2779_8(unsigned long) = InitializeParameter[len2] : &:r2779_7
+# 2779| r2779_9(glval) = VariableAddress[len3] :
+# 2779| m2779_10(char) = InitializeParameter[len3] : &:r2779_9
+# 2780| r2780_1(glval) = VariableAddress[tmp1] :
+# 2780| m2780_2(char[]) = Uninitialized[tmp1] : &:r2780_1
+# 2780| r2780_3(glval) = VariableAddress[len1] :
+# 2780| r2780_4(int) = Load[len1] : &:r2780_3, m2779_6
+# 2780| v2780_5(void) = NoOp :
+# 2781| r2781_1(glval) = VariableAddress[x] :
+# 2781| r2781_2(unsigned long) = Constant[1] :
+# 2781| r2781_3(unsigned long) = Convert : r2780_4
+# 2781| r2781_4(unsigned long) = Mul : r2781_2, r2781_3
+# 2781| m2781_5(unsigned long) = Store[x] : &:r2781_1, r2781_4
+# 2782| r2782_1(glval) = VariableAddress[tmp2] :
+# 2782| m2782_2(int[][]) = Uninitialized[tmp2] : &:r2782_1
+# 2782| r2782_3(glval) = VariableAddress[len1] :
+# 2782| r2782_4(int) = Load[len1] : &:r2782_3, m2779_6
+# 2782| r2782_5(glval) = VariableAddress[len2] :
+# 2782| r2782_6(unsigned long) = Load[len2] : &:r2782_5, m2779_8
+# 2782| v2782_7(void) = NoOp :
+# 2783| r2783_1(glval) = VariableAddress[y] :
+# 2783| r2783_2(unsigned long) = Constant[4] :
+# 2783| r2783_3(unsigned long) = Convert : r2782_4
+# 2783| r2783_4(unsigned long) = Mul : r2783_2, r2783_3
+# 2783| r2783_5(unsigned long) = CopyValue : r2782_6
+# 2783| r2783_6(unsigned long) = Mul : r2783_4, r2783_5
+# 2783| m2783_7(unsigned long) = Store[y] : &:r2783_1, r2783_6
+# 2784| r2784_1(glval) = VariableAddress[z] :
+# 2784| r2784_2(unsigned long) = Constant[4] :
+# 2784| r2784_3(unsigned long) = CopyValue : r2782_6
+# 2784| r2784_4(unsigned long) = Mul : r2784_2, r2784_3
+# 2784| m2784_5(unsigned long) = Store[z] : &:r2784_1, r2784_4
+# 2785| r2785_1(glval) = VariableAddress[tmp3] :
+# 2785| m2785_2(int[][][]) = Uninitialized[tmp3] : &:r2785_1
+# 2785| r2785_3(glval) = VariableAddress[len1] :
+# 2785| r2785_4(int) = Load[len1] : &:r2785_3, m2779_6
+# 2785| r2785_5(glval) = VariableAddress[len2] :
+# 2785| r2785_6(unsigned long) = Load[len2] : &:r2785_5, m2779_8
+# 2785| r2785_7(glval) = VariableAddress[len3] :
+# 2785| r2785_8(char) = Load[len3] : &:r2785_7, m2779_10
+# 2785| v2785_9(void) = NoOp :
+# 2786| r2786_1(glval) = VariableAddress[w] :
+# 2786| r2786_2(unsigned long) = Constant[4] :
+# 2786| r2786_3(unsigned long) = Convert : r2785_4
+# 2786| r2786_4(unsigned long) = Mul : r2786_2, r2786_3
+# 2786| r2786_5(unsigned long) = CopyValue : r2785_6
+# 2786| r2786_6(unsigned long) = Mul : r2786_4, r2786_5
+# 2786| r2786_7(unsigned long) = Convert : r2785_8
+# 2786| r2786_8(unsigned long) = Mul : r2786_6, r2786_7
+# 2786| m2786_9(unsigned long) = Store[w] : &:r2786_1, r2786_8
+# 2787| r2787_1(glval) = VariableAddress[v] :
+# 2787| r2787_2(unsigned long) = Constant[4] :
+# 2787| r2787_3(unsigned long) = CopyValue : r2785_6
+# 2787| r2787_4(unsigned long) = Mul : r2787_2, r2787_3
+# 2787| r2787_5(unsigned long) = Convert : r2785_8
+# 2787| r2787_6(unsigned long) = Mul : r2787_4, r2787_5
+# 2787| m2787_7(unsigned long) = Store[v] : &:r2787_1, r2787_6
+# 2788| r2788_1(glval) = VariableAddress[u] :
+# 2788| r2788_2(unsigned long) = Constant[4] :
+# 2788| r2788_3(unsigned long) = Convert : r2785_8
+# 2788| r2788_4(unsigned long) = Mul : r2788_2, r2788_3
+# 2788| m2788_5(unsigned long) = Store[u] : &:r2788_1, r2788_4
+# 2789| r2789_1(glval) = VariableAddress[t] :
+# 2789| r2789_2(unsigned long) = Constant[4] :
+# 2789| m2789_3(unsigned long) = Store[t] : &:r2789_1, r2789_2
+# 2790| v2790_1(void) = NoOp :
+# 2779| v2779_11(void) = ReturnVoid :
+# 2779| v2779_12(void) = AliasedUse : m2779_3
+# 2779| v2779_13(void) = ExitFunction :
+
+# 2792| void vla_sizeof_test2(int, size_t, char)
+# 2792| Block 0
+# 2792| v2792_1(void) = EnterFunction :
+# 2792| m2792_2(unknown) = AliasedDefinition :
+# 2792| m2792_3(unknown) = InitializeNonLocal :
+# 2792| m2792_4(unknown) = Chi : total:m2792_2, partial:m2792_3
+# 2792| r2792_5(glval) = VariableAddress[len1] :
+# 2792| m2792_6(int) = InitializeParameter[len1] : &:r2792_5
+# 2792| r2792_7(glval) = VariableAddress[len2] :
+# 2792| m2792_8(unsigned long) = InitializeParameter[len2] : &:r2792_7
+# 2792| r2792_9(glval) = VariableAddress[len3] :
+# 2792| m2792_10(char) = InitializeParameter[len3] : &:r2792_9
+# 2793| r2793_1(glval) = VariableAddress[tmp1] :
+# 2793| m2793_2(int[][]) = Uninitialized[tmp1] : &:r2793_1
+# 2793| r2793_3(glval) = VariableAddress[len1] :
+# 2793| r2793_4(int) = Load[len1] : &:r2793_3, m2792_6
+# 2793| r2793_5(glval) = VariableAddress[len2] :
+# 2793| r2793_6(unsigned long) = Load[len2] : &:r2793_5, m2792_8
+# 2793| v2793_7(void) = NoOp :
+# 2794| r2794_1(glval) = VariableAddress[z] :
+# 2794| r2794_2(unsigned long) = Constant[4] :
+# 2794| r2794_3(unsigned long) = CopyValue : r2793_6
+# 2794| r2794_4(unsigned long) = Mul : r2794_2, r2794_3
+# 2794| m2794_5(unsigned long) = Store[z] : &:r2794_1, r2794_4
+# 2795| r2795_1(glval) = VariableAddress[tmp2] :
+# 2795| m2795_2(int[][][]) = Uninitialized[tmp2] : &:r2795_1
+# 2795| r2795_3(glval) = VariableAddress[len1] :
+# 2795| r2795_4(int) = Load[len1] : &:r2795_3, m2792_6
+# 2795| r2795_5(glval) = VariableAddress[len2] :
+# 2795| r2795_6(unsigned long) = Load[len2] : &:r2795_5, m2792_8
+# 2795| r2795_7(glval) = VariableAddress[len3] :
+# 2795| r2795_8(char) = Load[len3] : &:r2795_7, m2792_10
+# 2795| v2795_9(void) = NoOp :
+# 2796| r2796_1(glval) = VariableAddress[v] :
+# 2796| r2796_2(unsigned long) = Constant[4] :
+# 2796| r2796_3(unsigned long) = CopyValue : r2795_6
+# 2796| r2796_4(unsigned long) = Mul : r2796_2, r2796_3
+# 2796| r2796_5(unsigned long) = Convert : r2795_8
+# 2796| r2796_6(unsigned long) = Mul : r2796_4, r2796_5
+# 2796| m2796_7(unsigned long) = Store[v] : &:r2796_1, r2796_6
+# 2797| r2797_1(glval) = VariableAddress[u] :
+# 2797| r2797_2(unsigned long) = Constant[4] :
+# 2797| r2797_3(unsigned long) = Convert : r2795_8
+# 2797| r2797_4(unsigned long) = Mul : r2797_2, r2797_3
+# 2797| m2797_5(unsigned long) = Store[u] : &:r2797_1, r2797_4
+# 2798| r2798_1(glval) = VariableAddress[t] :
+# 2798| r2798_2(unsigned long) = Constant[4] :
+# 2798| m2798_3(unsigned long) = Store[t] : &:r2798_1, r2798_2
+# 2799| v2799_1(void) = NoOp :
+# 2792| v2792_11(void) = ReturnVoid :
+# 2792| v2792_12(void) = AliasedUse : m2792_3
+# 2792| v2792_13(void) = ExitFunction :
+
+# 2801| size_t vla_sizeof_test3(int, size_t, char, bool)
+# 2801| Block 0
+# 2801| v2801_1(void) = EnterFunction :
+# 2801| m2801_2(unknown) = AliasedDefinition :
+# 2801| m2801_3(unknown) = InitializeNonLocal :
+# 2801| m2801_4(unknown) = Chi : total:m2801_2, partial:m2801_3
+# 2801| r2801_5(glval) = VariableAddress[len1] :
+# 2801| m2801_6(int) = InitializeParameter[len1] : &:r2801_5
+# 2801| r2801_7(glval) = VariableAddress[len2] :
+# 2801| m2801_8(unsigned long) = InitializeParameter[len2] : &:r2801_7
+# 2801| r2801_9(glval) = VariableAddress[len3] :
+# 2801| m2801_10(char) = InitializeParameter[len3] : &:r2801_9
+# 2801| r2801_11(glval) = VariableAddress[b] :
+# 2801| m2801_12(bool) = InitializeParameter[b] : &:r2801_11
+# 2802| r2802_1(glval) = VariableAddress[len1] :
+# 2802| r2802_2(int) = Load[len1] : &:r2802_1, m2801_6
+# 2802| r2802_3(glval) = VariableAddress[len2] :
+# 2802| r2802_4(unsigned long) = Load[len2] : &:r2802_3, m2801_8
+# 2802| v2802_5(void) = NoOp :
+# 2803| v2803_1(void) = NoOp :
+# 2804| r2804_1(glval) = VariableAddress[len3] :
+# 2804| r2804_2(char) = Load[len3] : &:r2804_1, m2801_10
+# 2804| v2804_3(void) = NoOp :
+# 2806| r2806_1(glval) = VariableAddress[b] :
+# 2806| r2806_2(bool) = Load[b] : &:r2806_1, m2801_12
+# 2806| v2806_3(void) = ConditionalBranch : r2806_2
+#-----| False -> Block 3
+#-----| True -> Block 2
+
+# 2801| Block 1
+# 2801| m2801_13(unsigned long) = Phi : from 2:m2808_7, from 3:m2811_3
+# 2801| r2801_14(glval) = VariableAddress[#return] :
+# 2801| v2801_15(void) = ReturnValue : &:r2801_14, m2801_13
+# 2801| v2801_16(void) = AliasedUse : m2801_3
+# 2801| v2801_17(void) = ExitFunction :
+
+# 2807| Block 2
+# 2807| r2807_1(glval) = VariableAddress[tmp] :
+# 2807| m2807_2(long[][][]) = Uninitialized[tmp] : &:r2807_1
+# 2807| v2807_3(void) = NoOp :
+# 2808| r2808_1(glval) = VariableAddress[#return] :
+# 2808| r2808_2(unsigned long) = Constant[8] :
+# 2808| r2808_3(unsigned long) = Convert : r2802_2
+# 2808| r2808_4(unsigned long) = Mul : r2808_2, r2808_3
+# 2808| r2808_5(unsigned long) = CopyValue : r2802_4
+# 2808| r2808_6(unsigned long) = Mul : r2808_4, r2808_5
+# 2808| m2808_7(unsigned long) = Store[#return] : &:r2808_1, r2808_6
+#-----| Goto -> Block 1
+
+# 2811| Block 3
+# 2811| r2811_1(glval) = VariableAddress[#return] :
+# 2811| r2811_2(unsigned long) = Constant[0] :
+# 2811| m2811_3(unsigned long) = Store[#return] : &:r2811_1, r2811_2
+#-----| Goto -> Block 1
+
+# 2814| void vla_sizeof_test4(int, size_t)
+# 2814| Block 0
+# 2814| v2814_1(void) = EnterFunction :
+# 2814| m2814_2(unknown) = AliasedDefinition :
+# 2814| m2814_3(unknown) = InitializeNonLocal :
+# 2814| m2814_4(unknown) = Chi : total:m2814_2, partial:m2814_3
+# 2814| r2814_5(glval) = VariableAddress[len1] :
+# 2814| m2814_6(int) = InitializeParameter[len1] : &:r2814_5
+# 2814| r2814_7(glval) = VariableAddress[len2] :
+# 2814| m2814_8(unsigned long) = InitializeParameter[len2] : &:r2814_7
+# 2815| r2815_1(glval) = VariableAddress[tmp1] :
+# 2815| m2815_2(int[][]) = Uninitialized[tmp1] : &:r2815_1
+# 2815| r2815_3(glval) = VariableAddress[len1] :
+# 2815| r2815_4(int) = Load[len1] : &:r2815_3, m2814_6
+# 2815| r2815_5(glval) = VariableAddress[len2] :
+# 2815| r2815_6(unsigned long) = Load[len2] : &:r2815_5, m2814_8
+# 2815| v2815_7(void) = NoOp :
+# 2816| r2816_1(glval) = VariableAddress[z] :
+# 2816| r2816_2(unsigned long) = Constant[4] :
+# 2816| r2816_3(unsigned long) = CopyValue : r2815_6
+# 2816| r2816_4(unsigned long) = Mul : r2816_2, r2816_3
+# 2816| m2816_5(unsigned long) = Store[z] : &:r2816_1, r2816_4
+# 2817| v2817_1(void) = NoOp :
+# 2814| v2814_9(void) = ReturnVoid :
+# 2814| v2814_10(void) = AliasedUse : m2814_3
+# 2814| v2814_11(void) = ExitFunction :
+
+# 2819| void vla_sizeof_test5(int, size_t)
+# 2819| Block 0
+# 2819| v2819_1(void) = EnterFunction :
+# 2819| m2819_2(unknown) = AliasedDefinition :
+# 2819| m2819_3(unknown) = InitializeNonLocal :
+# 2819| m2819_4(unknown) = Chi : total:m2819_2, partial:m2819_3
+# 2819| r2819_5(glval) = VariableAddress[len1] :
+# 2819| m2819_6(int) = InitializeParameter[len1] : &:r2819_5
+# 2819| r2819_7(glval) = VariableAddress[len2] :
+# 2819| m2819_8(unsigned long) = InitializeParameter[len2] : &:r2819_7
+# 2820| r2820_1(glval) = VariableAddress[tmp1] :
+# 2820| m2820_2(int[][]) = Uninitialized[tmp1] : &:r2820_1
+# 2820| r2820_3(glval) = VariableAddress[len1] :
+# 2820| r2820_4(int) = Load[len1] : &:r2820_3, m2819_6
+# 2820| r2820_5(glval) = VariableAddress[len2] :
+# 2820| r2820_6(unsigned long) = Load[len2] : &:r2820_5, m2819_8
+# 2820| v2820_7(void) = NoOp :
+# 2821| r2821_1(glval) = VariableAddress[z] :
+# 2821| r2821_2(unsigned long) = Constant[4] :
+# 2821| r2821_3(unsigned long) = CopyValue : r2820_6
+# 2821| r2821_4(unsigned long) = Mul : r2821_2, r2821_3
+# 2821| m2821_5(unsigned long) = Store[z] : &:r2821_1, r2821_4
+# 2822| v2822_1(void) = NoOp :
+# 2819| v2819_9(void) = ReturnVoid :
+# 2819| v2819_10(void) = AliasedUse : m2819_3
+# 2819| v2819_11(void) = ExitFunction :
+
ir23.cpp:
# 1| bool consteval_1()
# 1| Block 0
diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp
index 66af788db12..3dce0a0e1ea 100644
--- a/cpp/ql/test/library-tests/ir/ir/ir.cpp
+++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp
@@ -2776,4 +2776,49 @@ void test_allocation_with_initializer() {
long* p2 = new long(42);
}
+void vla_sizeof_test(int len1, size_t len2, char len3) {
+ char tmp1[len1];
+ size_t x = sizeof(tmp1);
+ int tmp2[len1][len2];
+ size_t y = sizeof(tmp2);
+ size_t z = sizeof(*tmp2);
+ int tmp3[len1][len2][len3];
+ size_t w = sizeof(tmp3);
+ size_t v = sizeof(*tmp3);
+ size_t u = sizeof(**tmp3);
+ size_t t = sizeof(***tmp3);
+}
+
+void vla_sizeof_test2(int len1, size_t len2, char len3) {
+ int tmp1[len1][len2];
+ size_t z = sizeof(tmp1[1]);
+ int tmp2[len1][len2][len3];
+ size_t v = sizeof(tmp2[1]);
+ size_t u = sizeof(tmp2[1][2]);
+ size_t t = sizeof(tmp2[1][2][3]);
+}
+
+size_t vla_sizeof_test3(int len1, size_t len2, char len3, bool b) {
+ typedef long arr[len1][len2];
+ typedef arr arr2;
+ typedef arr2 arr3[len3];
+
+ if (b) {
+ arr3 tmp;
+ return sizeof(tmp[1]);
+ }
+
+ return 0;
+}
+
+void vla_sizeof_test4(int len1, size_t len2) {
+ int tmp1[len1][len2];
+ size_t z = sizeof(1[tmp1]);
+}
+
+void vla_sizeof_test5(int len1, size_t len2) {
+ int tmp1[len1][len2];
+ size_t z = sizeof((*&tmp1)[1]);
+}
+
// semmle-extractor-options: -std=c++20 --clang
diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected
index a567c651ca2..1d8f885cd15 100644
--- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected
+++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected
@@ -18577,6 +18577,241 @@ ir.cpp:
# 2774| v2774_5(void) = AliasedUse : ~m?
# 2774| v2774_6(void) = ExitFunction :
+# 2779| void vla_sizeof_test(int, size_t, char)
+# 2779| Block 0
+# 2779| v2779_1(void) = EnterFunction :
+# 2779| mu2779_2(unknown) = AliasedDefinition :
+# 2779| mu2779_3(unknown) = InitializeNonLocal :
+# 2779| r2779_4(glval) = VariableAddress[len1] :
+# 2779| mu2779_5(int) = InitializeParameter[len1] : &:r2779_4
+# 2779| r2779_6(glval) = VariableAddress[len2] :
+# 2779| mu2779_7(unsigned long) = InitializeParameter[len2] : &:r2779_6
+# 2779| r2779_8(glval) = VariableAddress[len3] :
+# 2779| mu2779_9(char) = InitializeParameter[len3] : &:r2779_8
+# 2780| r2780_1(glval) = VariableAddress[tmp1] :
+# 2780| mu2780_2(char[]) = Uninitialized[tmp1] : &:r2780_1
+# 2780| r2780_3(glval) = VariableAddress[len1] :
+# 2780| r2780_4(int) = Load[len1] : &:r2780_3, ~m?
+# 2780| v2780_5(void) = NoOp :
+# 2781| r2781_1(glval) = VariableAddress[x] :
+# 2781| r2781_2(unsigned long) = Constant[1] :
+# 2781| r2781_3(unsigned long) = Convert : r2780_4
+# 2781| r2781_4(unsigned long) = Mul : r2781_2, r2781_3
+# 2781| mu2781_5(unsigned long) = Store[x] : &:r2781_1, r2781_4
+# 2782| r2782_1(glval) = VariableAddress[tmp2] :
+# 2782| mu2782_2(int[][]) = Uninitialized[tmp2] : &:r2782_1
+# 2782| r2782_3(glval) = VariableAddress[len1] :
+# 2782| r2782_4(int) = Load[len1] : &:r2782_3, ~m?
+# 2782| r2782_5(glval) = VariableAddress[len2] :
+# 2782| r2782_6(unsigned long) = Load[len2] : &:r2782_5, ~m?
+# 2782| v2782_7(void) = NoOp :
+# 2783| r2783_1(glval) = VariableAddress[y] :
+# 2783| r2783_2(unsigned long) = Constant[4] :
+# 2783| r2783_3(unsigned long) = Convert : r2782_4
+# 2783| r2783_4(unsigned long) = Mul : r2783_2, r2783_3
+# 2783| r2783_5(unsigned long) = CopyValue : r2782_6
+# 2783| r2783_6(unsigned long) = Mul : r2783_4, r2783_5
+# 2783| mu2783_7(unsigned long) = Store[y] : &:r2783_1, r2783_6
+# 2784| r2784_1(glval) = VariableAddress[z] :
+# 2784| r2784_2(unsigned long) = Constant[4] :
+# 2784| r2784_3(unsigned long) = CopyValue : r2782_6
+# 2784| r2784_4(unsigned long) = Mul : r2784_2, r2784_3
+# 2784| mu2784_5(unsigned long) = Store[z] : &:r2784_1, r2784_4
+# 2785| r2785_1(glval) = VariableAddress[tmp3] :
+# 2785| mu2785_2(int[][][]) = Uninitialized[tmp3] : &:r2785_1
+# 2785| r2785_3(glval) = VariableAddress[len1] :
+# 2785| r2785_4(int) = Load[len1] : &:r2785_3, ~m?
+# 2785| r2785_5(glval) = VariableAddress[len2] :
+# 2785| r2785_6(unsigned long) = Load[len2] : &:r2785_5, ~m?
+# 2785| r2785_7(glval) = VariableAddress[len3] :
+# 2785| r2785_8(char) = Load[len3] : &:r2785_7, ~m?
+# 2785| v2785_9(void) = NoOp :
+# 2786| r2786_1(glval) = VariableAddress[w] :
+# 2786| r2786_2(unsigned long) = Constant[4] :
+# 2786| r2786_3(unsigned long) = Convert : r2785_4
+# 2786| r2786_4(unsigned long) = Mul : r2786_2, r2786_3
+# 2786| r2786_5(unsigned long) = CopyValue : r2785_6
+# 2786| r2786_6(unsigned long) = Mul : r2786_4, r2786_5
+# 2786| r2786_7(unsigned long) = Convert : r2785_8
+# 2786| r2786_8(unsigned long) = Mul : r2786_6, r2786_7
+# 2786| mu2786_9(unsigned long) = Store[w] : &:r2786_1, r2786_8
+# 2787| r2787_1(glval) = VariableAddress[v] :
+# 2787| r2787_2(unsigned long) = Constant[4] :
+# 2787| r2787_3(unsigned long) = CopyValue : r2785_6
+# 2787| r2787_4(unsigned long) = Mul : r2787_2, r2787_3
+# 2787| r2787_5(unsigned long) = Convert : r2785_8
+# 2787| r2787_6(unsigned long) = Mul : r2787_4, r2787_5
+# 2787| mu2787_7(unsigned long) = Store[v] : &:r2787_1, r2787_6
+# 2788| r2788_1(glval) = VariableAddress[u] :
+# 2788| r2788_2(unsigned long) = Constant[4] :
+# 2788| r2788_3(unsigned long) = Convert : r2785_8
+# 2788| r2788_4(unsigned long) = Mul : r2788_2, r2788_3
+# 2788| mu2788_5(unsigned long) = Store[u] : &:r2788_1, r2788_4
+# 2789| r2789_1(glval) = VariableAddress[t] :
+# 2789| r2789_2(unsigned long) = Constant[4] :
+# 2789| mu2789_3(unsigned long) = Store[t] : &:r2789_1, r2789_2
+# 2790| v2790_1(void) = NoOp :
+# 2779| v2779_10(void) = ReturnVoid :
+# 2779| v2779_11(void) = AliasedUse : ~m?
+# 2779| v2779_12(void) = ExitFunction :
+
+# 2792| void vla_sizeof_test2(int, size_t, char)
+# 2792| Block 0
+# 2792| v2792_1(void) = EnterFunction :
+# 2792| mu2792_2(unknown) = AliasedDefinition :
+# 2792| mu2792_3(unknown) = InitializeNonLocal :
+# 2792| r2792_4(glval) = VariableAddress[len1] :
+# 2792| mu2792_5(int) = InitializeParameter[len1] : &:r2792_4
+# 2792| r2792_6(glval) = VariableAddress[len2] :
+# 2792| mu2792_7(unsigned long) = InitializeParameter[len2] : &:r2792_6
+# 2792| r2792_8(glval) = VariableAddress[len3] :
+# 2792| mu2792_9(char) = InitializeParameter[len3] : &:r2792_8
+# 2793| r2793_1(glval) = VariableAddress[tmp1] :
+# 2793| mu2793_2(int[][]) = Uninitialized[tmp1] : &:r2793_1
+# 2793| r2793_3(glval) = VariableAddress[len1] :
+# 2793| r2793_4(int) = Load[len1] : &:r2793_3, ~m?
+# 2793| r2793_5(glval) = VariableAddress[len2] :
+# 2793| r2793_6(unsigned long) = Load[len2] : &:r2793_5, ~m?
+# 2793| v2793_7(void) = NoOp :
+# 2794| r2794_1(glval) = VariableAddress[z] :
+# 2794| r2794_2(unsigned long) = Constant[4] :
+# 2794| r2794_3(unsigned long) = CopyValue : r2793_6
+# 2794| r2794_4(unsigned long) = Mul : r2794_2, r2794_3
+# 2794| mu2794_5(unsigned long) = Store[z] : &:r2794_1, r2794_4
+# 2795| r2795_1(glval) = VariableAddress[tmp2] :
+# 2795| mu2795_2(int[][][]) = Uninitialized[tmp2] : &:r2795_1
+# 2795| r2795_3(glval) = VariableAddress[len1] :
+# 2795| r2795_4(int) = Load[len1] : &:r2795_3, ~m?
+# 2795| r2795_5(glval) = VariableAddress[len2] :
+# 2795| r2795_6(unsigned long) = Load[len2] : &:r2795_5, ~m?
+# 2795| r2795_7(glval) = VariableAddress[len3] :
+# 2795| r2795_8(char) = Load[len3] : &:r2795_7, ~m?
+# 2795| v2795_9(void) = NoOp :
+# 2796| r2796_1(glval) = VariableAddress[v] :
+# 2796| r2796_2(unsigned long) = Constant[4] :
+# 2796| r2796_3(unsigned long) = CopyValue : r2795_6
+# 2796| r2796_4(unsigned long) = Mul : r2796_2, r2796_3
+# 2796| r2796_5(unsigned long) = Convert : r2795_8
+# 2796| r2796_6(unsigned long) = Mul : r2796_4, r2796_5
+# 2796| mu2796_7(unsigned long) = Store[v] : &:r2796_1, r2796_6
+# 2797| r2797_1(glval) = VariableAddress[u] :
+# 2797| r2797_2(unsigned long) = Constant[4] :
+# 2797| r2797_3(unsigned long) = Convert : r2795_8
+# 2797| r2797_4(unsigned long) = Mul : r2797_2, r2797_3
+# 2797| mu2797_5(unsigned long) = Store[u] : &:r2797_1, r2797_4
+# 2798| r2798_1(glval) = VariableAddress[t] :
+# 2798| r2798_2(unsigned long) = Constant[4] :
+# 2798| mu2798_3(unsigned long) = Store[t] : &:r2798_1, r2798_2
+# 2799| v2799_1(void) = NoOp :
+# 2792| v2792_10(void) = ReturnVoid :
+# 2792| v2792_11(void) = AliasedUse : ~m?
+# 2792| v2792_12(void) = ExitFunction :
+
+# 2801| size_t vla_sizeof_test3(int, size_t, char, bool)
+# 2801| Block 0
+# 2801| v2801_1(void) = EnterFunction :
+# 2801| mu2801_2(unknown) = AliasedDefinition :
+# 2801| mu2801_3(unknown) = InitializeNonLocal :
+# 2801| r2801_4(glval) = VariableAddress[len1] :
+# 2801| mu2801_5(int) = InitializeParameter[len1] : &:r2801_4
+# 2801| r2801_6(glval) = VariableAddress[len2] :
+# 2801| mu2801_7(unsigned long) = InitializeParameter[len2] : &:r2801_6
+# 2801| r2801_8(glval) = VariableAddress[len3] :
+# 2801| mu2801_9(char) = InitializeParameter[len3] : &:r2801_8
+# 2801| r2801_10(glval) = VariableAddress[b] :
+# 2801| mu2801_11(bool) = InitializeParameter[b] : &:r2801_10
+# 2802| r2802_1(glval) = VariableAddress[len1] :
+# 2802| r2802_2(int) = Load[len1] : &:r2802_1, ~m?
+# 2802| r2802_3(glval) = VariableAddress[len2] :
+# 2802| r2802_4(unsigned long) = Load[len2] : &:r2802_3, ~m?
+# 2802| v2802_5(void) = NoOp :
+# 2803| v2803_1(void) = NoOp :
+# 2804| r2804_1(glval) = VariableAddress[len3] :
+# 2804| r2804_2(char) = Load[len3] : &:r2804_1, ~m?
+# 2804| v2804_3(void) = NoOp :
+# 2806| r2806_1(glval) = VariableAddress[b] :
+# 2806| r2806_2(bool) = Load[b] : &:r2806_1, ~m?
+# 2806| v2806_3(void) = ConditionalBranch : r2806_2
+#-----| False -> Block 3
+#-----| True -> Block 2
+
+# 2801| Block 1
+# 2801| r2801_12(glval) = VariableAddress[#return] :
+# 2801| v2801_13(void) = ReturnValue : &:r2801_12, ~m?
+# 2801| v2801_14(void) = AliasedUse : ~m?
+# 2801| v2801_15(void) = ExitFunction :
+
+# 2807| Block 2
+# 2807| r2807_1(glval) = VariableAddress[tmp] :
+# 2807| mu2807_2(long[][][]) = Uninitialized[tmp] : &:r2807_1
+# 2807| v2807_3(void) = NoOp :
+# 2808| r2808_1(glval) = VariableAddress[#return] :
+# 2808| r2808_2(unsigned long) = Constant[8] :
+# 2808| r2808_3(unsigned long) = Convert : r2802_2
+# 2808| r2808_4(unsigned long) = Mul : r2808_2, r2808_3
+# 2808| r2808_5(unsigned long) = CopyValue : r2802_4
+# 2808| r2808_6(unsigned long) = Mul : r2808_4, r2808_5
+# 2808| mu2808_7(unsigned long) = Store[#return] : &:r2808_1, r2808_6
+#-----| Goto -> Block 1
+
+# 2811| Block 3
+# 2811| r2811_1(glval) = VariableAddress[#return] :
+# 2811| r2811_2(unsigned long) = Constant[0] :
+# 2811| mu2811_3(unsigned long) = Store[#return] : &:r2811_1, r2811_2
+#-----| Goto -> Block 1
+
+# 2814| void vla_sizeof_test4(int, size_t)
+# 2814| Block 0
+# 2814| v2814_1(void) = EnterFunction :
+# 2814| mu2814_2(unknown) = AliasedDefinition :
+# 2814| mu2814_3(unknown) = InitializeNonLocal :
+# 2814| r2814_4(glval) = VariableAddress[len1] :
+# 2814| mu2814_5(int) = InitializeParameter[len1] : &:r2814_4
+# 2814| r2814_6(glval) = VariableAddress[len2] :
+# 2814| mu2814_7(unsigned long) = InitializeParameter[len2] : &:r2814_6
+# 2815| r2815_1(glval) = VariableAddress[tmp1] :
+# 2815| mu2815_2(int[][]) = Uninitialized[tmp1] : &:r2815_1
+# 2815| r2815_3(glval) = VariableAddress[len1] :
+# 2815| r2815_4(int) = Load[len1] : &:r2815_3, ~m?
+# 2815| r2815_5(glval) = VariableAddress[len2] :
+# 2815| r2815_6(unsigned long) = Load[len2] : &:r2815_5, ~m?
+# 2815| v2815_7(void) = NoOp :
+# 2816| r2816_1(glval) = VariableAddress[z] :
+# 2816| r2816_2(unsigned long) = Constant[4] :
+# 2816| r2816_3(unsigned long) = CopyValue : r2815_6
+# 2816| r2816_4(unsigned long) = Mul : r2816_2, r2816_3
+# 2816| mu2816_5(unsigned long) = Store[z] : &:r2816_1, r2816_4
+# 2817| v2817_1(void) = NoOp :
+# 2814| v2814_8(void) = ReturnVoid :
+# 2814| v2814_9(void) = AliasedUse : ~m?
+# 2814| v2814_10(void) = ExitFunction :
+
+# 2819| void vla_sizeof_test5(int, size_t)
+# 2819| Block 0
+# 2819| v2819_1(void) = EnterFunction :
+# 2819| mu2819_2(unknown) = AliasedDefinition :
+# 2819| mu2819_3(unknown) = InitializeNonLocal :
+# 2819| r2819_4(glval) = VariableAddress[len1] :
+# 2819| mu2819_5(int) = InitializeParameter[len1] : &:r2819_4
+# 2819| r2819_6(glval) = VariableAddress[len2] :
+# 2819| mu2819_7(unsigned long) = InitializeParameter[len2] : &:r2819_6
+# 2820| r2820_1(glval) = VariableAddress[tmp1] :
+# 2820| mu2820_2(int[][]) = Uninitialized[tmp1] : &:r2820_1
+# 2820| r2820_3(glval) = VariableAddress[len1] :
+# 2820| r2820_4(int) = Load[len1] : &:r2820_3, ~m?
+# 2820| r2820_5(glval) = VariableAddress[len2] :
+# 2820| r2820_6(unsigned long) = Load[len2] : &:r2820_5, ~m?
+# 2820| v2820_7(void) = NoOp :
+# 2821| r2821_1(glval) = VariableAddress[z] :
+# 2821| r2821_2(unsigned long) = Constant[4] :
+# 2821| r2821_3(unsigned long) = CopyValue : r2820_6
+# 2821| r2821_4(unsigned long) = Mul : r2821_2, r2821_3
+# 2821| mu2821_5(unsigned long) = Store[z] : &:r2821_1, r2821_4
+# 2822| v2822_1(void) = NoOp :
+# 2819| v2819_8(void) = ReturnVoid :
+# 2819| v2819_9(void) = AliasedUse : ~m?
+# 2819| v2819_10(void) = ExitFunction :
+
ir23.cpp:
# 1| bool consteval_1()
# 1| Block 0
diff --git a/csharp/codeql-extractor.yml b/csharp/codeql-extractor.yml
index c4d7352cc43..786b78950ca 100644
--- a/csharp/codeql-extractor.yml
+++ b/csharp/codeql-extractor.yml
@@ -10,6 +10,8 @@ build_modes:
- autobuild
- manual
- none
+default_queries:
+ - codeql/csharp-queries
github_api_languages:
- C#
scc_languages:
diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv
index 72c46c89934..4713679cd23 100644
--- a/csharp/documentation/library-coverage/coverage.csv
+++ b/csharp/documentation/library-coverage/coverage.csv
@@ -43,5 +43,5 @@ MySql.Data.MySqlClient,48,,,,,,,,,,,,48,,,,,,,,,,
Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,,,73,18
ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,,,7,
SourceGenerators,,,5,,,,,,,,,,,,,,,,,,,,5
-System,54,47,12165,,6,5,5,,,4,1,,33,2,,6,15,17,4,3,,5929,6236
+System,54,47,12241,,6,5,5,,,4,1,,33,2,,6,15,17,4,3,,6003,6238
Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,,,,,,,,,,
diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst
index c1c3f927fd7..061662f9714 100644
--- a/csharp/documentation/library-coverage/coverage.rst
+++ b/csharp/documentation/library-coverage/coverage.rst
@@ -8,7 +8,7 @@ C# framework & library support
Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE-079` :sub:`Cross-site scripting`
`ServiceStack `_,"``ServiceStack.*``, ``ServiceStack``",,7,194,
- System,"``System.*``, ``System``",47,12165,54,5
+ System,"``System.*``, ``System``",47,12241,54,5
Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Data.SqlClient``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2257,159,4
- Totals,,107,14429,407,9
+ Totals,,107,14505,407,9
diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md
index c276cd6133e..7f3f4d43683 100644
--- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md
+++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.7.47
+
+No user-facing changes.
+
## 1.7.46
No user-facing changes.
diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.47.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.47.md
new file mode 100644
index 00000000000..afc26600b73
--- /dev/null
+++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.47.md
@@ -0,0 +1,3 @@
+## 1.7.47
+
+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 a39de8bc91c..21f0fc0de3c 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.46
+lastReleaseVersion: 1.7.47
diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml
index ea7b1f0c021..826e53b7681 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.47-dev
+version: 1.7.48-dev
groups:
- csharp
- solorigate
diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md
index c276cd6133e..7f3f4d43683 100644
--- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md
+++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.7.47
+
+No user-facing changes.
+
## 1.7.46
No user-facing changes.
diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.47.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.47.md
new file mode 100644
index 00000000000..afc26600b73
--- /dev/null
+++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.47.md
@@ -0,0 +1,3 @@
+## 1.7.47
+
+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 a39de8bc91c..21f0fc0de3c 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.46
+lastReleaseVersion: 1.7.47
diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml
index 377ad66a5ba..468bd64cbd0 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.47-dev
+version: 1.7.48-dev
groups:
- csharp
- solorigate
diff --git a/csharp/ql/consistency-queries/CfgConsistency.ql b/csharp/ql/consistency-queries/CfgConsistency.ql
index 3caf64f9aec..d7f0c091538 100644
--- a/csharp/ql/consistency-queries/CfgConsistency.ql
+++ b/csharp/ql/consistency-queries/CfgConsistency.ql
@@ -29,7 +29,7 @@ predicate bbSuccInconsistency(ControlFlowElement pred, ControlFlowElement succ)
succBB.getFirstNode() = succ.getAControlFlowNode()
) and
not exists(PreBasicBlock predBB, PreBasicBlock succBB |
- predBB.getLastElement() = pred and
+ predBB.getLastNode() = pred and
succBB = predBB.getASuccessor() and
succBB.getFirstElement() = succ
)
@@ -41,12 +41,12 @@ predicate bbIntraSuccInconsistency(ControlFlowElement pred, ControlFlowElement s
succ.getAControlFlowNode() = bb.getNode(i + 1)
) and
not exists(PreBasicBlock bb |
- bb.getLastElement() = pred and
+ bb.getLastNode() = pred and
bb.getASuccessor().getFirstElement() = succ
) and
not exists(PreBasicBlock bb, int i |
- bb.getElement(i) = pred and
- bb.getElement(i + 1) = succ
+ bb.getNode(i) = pred and
+ bb.getNode(i + 1) = succ
)
}
diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md
index 9e3686d8267..0aca82e8310 100644
--- a/csharp/ql/lib/CHANGELOG.md
+++ b/csharp/ql/lib/CHANGELOG.md
@@ -1,3 +1,12 @@
+## 5.2.3
+
+### Minor Analysis Improvements
+
+* A bug has been fixed in the data flow analysis, which means that flow through calls using the `base` qualifier may now be tracked more accurately.
+* Added summary models for `System.Xml.XmlReader`, `System.Xml.XmlTextReader` and `System.Xml.XmlDictionaryReader`.
+* Models-as-data summaries for byte and char arrays and pointers now treat the entire collection as tainted, reflecting their common use as string alternatives.
+* The default taint tracking configuration now allows implicit reads from collections at sinks and in additional flow steps. This increases flow coverage for many taint tracking queries and helps reduce false negatives.
+
## 5.2.2
No user-facing changes.
diff --git a/csharp/ql/lib/change-notes/2025-08-18-byte-char-bulk-types.md b/csharp/ql/lib/change-notes/2025-08-18-byte-char-bulk-types.md
deleted file mode 100644
index e5a081c3340..00000000000
--- a/csharp/ql/lib/change-notes/2025-08-18-byte-char-bulk-types.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: minorAnalysis
----
-* Models-as-data summaries for byte and char arrays and pointers now treat the entire collection as tainted, reflecting their common use as string alternatives.
diff --git a/csharp/ql/lib/change-notes/2025-08-18-implicit-reads-at-sinks.md b/csharp/ql/lib/change-notes/2025-08-18-implicit-reads-at-sinks.md
deleted file mode 100644
index d66e982e6ae..00000000000
--- a/csharp/ql/lib/change-notes/2025-08-18-implicit-reads-at-sinks.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: minorAnalysis
----
-* The default taint tracking configuration now allows implicit reads from collections at sinks and in additional flow steps. This increases flow coverage for many taint tracking queries and helps reduce false negatives.
diff --git a/csharp/ql/lib/change-notes/released/5.2.3.md b/csharp/ql/lib/change-notes/released/5.2.3.md
new file mode 100644
index 00000000000..b9891310419
--- /dev/null
+++ b/csharp/ql/lib/change-notes/released/5.2.3.md
@@ -0,0 +1,8 @@
+## 5.2.3
+
+### Minor Analysis Improvements
+
+* A bug has been fixed in the data flow analysis, which means that flow through calls using the `base` qualifier may now be tracked more accurately.
+* Added summary models for `System.Xml.XmlReader`, `System.Xml.XmlTextReader` and `System.Xml.XmlDictionaryReader`.
+* Models-as-data summaries for byte and char arrays and pointers now treat the entire collection as tainted, reflecting their common use as string alternatives.
+* The default taint tracking configuration now allows implicit reads from collections at sinks and in additional flow steps. This increases flow coverage for many taint tracking queries and helps reduce false negatives.
diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml
index e3b1b0c079d..f7fd1ec5b57 100644
--- a/csharp/ql/lib/codeql-pack.release.yml
+++ b/csharp/ql/lib/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 5.2.2
+lastReleaseVersion: 5.2.3
diff --git a/csharp/ql/lib/ext/System.Xml.model.yml b/csharp/ql/lib/ext/System.Xml.model.yml
index efea34b40db..a6ed8dd465d 100644
--- a/csharp/ql/lib/ext/System.Xml.model.yml
+++ b/csharp/ql/lib/ext/System.Xml.model.yml
@@ -23,6 +23,17 @@ extensions:
- ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[3]", "ReturnValue", "taint", "manual"]
- ["System.Xml", "XmlDictionaryReader", False, "CreateBinaryReader", "(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlDictionaryReader", False, "CreateTextReader", "(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", False, "CreateTextReader", "(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", False, "CreateTextReader", "(System.Byte[],System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", False, "CreateTextReader", "(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", False, "CreateTextReader", "(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", True, "ReadContentAsBase64", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", True, "ReadContentAsBinHex", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", True, "ReadContentAsBinHex", "(System.Int32)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", True, "ReadContentAsChars", "(System.Char[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", True, "ReadElementContentAsBase64", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlDictionaryReader", True, "ReadElementContentAsBinHex", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["System.Xml", "XmlDocument", False, "Load", "(System.IO.Stream)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["System.Xml", "XmlDocument", False, "Load", "(System.IO.TextReader)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["System.Xml", "XmlDocument", False, "Load", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
@@ -68,3 +79,68 @@ extensions:
- ["System.Xml", "XmlReader", False, "Create", "(System.String,System.Xml.XmlReaderSettings)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["System.Xml", "XmlReader", False, "Create", "(System.String,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["System.Xml", "XmlReader", False, "Create", "(System.Xml.XmlReader,System.Xml.XmlReaderSettings)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "GetAttribute", "(System.Int32)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "GetAttribute", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "GetAttribute", "(System.String,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "GetValueAsync", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "LookupNamespace", "(System.String)", "", "Argument[0]", "ReturnValue", "value", "dfc-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAs", "(System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsAsync", "(System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsBase64", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsBase64Async", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsBinHex", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsBinHexAsync", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsObject", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsObjectAsync", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadContentAsStringAsync", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAs", "(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsAsync", "(System.Type,System.Xml.IXmlNamespaceResolver)", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsBase64", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsBase64Async", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsBinHex", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsBinHexAsync", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsObject", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsObject", "(System.String,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementContentAsString", "(System.String,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementString", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadElementString", "(System.String,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadInnerXml", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadInnerXmlAsync", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadOuterXml", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadOuterXmlAsync", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadString", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadSubtree", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "ReadValueChunk", "(System.Char[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "ReadValueChunkAsync", "(System.Char[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlReader", True, "get_BaseURI", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_Item", "(System.Int32)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_Item", "(System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_Item", "(System.String,System.String)", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_LocalName", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_Name", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_NameTable", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_NamespaceURI", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_Prefix", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlReader", True, "get_SchemaInfo", "()", "", "Argument[this]", "ReturnValue", "value", "dfc-manual"]
+ - ["System.Xml", "XmlReader", True, "get_Value", "()", "", "Argument[this]", "ReturnValue", "taint", "df-manual"]
+ - ["System.Xml", "XmlTextReader", True, "GetNamespacesInScope", "(System.Xml.XmlNamespaceScope)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", True, "GetRemainder", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", True, "ReadBase64", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", True, "ReadBinHex", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", True, "ReadChars", "(System.Char[],System.Int32,System.Int32)", "", "Argument[this]", "Argument[0]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.IO.Stream)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.IO.Stream,System.Xml.XmlNameTable)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.IO.TextReader)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.IO.TextReader,System.Xml.XmlNameTable)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.String,System.IO.Stream)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.String,System.IO.Stream,System.Xml.XmlNameTable)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.String,System.IO.TextReader)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.String,System.IO.TextReader,System.Xml.XmlNameTable)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.String,System.Xml.XmlNameTable)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
+ - ["System.Xml", "XmlTextReader", False, "XmlTextReader", "(System.Xml.XmlNameTable)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
diff --git a/csharp/ql/lib/printAst.ql b/csharp/ql/lib/printAst.ql
index 380f4b4024b..85820796a88 100644
--- a/csharp/ql/lib/printAst.ql
+++ b/csharp/ql/lib/printAst.ql
@@ -18,8 +18,8 @@ external string selectedSourceFile();
class PrintAstConfigurationOverride extends PrintAstConfiguration {
/**
- * Holds if the location matches the selected file in the VS Code extension and
- * the element is `fromSource`.
+ * Holds if the location `l` matches the selected file in the VS Code extension and
+ * the element is `e` is `fromSource`.
*/
override predicate shouldPrint(Element e, Location l) {
super.shouldPrint(e, l) and
diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml
index f5ad09a43fa..d7b4d0f175c 100644
--- a/csharp/ql/lib/qlpack.yml
+++ b/csharp/ql/lib/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/csharp-all
-version: 5.2.3-dev
+version: 5.2.4-dev
groups: csharp
dbscheme: semmlecode.csharp.dbscheme
extractor: csharp
diff --git a/csharp/ql/lib/semmle/code/csharp/Assignable.qll b/csharp/ql/lib/semmle/code/csharp/Assignable.qll
index d4f8d9974f0..3c7170a6f84 100644
--- a/csharp/ql/lib/semmle/code/csharp/Assignable.qll
+++ b/csharp/ql/lib/semmle/code/csharp/Assignable.qll
@@ -583,7 +583,7 @@ module AssignableDefinitions {
}
/**
- * Holds if the `ref` assignment to `aa` via call `c` is uncertain.
+ * Holds if the `ref` assignment to `arg` via call `c` is uncertain.
*/
// Not in the cached module `Cached`, as that would introduce a dependency
// on the CFG construction, and effectively collapse too many stages into one
diff --git a/csharp/ql/lib/semmle/code/csharp/Caching.qll b/csharp/ql/lib/semmle/code/csharp/Caching.qll
index 6a58edef63f..4e34f5504dc 100644
--- a/csharp/ql/lib/semmle/code/csharp/Caching.qll
+++ b/csharp/ql/lib/semmle/code/csharp/Caching.qll
@@ -10,7 +10,6 @@ module Stages {
cached
module ControlFlowStage {
private import semmle.code.csharp.controlflow.internal.Splitting
- private import semmle.code.csharp.controlflow.internal.SuccessorType
private import semmle.code.csharp.controlflow.Guards as Guards
cached
@@ -20,8 +19,6 @@ module Stages {
private predicate forceCachingInSameStageRev() {
exists(Split s)
or
- exists(SuccessorType st)
- or
exists(ControlFlow::Node n)
or
Guards::Internal::isCustomNullCheck(_, _, _, _)
diff --git a/csharp/ql/lib/semmle/code/csharp/Callable.qll b/csharp/ql/lib/semmle/code/csharp/Callable.qll
index 6384f458276..7e17f853913 100644
--- a/csharp/ql/lib/semmle/code/csharp/Callable.qll
+++ b/csharp/ql/lib/semmle/code/csharp/Callable.qll
@@ -708,7 +708,7 @@ class TrueOperator extends UnaryOperator {
*
* Either an addition operator (`AddOperator`), a checked addition operator
* (`CheckedAddOperator`) a subtraction operator (`SubOperator`), a checked
- * substraction operator (`CheckedSubOperator`), a multiplication operator
+ * subtraction operator (`CheckedSubOperator`), a multiplication operator
* (`MulOperator`), a checked multiplication operator (`CheckedMulOperator`),
* a division operator (`DivOperator`), a checked division operator
* (`CheckedDivOperator`), a remainder operator (`RemOperator`), an and
diff --git a/csharp/ql/lib/semmle/code/csharp/Member.qll b/csharp/ql/lib/semmle/code/csharp/Member.qll
index 3427d4ea089..a196d3b3fc7 100644
--- a/csharp/ql/lib/semmle/code/csharp/Member.qll
+++ b/csharp/ql/lib/semmle/code/csharp/Member.qll
@@ -491,7 +491,7 @@ class Parameterizable extends Declaration, @parameterizable {
final Parameter getARawParameter() { result = this.getRawParameter(_) }
/**
- * Gets the type of the parameter, possibly prefixed
+ * Gets the type of the `i`th parameter, possibly prefixed
* with `out`, `ref`, or `params`, where appropriate.
*/
private string parameterTypeToString(int i) {
diff --git a/csharp/ql/lib/semmle/code/csharp/PrintAst.qll b/csharp/ql/lib/semmle/code/csharp/PrintAst.qll
index fd4bf1cb86b..1ac96c85e78 100644
--- a/csharp/ql/lib/semmle/code/csharp/PrintAst.qll
+++ b/csharp/ql/lib/semmle/code/csharp/PrintAst.qll
@@ -523,11 +523,9 @@ final class AttributeNode extends ElementNode {
* A node representing a `TypeParameter`.
*/
final class TypeParameterNode extends ElementNode {
- TypeParameter typeParameter;
-
TypeParameterNode() {
- typeParameter = element and
- not isNotNeeded(typeParameter.getDeclaringGeneric())
+ element =
+ any(TypeParameter typeParameter | not isNotNeeded(typeParameter.getDeclaringGeneric()))
}
override ElementNode getChild(int childIndex) { none() }
diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll
index 508ba0e5e87..ab2d9e0eef7 100644
--- a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll
+++ b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll
@@ -6,9 +6,7 @@ private import semmle.code.csharp.commons.StructuralComparison as StructuralComp
pragma[noinline]
private predicate isConstantCondition0(ControlFlow::Node cfn, boolean b) {
- exists(
- cfn.getASuccessorByType(any(ControlFlow::SuccessorTypes::BooleanSuccessor t | t.getValue() = b))
- ) and
+ exists(cfn.getASuccessorByType(any(ControlFlow::BooleanSuccessor t | t.getValue() = b))) and
strictcount(ControlFlow::SuccessorType t | exists(cfn.getASuccessorByType(t))) = 1
}
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll
index 9e548838ade..bf6a9772857 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/BasicBlocks.qll
@@ -3,9 +3,10 @@
*/
import csharp
-private import ControlFlow::SuccessorTypes
+private import ControlFlow
private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl as CfgImpl
private import CfgImpl::BasicBlocks as BasicBlocksImpl
+private import codeql.controlflow.BasicBlock as BB
/**
* A basic block, that is, a maximal straight-line sequence of control flow nodes
@@ -13,7 +14,12 @@ private import CfgImpl::BasicBlocks as BasicBlocksImpl
*/
final class BasicBlock extends BasicBlocksImpl::BasicBlock {
/** Gets an immediate successor of this basic block of a given type, if any. */
- BasicBlock getASuccessorByType(ControlFlow::SuccessorType t) { result = this.getASuccessor(t) }
+ BasicBlock getASuccessor(ControlFlow::SuccessorType t) { result = super.getASuccessor(t) }
+
+ /** DEPRECATED: Use `getASuccessor` instead. */
+ deprecated BasicBlock getASuccessorByType(ControlFlow::SuccessorType t) {
+ result = this.getASuccessor(t)
+ }
/** Gets an immediate predecessor of this basic block of a given type, if any. */
BasicBlock getAPredecessorByType(ControlFlow::SuccessorType t) {
@@ -58,6 +64,8 @@ final class BasicBlock extends BasicBlocksImpl::BasicBlock {
result.getFirstNode() = this.getLastNode().getAFalseSuccessor()
}
+ BasicBlock getASuccessor() { result = super.getASuccessor() }
+
/** Gets the control flow node at a specific (zero-indexed) position in this basic block. */
ControlFlow::Node getNode(int pos) { result = super.getNode(pos) }
@@ -330,3 +338,19 @@ final class ConditionBlock extends BasicBlock, BasicBlocksImpl::ConditionBasicBl
super.edgeDominates(controlled, s)
}
}
+
+private class BasicBlockAlias = BasicBlock;
+
+private class EntryBasicBlockAlias = EntryBasicBlock;
+
+module Cfg implements BB::CfgSig {
+ class ControlFlowNode = ControlFlow::Node;
+
+ class BasicBlock = BasicBlockAlias;
+
+ class EntryBasicBlock = EntryBasicBlockAlias;
+
+ predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) {
+ BasicBlocksImpl::dominatingEdge(bb1, bb2)
+ }
+}
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll
index 5649f43b881..f914b13e228 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowElement.qll
@@ -5,7 +5,6 @@ private import semmle.code.csharp.ExprOrStmtParent
private import semmle.code.csharp.commons.Compilation
private import ControlFlow
private import ControlFlow::BasicBlocks
-private import SuccessorTypes
private import semmle.code.csharp.Caching
private import internal.ControlFlowGraphImpl as Impl
@@ -90,7 +89,7 @@ class ControlFlowElement extends ExprOrStmtParent, @control_flow_element {
// all other nodes can use regular CFG dominance
this instanceof Impl::SplitAstNode and
cb.getLastNode() = this.getAControlFlowNode() and
- succ = cb.getASuccessorByType(s)
+ succ = cb.getASuccessor(s)
}
pragma[noinline]
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll
index 2334d240935..4b9d636824c 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/ControlFlowGraph.qll
@@ -6,7 +6,6 @@ import csharp
module ControlFlow {
private import semmle.code.csharp.controlflow.BasicBlocks as BBs
import semmle.code.csharp.controlflow.internal.SuccessorType
- private import SuccessorTypes
private import internal.ControlFlowGraphImpl as Impl
private import internal.Splitting as Splitting
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll
index 313fabc0235..82ab4b63812 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll
@@ -3,7 +3,7 @@
*/
import csharp
-private import ControlFlow::SuccessorTypes
+private import ControlFlow
private import semmle.code.csharp.commons.Assertions
private import semmle.code.csharp.commons.ComparisonTest
private import semmle.code.csharp.commons.StructuralComparison as SC
@@ -999,7 +999,7 @@ module Internal {
pragma[nomagic]
private predicate preControlsDirect(Guard g, PreBasicBlocks::PreBasicBlock bb, AbstractValue v) {
exists(PreBasicBlocks::ConditionBlock cb, ConditionalSuccessor s | cb.controls(bb, s) |
- v.branch(cb.getLastElement(), s, g)
+ v.branch(cb.getLastNode(), s, g)
)
}
@@ -1146,9 +1146,9 @@ module Internal {
/** Gets the successor block that is reached when guard `g` has abstract value `v`. */
private PreBasicBlocks::PreBasicBlock getConditionalSuccessor(Guard g, AbstractValue v) {
exists(PreBasicBlocks::ConditionBlock pred, ConditionalSuccessor s |
- v.branch(pred.getLastElement(), s, g)
+ v.branch(pred.getLastNode(), s, g)
|
- result = pred.getASuccessorByType(s)
+ result = pred.getASuccessor(s)
)
}
@@ -1424,6 +1424,7 @@ module Internal {
cached
predicate isGuard(Expr e, AbstractValue val) {
+ Stages::ControlFlowStage::forceCachingInSameStage() and
(
e.getType() instanceof BoolType and
not e instanceof BoolLiteral and
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll
index 6fed45cdf84..b1afbaed8ef 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Completion.qll
@@ -26,7 +26,6 @@ private import semmle.code.csharp.frameworks.System
private import ControlFlowGraphImpl
private import NonReturning
private import SuccessorType
-private import SuccessorTypes
private newtype TCompletion =
TSimpleCompletion() or
@@ -310,10 +309,8 @@ private class Overflowable extends UnaryOperation {
/** A control flow element that is inside a `try` block. */
private class TriedControlFlowElement extends ControlFlowElement {
- TryStmt try;
-
TriedControlFlowElement() {
- this = try.getATriedElement() and
+ this = any(TryStmt try).getATriedElement() and
not this instanceof NonReturningCall
}
@@ -575,7 +572,7 @@ abstract private class NonNestedNormalCompletion extends NormalCompletion { }
/** A simple (normal) completion. */
class SimpleCompletion extends NonNestedNormalCompletion, TSimpleCompletion {
- override NormalSuccessor getAMatchingSuccessorType() { any() }
+ override DirectSuccessor getAMatchingSuccessorType() { any() }
override string toString() { result = "normal" }
}
@@ -859,7 +856,7 @@ class GotoCompletion extends Completion {
/** Gets the label of the `goto` completion. */
string getLabel() { result = label }
- override GotoSuccessor getAMatchingSuccessorType() { result.getLabel() = label }
+ override GotoSuccessor getAMatchingSuccessorType() { any() }
override string toString() {
// `NestedCompletion` defines `toString()` for the other case
@@ -882,7 +879,7 @@ class ThrowCompletion extends Completion {
/** Gets the type of the exception being thrown. */
ExceptionClass getExceptionClass() { result = ec }
- override ExceptionSuccessor getAMatchingSuccessorType() { result.getExceptionClass() = ec }
+ override ExceptionSuccessor getAMatchingSuccessorType() { any() }
override string toString() {
// `NestedCompletion` defines `toString()` for the other case
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll
index 74cb070635b..5f62d6d21df 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll
@@ -79,23 +79,10 @@ private module CfgInput implements CfgShared::InputSig {
Impl::scopeLast(scope, last, c)
}
- class SuccessorType = ST::SuccessorType;
+ private class SuccessorType = ST::SuccessorType;
SuccessorType getAMatchingSuccessorType(Completion c) { result = c.getAMatchingSuccessorType() }
- predicate successorTypeIsSimple(SuccessorType t) {
- t instanceof ST::SuccessorTypes::NormalSuccessor
- }
-
- predicate successorTypeIsCondition(SuccessorType t) {
- t instanceof ST::SuccessorTypes::ConditionalSuccessor
- }
-
- predicate isAbnormalExitType(SuccessorType t) {
- t instanceof ST::SuccessorTypes::ExceptionSuccessor or
- t instanceof ST::SuccessorTypes::ExitSuccessor
- }
-
int idOfAstNode(AstNode node) { result = node.getId() }
int idOfCfgScope(CfgScope node) { result = idOfAstNode(node) }
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll
index 08debc21c0d..38eca378edf 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreBasicBlocks.qll
@@ -13,6 +13,7 @@ import csharp
private import Completion
private import ControlFlowGraphImpl
private import semmle.code.csharp.controlflow.ControlFlowGraph::ControlFlow as Cfg
+private import codeql.controlflow.BasicBlock as BB
private predicate startsBB(ControlFlowElement cfe) {
not succ(_, cfe, _) and
@@ -55,24 +56,34 @@ private predicate bbIDominates(PreBasicBlock dom, PreBasicBlock bb) =
class PreBasicBlock extends ControlFlowElement {
PreBasicBlock() { startsBB(this) }
- PreBasicBlock getASuccessorByType(Cfg::SuccessorType t) {
- succ(this.getLastElement(), result, any(Completion c | t = c.getAMatchingSuccessorType()))
+ PreBasicBlock getASuccessor(Cfg::SuccessorType t) {
+ succ(this.getLastNode(), result, any(Completion c | t = c.getAMatchingSuccessorType()))
}
- PreBasicBlock getASuccessor() { result = this.getASuccessorByType(_) }
+ deprecated PreBasicBlock getASuccessorByType(Cfg::SuccessorType t) {
+ result = this.getASuccessor(t)
+ }
+
+ PreBasicBlock getASuccessor() { result = this.getASuccessor(_) }
PreBasicBlock getAPredecessor() { result.getASuccessor() = this }
- ControlFlowElement getElement(int pos) { bbIndex(this, result, pos) }
+ ControlFlowElement getNode(int pos) { bbIndex(this, result, pos) }
- ControlFlowElement getAnElement() { result = this.getElement(_) }
+ deprecated ControlFlowElement getElement(int pos) { result = this.getNode(pos) }
+
+ ControlFlowElement getAnElement() { result = this.getNode(_) }
ControlFlowElement getFirstElement() { result = this }
- ControlFlowElement getLastElement() { result = this.getElement(this.length() - 1) }
+ ControlFlowElement getLastNode() { result = this.getNode(this.length() - 1) }
+
+ deprecated ControlFlowElement getLastElement() { result = this.getLastNode() }
int length() { result = strictcount(this.getAnElement()) }
+ PreBasicBlock getImmediateDominator() { bbIDominates(result, this) }
+
predicate immediatelyDominates(PreBasicBlock bb) { bbIDominates(this, bb) }
pragma[inline]
@@ -84,45 +95,81 @@ class PreBasicBlock extends ControlFlowElement {
or
this.strictlyDominates(bb)
}
+
+ predicate inDominanceFrontier(PreBasicBlock df) {
+ this = df.getAPredecessor() and not bbIDominates(this, df)
+ or
+ exists(PreBasicBlock prev | prev.inDominanceFrontier(df) |
+ bbIDominates(this, prev) and
+ not bbIDominates(this, df)
+ )
+ }
+
+ /** Unsupported. Do not use. */
+ predicate strictlyPostDominates(PreBasicBlock bb) { none() }
+
+ /** Unsupported. Do not use. */
+ predicate postDominates(PreBasicBlock bb) {
+ this.strictlyPostDominates(bb) or
+ this = bb
+ }
}
private Completion getConditionalCompletion(ConditionalCompletion cc) {
result.getInnerCompletion() = cc
}
+pragma[nomagic]
+private predicate conditionBlockImmediatelyControls(
+ ConditionBlock cond, PreBasicBlock succ, ConditionalCompletion cc
+) {
+ exists(ControlFlowElement last, Completion c |
+ last = cond.getLastNode() and
+ c = getConditionalCompletion(cc) and
+ succ(last, succ, c) and
+ // In the pre-CFG, we need to account for case where one predecessor node has
+ // two edges to the same successor node. Assertion expressions are examples of
+ // such nodes.
+ not exists(Completion other |
+ succ(last, succ, other) and
+ other != c
+ ) and
+ forall(PreBasicBlock pred | pred = succ.getAPredecessor() and pred != cond |
+ succ.dominates(pred)
+ )
+ )
+}
+
class ConditionBlock extends PreBasicBlock {
ConditionBlock() {
exists(Completion c | c = getConditionalCompletion(_) |
- succ(this.getLastElement(), _, c)
+ succ(this.getLastNode(), _, c)
or
- scopeLast(_, this.getLastElement(), c)
+ scopeLast(_, this.getLastNode(), c)
)
}
pragma[nomagic]
- private predicate immediatelyControls(PreBasicBlock succ, ConditionalCompletion cc) {
- exists(ControlFlowElement last, Completion c |
- last = this.getLastElement() and
- c = getConditionalCompletion(cc) and
- succ(last, succ, c) and
- // In the pre-CFG, we need to account for case where one predecessor node has
- // two edges to the same successor node. Assertion expressions are examples of
- // such nodes.
- not exists(Completion other |
- succ(last, succ, other) and
- other != c
- ) and
- forall(PreBasicBlock pred | pred = succ.getAPredecessor() and pred != this |
- succ.dominates(pred)
- )
- )
- }
-
- pragma[nomagic]
- predicate controls(PreBasicBlock controlled, Cfg::SuccessorTypes::ConditionalSuccessor s) {
- exists(PreBasicBlock succ, ConditionalCompletion c | this.immediatelyControls(succ, c) |
+ predicate controls(PreBasicBlock controlled, Cfg::ConditionalSuccessor s) {
+ exists(PreBasicBlock succ, ConditionalCompletion c |
+ conditionBlockImmediatelyControls(this, succ, c)
+ |
succ.dominates(controlled) and
s = c.getAMatchingSuccessorType()
)
}
}
+
+module PreCfg implements BB::CfgSig {
+ class ControlFlowNode = ControlFlowElement;
+
+ class BasicBlock = PreBasicBlock;
+
+ class EntryBasicBlock extends BasicBlock {
+ EntryBasicBlock() { entryBB(this) }
+ }
+
+ predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) {
+ conditionBlockImmediatelyControls(bb1, bb2, _)
+ }
+}
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll
index 6507bbbe04b..4921e692623 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll
@@ -12,9 +12,9 @@ module PreSsa {
private import codeql.ssa.Ssa as SsaImplCommon
private predicate definitionAt(
- AssignableDefinition def, SsaInput::BasicBlock bb, int i, SsaInput::SourceVariable v
+ AssignableDefinition def, PreBasicBlocks::PreBasicBlock bb, int i, SsaInput::SourceVariable v
) {
- bb.getElement(i) = def.getExpr() and
+ bb.getNode(i) = def.getExpr() and
v = def.getTarget() and
// In cases like `(x, x) = (0, 1)`, we discard the first (dead) definition of `x`
not exists(TupleAssignmentDefinition first, TupleAssignmentDefinition second | first = def |
@@ -30,7 +30,9 @@ module PreSsa {
)
}
- predicate implicitEntryDef(Callable c, SsaInput::BasicBlock bb, SsaInput::SourceVariable v) {
+ predicate implicitEntryDef(
+ Callable c, PreBasicBlocks::PreBasicBlock bb, SsaInput::SourceVariable v
+ ) {
c = v.getACallable() and
scopeFirst(c, bb) and
(
@@ -79,19 +81,11 @@ module PreSsa {
}
}
- module SsaInput implements SsaImplCommon::InputSig {
- class BasicBlock extends PreBasicBlocks::PreBasicBlock {
- ControlFlowNode getNode(int i) { result = this.getElement(i) }
- }
+ module SsaInput implements SsaImplCommon::InputSig {
+ private import semmle.code.csharp.Caching
- class ControlFlowNode = ControlFlowElement;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { result.immediatelyDominates(bb) }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() }
-
- private class ExitBasicBlock extends BasicBlock {
- ExitBasicBlock() { scopeLast(_, this.getLastElement(), _) }
+ private class ExitBasicBlock extends PreBasicBlocks::PreBasicBlock {
+ ExitBasicBlock() { scopeLast(_, this.getLastNode(), _) }
}
pragma[noinline]
@@ -129,7 +123,10 @@ module PreSsa {
Callable getACallable() { result = c }
}
- predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableWrite(
+ PreBasicBlocks::PreBasicBlock bb, int i, SourceVariable v, boolean certain
+ ) {
+ Stages::ControlFlowStage::forceCachingInSameStage() and
exists(AssignableDefinition def |
definitionAt(def, bb, i, v) and
if def.getTargetAccess().isRefArgument() then certain = false else certain = true
@@ -140,9 +137,11 @@ module PreSsa {
certain = true
}
- predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableRead(
+ PreBasicBlocks::PreBasicBlock bb, int i, SourceVariable v, boolean certain
+ ) {
exists(AssignableRead read |
- read = bb.getElement(i) and
+ read = bb.getNode(i) and
read.getTarget() = v and
certain = true
)
@@ -157,27 +156,27 @@ module PreSsa {
}
}
- private module SsaImpl = SsaImplCommon::Make;
+ private module SsaImpl = SsaImplCommon::Make;
class Definition extends SsaImpl::Definition {
final AssignableRead getARead() {
- exists(SsaInput::BasicBlock bb, int i |
+ exists(PreBasicBlocks::PreBasicBlock bb, int i |
SsaImpl::ssaDefReachesRead(_, this, bb, i) and
- result = bb.getElement(i)
+ result = bb.getNode(i)
)
}
final AssignableDefinition getDefinition() {
- exists(SsaInput::BasicBlock bb, int i, SsaInput::SourceVariable v |
+ exists(PreBasicBlocks::PreBasicBlock bb, int i, SsaInput::SourceVariable v |
this.definesAt(v, bb, i) and
definitionAt(result, bb, i, v)
)
}
final AssignableRead getAFirstRead() {
- exists(SsaInput::BasicBlock bb, int i |
+ exists(PreBasicBlocks::PreBasicBlock bb, int i |
SsaImpl::firstUse(this, bb, i, true) and
- result = bb.getElement(i)
+ result = bb.getNode(i)
)
}
@@ -191,14 +190,14 @@ module PreSsa {
not result instanceof PhiNode
}
- final predicate isLiveAtEndOfBlock(SsaInput::BasicBlock bb) {
+ final predicate isLiveAtEndOfBlock(PreBasicBlocks::PreBasicBlock bb) {
SsaImpl::ssaDefReachesEndOfBlock(bb, this, _)
}
override Location getLocation() {
result = this.getDefinition().getLocation()
or
- exists(Callable c, SsaInput::BasicBlock bb, SsaInput::SourceVariable v |
+ exists(Callable c, PreBasicBlocks::PreBasicBlock bb, SsaInput::SourceVariable v |
this.definesAt(v, bb, -1) and
implicitEntryDef(c, bb, v) and
result = c.getLocation()
@@ -213,10 +212,10 @@ module PreSsa {
}
predicate adjacentReadPairSameVar(AssignableRead read1, AssignableRead read2) {
- exists(SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2 |
- read1 = bb1.getElement(i1) and
+ exists(PreBasicBlocks::PreBasicBlock bb1, int i1, PreBasicBlocks::PreBasicBlock bb2, int i2 |
+ read1 = bb1.getNode(i1) and
SsaImpl::adjacentUseUse(bb1, i1, bb2, i2, _, true) and
- read2 = bb2.getElement(i2)
+ read2 = bb2.getNode(i2)
)
}
}
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 b6efdfcf1ea..bcc4c48ec92 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll
@@ -471,7 +471,7 @@ module FinallySplitting {
* the `finally` block exits normally).
*/
class FinallySplitType extends Cfg::SuccessorType {
- FinallySplitType() { not this instanceof Cfg::SuccessorTypes::ConditionalSuccessor }
+ FinallySplitType() { not this instanceof Cfg::ConditionalSuccessor }
/** Holds if this split type matches entry into a `finally` block with completion `c`. */
predicate isSplitForEntryCompletion(Completion c) {
@@ -479,7 +479,7 @@ module FinallySplitting {
then
// If the entry into the `finally` block completes with any normal completion,
// it simply means normal execution after the `finally` block
- this instanceof Cfg::SuccessorTypes::NormalSuccessor
+ this instanceof Cfg::DirectSuccessor
else this = c.getAMatchingSuccessorType()
}
}
@@ -533,7 +533,7 @@ module FinallySplitting {
int getNestLevel() { result = nestLevel }
override string toString() {
- if type instanceof Cfg::SuccessorTypes::NormalSuccessor
+ if type instanceof Cfg::DirectSuccessor
then result = ""
else
if nestLevel > 0
@@ -617,14 +617,14 @@ module FinallySplitting {
or
not c instanceof NormalCompletion
or
- type instanceof Cfg::SuccessorTypes::NormalSuccessor
+ type instanceof Cfg::DirectSuccessor
)
else (
// Finally block can exit with completion `c` inherited from try/catch
// block: must match this split
inherited = true and
type = c.getAMatchingSuccessorType() and
- not type instanceof Cfg::SuccessorTypes::NormalSuccessor
+ not type instanceof Cfg::DirectSuccessor
)
)
or
@@ -657,7 +657,7 @@ module FinallySplitting {
exists(FinallySplit outer |
outer.getNestLevel() = super.getNestLevel() - 1 and
outer.(FinallySplitImpl).exit(pred, c, inherited) and
- super.getType() instanceof Cfg::SuccessorTypes::NormalSuccessor and
+ super.getType() instanceof Cfg::DirectSuccessor and
inherited = true
)
}
@@ -899,7 +899,7 @@ module BooleanSplitting {
/** Holds if control flow element `cfe` starts a split of this kind. */
predicate startsSplit(AstNode cfe) {
- this.correlatesConditions(any(ConditionBlock cb | cb.getLastElement() = cfe), _, _)
+ this.correlatesConditions(any(ConditionBlock cb | cb.getLastNode() = cfe), _, _)
}
/**
@@ -941,7 +941,7 @@ module BooleanSplitting {
/**
* Holds if condition `cb` is a read of the SSA variable in this split.
*/
- private predicate defCondition(ConditionBlock cb) { cb.getLastElement() = def.getARead() }
+ private predicate defCondition(ConditionBlock cb) { cb.getLastNode() = def.getARead() }
/**
* Holds if condition `cb` is a read of the SSA variable in this split,
@@ -950,7 +950,7 @@ module BooleanSplitting {
*/
private predicate defConditionReachableFromRead(ConditionBlock cb, AssignableRead read) {
this.defCondition(cb) and
- read = cb.getLastElement()
+ read = cb.getLastNode()
or
exists(AssignableRead mid | this.defConditionReachableFromRead(cb, mid) |
PreSsa::adjacentReadPairSameVar(read, mid) and
@@ -970,9 +970,9 @@ module BooleanSplitting {
override predicate correlatesConditions(ConditionBlock cb1, ConditionBlock cb2, boolean inverted) {
this.firstDefCondition(cb1) and
exists(AssignableRead read1, AssignableRead read2 |
- read1 = cb1.getLastElement() and
+ read1 = cb1.getLastNode() and
PreSsa::adjacentReadPairSameVar+(read1, read2) and
- read2 = cb2.getLastElement() and
+ read2 = cb2.getLastNode() and
inverted = false
)
}
@@ -1088,7 +1088,7 @@ module BooleanSplitting {
*/
private predicate appliesToBlock(PreBasicBlock bb, Completion c) {
this.appliesTo(bb) and
- exists(AstNode last | last = bb.getLastElement() |
+ 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) |
@@ -1102,7 +1102,7 @@ module BooleanSplitting {
override predicate hasExit(AstNode pred, AstNode succ, Completion c) {
exists(PreBasicBlock bb | this.appliesToBlock(bb, c) |
- pred = bb.getLastElement() and
+ 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)
@@ -1111,7 +1111,7 @@ module BooleanSplitting {
override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) {
exists(PreBasicBlock bb | this.appliesToBlock(bb, c) |
- last = bb.getLastElement() and
+ last = bb.getLastNode() and
scopeLast(scope, last, c)
)
}
@@ -1121,7 +1121,7 @@ module BooleanSplitting {
pred = bb.getAnElement() and
this.appliesSucc(pred, succ, c) and
(
- pred = bb.getLastElement()
+ pred = bb.getLastNode()
implies
(
// We must still be able to reach a correlated condition to stay in this split
diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll
index d6ea2161bbb..c0dae26b30e 100644
--- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll
+++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/SuccessorType.qll
@@ -4,329 +4,4 @@
* Provides different types of control flow successor types.
*/
-import csharp
-private import Completion
-private import semmle.code.csharp.Caching
-
-cached
-private newtype TSuccessorType =
- TSuccessorSuccessor() { Stages::ControlFlowStage::forceCachingInSameStage() } or
- TBooleanSuccessor(boolean b) { b = true or b = false } or
- TNullnessSuccessor(boolean isNull) { isNull = true or isNull = false } or
- TMatchingSuccessor(boolean isMatch) { isMatch = true or isMatch = false } or
- TEmptinessSuccessor(boolean isEmpty) { isEmpty = true or isEmpty = false } or
- TReturnSuccessor() or
- TBreakSuccessor() or
- TContinueSuccessor() or
- TGotoSuccessor(string label) { label = any(GotoStmt gs).getLabel() } or
- TExceptionSuccessor(ExceptionClass ec) { exists(ThrowCompletion c | c.getExceptionClass() = ec) } or
- TExitSuccessor()
-
-/** The type of a control flow successor. */
-class SuccessorType extends TSuccessorType {
- /** Gets a textual representation of successor type. */
- string toString() { none() }
-}
-
-/** Provides different types of control flow successor types. */
-module SuccessorTypes {
- /** A normal control flow successor. */
- class NormalSuccessor extends SuccessorType, TSuccessorSuccessor {
- override string toString() { result = "successor" }
- }
-
- /**
- * A conditional control flow successor. Either a Boolean successor (`BooleanSuccessor`),
- * a nullness successor (`NullnessSuccessor`), a matching successor (`MatchingSuccessor`),
- * or an emptiness successor (`EmptinessSuccessor`).
- */
- abstract class ConditionalSuccessor extends SuccessorType {
- /** Gets the Boolean value of this successor. */
- abstract boolean getValue();
- }
-
- /**
- * A Boolean control flow successor.
- *
- * For example, this program fragment:
- *
- * ```csharp
- * if (x < 0)
- * return 0;
- * else
- * return 1;
- * ```
- *
- * has a control flow graph containing Boolean successors:
- *
- * ```
- * if
- * |
- * x < 0
- * / \
- * / \
- * / \
- * true false
- * | \
- * return 0 return 1
- * ```
- */
- class BooleanSuccessor extends ConditionalSuccessor, TBooleanSuccessor {
- override boolean getValue() { this = TBooleanSuccessor(result) }
-
- override string toString() { result = this.getValue().toString() }
- }
-
- /**
- * A nullness control flow successor.
- *
- * For example, this program fragment:
- *
- * ```csharp
- * int? M(string s) => s?.Length;
- * ```
- *
- * has a control flow graph containing nullness successors:
- *
- * ```
- * enter M
- * |
- * s
- * / \
- * / \
- * / \
- * null non-null
- * \ |
- * \ Length
- * \ /
- * \ /
- * exit M
- * ```
- */
- class NullnessSuccessor extends ConditionalSuccessor, TNullnessSuccessor {
- /** Holds if this is a `null` successor. */
- predicate isNull() { this = TNullnessSuccessor(true) }
-
- override boolean getValue() { this = TNullnessSuccessor(result) }
-
- override string toString() { if this.isNull() then result = "null" else result = "non-null" }
- }
-
- /**
- * A matching control flow successor.
- *
- * For example, this program fragment:
- *
- * ```csharp
- * switch (x) {
- * case 0 :
- * return 0;
- * default :
- * return 1;
- * }
- * ```
- *
- * has a control flow graph containing matching successors:
- *
- * ```
- * switch
- * |
- * x
- * |
- * case 0
- * / \
- * / \
- * / \
- * match no-match
- * | \
- * return 0 default
- * |
- * return 1
- * ```
- */
- class MatchingSuccessor extends ConditionalSuccessor, TMatchingSuccessor {
- /** Holds if this is a match successor. */
- predicate isMatch() { this = TMatchingSuccessor(true) }
-
- override boolean getValue() { this = TMatchingSuccessor(result) }
-
- override string toString() { if this.isMatch() then result = "match" else result = "no-match" }
- }
-
- /**
- * An emptiness control flow successor.
- *
- * For example, this program fragment:
- *
- * ```csharp
- * foreach (var arg in args)
- * {
- * yield return arg;
- * }
- * yield return "";
- * ```
- *
- * has a control flow graph containing emptiness successors:
- *
- * ```
- * args
- * |
- * foreach------<-------
- * / \ \
- * / \ |
- * / \ |
- * / \ |
- * empty non-empty |
- * | \ |
- * yield return "" \ |
- * var arg |
- * | |
- * yield return arg |
- * \_________/
- * ```
- */
- class EmptinessSuccessor extends ConditionalSuccessor, TEmptinessSuccessor {
- /** Holds if this is an empty successor. */
- predicate isEmpty() { this = TEmptinessSuccessor(true) }
-
- override boolean getValue() { this = TEmptinessSuccessor(result) }
-
- override string toString() { if this.isEmpty() then result = "empty" else result = "non-empty" }
- }
-
- /**
- * A `return` control flow successor.
- *
- * Example:
- *
- * ```csharp
- * void M()
- * {
- * return;
- * }
- * ```
- *
- * The callable exit node of `M` is a `return` successor of the `return;`
- * statement.
- */
- class ReturnSuccessor extends SuccessorType, TReturnSuccessor {
- override string toString() { result = "return" }
- }
-
- /**
- * A `break` control flow successor.
- *
- * Example:
- *
- * ```csharp
- * int M(int x)
- * {
- * while (true)
- * {
- * if (x++ > 10)
- * break;
- * }
- * return x;
- * }
- * ```
- *
- * The node `return x;` is a `break` successor of the node `break;`.
- */
- class BreakSuccessor extends SuccessorType, TBreakSuccessor {
- override string toString() { result = "break" }
- }
-
- /**
- * A `continue` control flow successor.
- *
- * Example:
- *
- * ```csharp
- * int M(int x)
- * {
- * while (true) {
- * if (x++ < 10)
- * continue;
- * }
- * return x;
- * }
- * ```
- *
- * The node `while (true) { ... }` is a `continue` successor of the node
- * `continue;`.
- */
- class ContinueSuccessor extends SuccessorType, TContinueSuccessor {
- override string toString() { result = "continue" }
- }
-
- /**
- * A `goto` control flow successor.
- *
- * Example:
- *
- * ```csharp
- * int M(int x)
- * {
- * while (true)
- * {
- * if (x++ > 10)
- * goto Return;
- * }
- * Return: return x;
- * }
- * ```
- *
- * The node `Return: return x` is a `goto label` successor of the node
- * `goto Return;`.
- */
- class GotoSuccessor extends SuccessorType, TGotoSuccessor {
- /** Gets the `goto` label. */
- string getLabel() { this = TGotoSuccessor(result) }
-
- override string toString() { result = "goto(" + this.getLabel() + ")" }
- }
-
- /**
- * An exceptional control flow successor.
- *
- * Example:
- *
- * ```csharp
- * int M(string s)
- * {
- * if (s == null)
- * throw new ArgumentNullException(nameof(s));
- * return s.Length;
- * }
- * ```
- *
- * The callable exit node of `M` is an exceptional successor (of type
- * `ArgumentNullException`) of the node `throw new ArgumentNullException(nameof(s));`.
- */
- class ExceptionSuccessor extends SuccessorType, TExceptionSuccessor {
- /** Gets the type of exception. */
- ExceptionClass getExceptionClass() { this = TExceptionSuccessor(result) }
-
- override string toString() { result = "exception(" + this.getExceptionClass().getName() + ")" }
- }
-
- /**
- * An exit control flow successor.
- *
- * Example:
- *
- * ```csharp
- * int M(string s)
- * {
- * if (s == null)
- * System.Environment.Exit(0);
- * return s.Length;
- * }
- * ```
- *
- * The callable exit node of `M` is an exit successor of the node on line 4.
- */
- class ExitSuccessor extends SuccessorType, TExitSuccessor {
- override string toString() { result = "exit" }
- }
-}
+import codeql.controlflow.SuccessorType
diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll
index 7e8ed0aadc0..3723dcaec12 100644
--- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll
+++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll
@@ -151,9 +151,7 @@ private predicate exprImpliesSsaDef(
* If the returned element takes the `s` branch, then `def` is guaranteed to be
* `null` if `nv.isNull()` holds, and non-`null` otherwise.
*/
-private ControlFlowElement getANullCheck(
- Ssa::Definition def, SuccessorTypes::ConditionalSuccessor s, NullValue nv
-) {
+private ControlFlowElement getANullCheck(Ssa::Definition def, ConditionalSuccessor s, NullValue nv) {
exists(Expr e, G::AbstractValue v | v.branch(result, s, e) | exprImpliesSsaDef(e, v, def, nv))
}
@@ -294,10 +292,10 @@ private predicate defNullImpliesStep(
bb2 = phi.getBasicBlock()
)
) and
- not exists(SuccessorTypes::ConditionalSuccessor s, NullValue nv |
+ not exists(ConditionalSuccessor s, NullValue nv |
bb1.getLastNode() = getANullCheck(def1, s, nv).getAControlFlowNode()
|
- bb2 = bb1.getASuccessorByType(s) and
+ bb2 = bb1.getASuccessor(s) and
nv.isNonNull()
)
}
diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll
index f17317af83b..4c9f64de4b9 100644
--- a/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll
+++ b/csharp/ql/lib/semmle/code/csharp/dataflow/SSA.qll
@@ -451,10 +451,9 @@ module Ssa {
* An SSA definition that corresponds to an explicit assignable definition.
*/
class ExplicitDefinition extends Definition, SsaImpl::WriteDefinition {
- SourceVariable sv;
AssignableDefinition ad;
- ExplicitDefinition() { SsaImpl::explicitDefinition(this, sv, ad) }
+ ExplicitDefinition() { SsaImpl::explicitDefinition(this, _, ad) }
/**
* Gets an underlying assignable definition. The result is always unique,
diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll
index ec1b5a0188e..747cf790d91 100644
--- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll
+++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll
@@ -5,6 +5,7 @@ import csharp
*/
module BaseSsa {
private import AssignableDefinitions
+ private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks
private import codeql.ssa.Ssa as SsaImplCommon
/**
@@ -27,7 +28,7 @@ module BaseSsa {
private predicate implicitEntryDef(
Callable c, ControlFlow::BasicBlocks::EntryBlock bb, SsaInput::SourceVariable v
) {
- exists(ControlFlow::ControlFlow::BasicBlocks::EntryBlock entry |
+ exists(ControlFlow::BasicBlocks::EntryBlock entry |
c = entry.getCallable() and
// In case `c` has multiple bodies, we want each body to get its own implicit
// entry definition. In case `c` doesn't have multiple bodies, the line below
@@ -42,22 +43,12 @@ module BaseSsa {
)
}
- private module SsaInput implements SsaImplCommon::InputSig {
+ private module SsaInput implements SsaImplCommon::InputSig {
private import semmle.code.csharp.controlflow.internal.PreSsa
- class BasicBlock = ControlFlow::BasicBlock;
-
- class ControlFlowNode = ControlFlow::Node;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) {
- result = bb.getImmediateDominator()
- }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() }
-
class SourceVariable = PreSsa::SimpleLocalScopeVariable;
- predicate variableWrite(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableWrite(ControlFlow::BasicBlock bb, int i, SourceVariable v, boolean certain) {
exists(AssignableDefinition def |
definitionAt(def, bb, i, v) and
if def.isCertain() then certain = true else certain = false
@@ -68,7 +59,7 @@ module BaseSsa {
certain = true
}
- predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain) {
+ predicate variableRead(ControlFlow::BasicBlock bb, int i, SourceVariable v, boolean certain) {
exists(AssignableRead read |
read.getAControlFlowNode() = bb.getNode(i) and
read.getTarget() = v and
@@ -77,7 +68,7 @@ module BaseSsa {
}
}
- private module SsaImpl = SsaImplCommon::Make;
+ private module SsaImpl = SsaImplCommon::Make;
class Definition extends SsaImpl::Definition {
final AssignableRead getARead() {
@@ -114,7 +105,7 @@ module BaseSsa {
override Location getLocation() {
result = this.getDefinition().getLocation()
or
- exists(Callable c, SsaInput::BasicBlock bb, SsaInput::SourceVariable v |
+ exists(Callable c, ControlFlow::BasicBlock bb, SsaInput::SourceVariable v |
this.definesAt(v, bb, -1) and
implicitEntryDef(c, bb, v) and
result = c.getLocation()
diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll
index ff2bf709251..62ac89faef8 100644
--- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll
+++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll
@@ -264,6 +264,7 @@ predicate hasNodePath(ControlFlowReachabilityConfiguration conf, ExprNode n1, No
/** Provides logic related to captured variables. */
module VariableCapture {
private import codeql.dataflow.VariableCapture as Shared
+ private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks
private predicate closureFlowStep(ControlFlow::Nodes::ExprNode e1, ControlFlow::Nodes::ExprNode e2) {
e1 = LocalFlow::getALastEvalNode(e2)
@@ -275,24 +276,15 @@ module VariableCapture {
)
}
- private module CaptureInput implements Shared::InputSig {
+ private module CaptureInput implements Shared::InputSig {
private import csharp as Cs
private import semmle.code.csharp.controlflow.ControlFlowGraph as Cfg
- private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks
private import TaintTrackingPrivate as TaintTrackingPrivate
- class BasicBlock extends BasicBlocks::BasicBlock {
- Callable getEnclosingCallable() { result = super.getCallable() }
+ Callable basicBlockGetEnclosingCallable(BasicBlocks::BasicBlock bb) {
+ result = bb.getCallable()
}
- class ControlFlowNode = Cfg::ControlFlow::Node;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) {
- result = bb.getImmediateDominator()
- }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() }
-
private predicate thisAccess(ControlFlow::Node cfn, InstanceCallable c) {
ThisFlow::thisAccessExpr(cfn.getAstNode()) and
cfn.getEnclosingCallable().getEnclosingCallable*() = c
@@ -359,7 +351,7 @@ module VariableCapture {
}
class Expr extends ControlFlow::Node {
- predicate hasCfgNode(BasicBlock bb, int i) { this = bb.getNode(i) }
+ predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { this = bb.getNode(i) }
}
class VariableWrite extends Expr {
@@ -411,7 +403,7 @@ module VariableCapture {
class ClosureExpr = CaptureInput::ClosureExpr;
- module Flow = Shared::Flow;
+ module Flow = Shared::Flow;
private Flow::ClosureNode asClosureNode(Node n) {
result = n.(CaptureNode).getSynthesizedCaptureNode()
@@ -2591,9 +2583,7 @@ class NodeRegion instanceof ControlFlow::BasicBlock {
* Holds if the nodes in `nr` are unreachable when the call context is `call`.
*/
predicate isUnreachableInCall(NodeRegion nr, DataFlowCall call) {
- exists(
- ExplicitParameterNode paramNode, Guard guard, ControlFlow::SuccessorTypes::BooleanSuccessor bs
- |
+ exists(ExplicitParameterNode paramNode, Guard guard, ControlFlow::BooleanSuccessor bs |
viableConstantBooleanParamArg(paramNode, bs.getValue().booleanNot(), call) and
paramNode.getSsaDefinition().getARead() = guard and
guard.controlsBlock(nr, bs, _)
diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll
index d1490c84916..1b703d70dbd 100644
--- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll
+++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll
@@ -6,17 +6,10 @@ import csharp
private import codeql.ssa.Ssa as SsaImplCommon
private import AssignableDefinitions
private import semmle.code.csharp.controlflow.internal.PreSsa
+private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks
private import semmle.code.csharp.controlflow.Guards as Guards
-private module SsaInput implements SsaImplCommon::InputSig {
- class BasicBlock = ControlFlow::BasicBlock;
-
- class ControlFlowNode = ControlFlow::Node;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { result = bb.getImmediateDominator() }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() }
-
+private module SsaInput implements SsaImplCommon::InputSig {
class SourceVariable = Ssa::SourceVariable;
/**
@@ -25,7 +18,7 @@ private module SsaInput implements SsaImplCommon::InputSig {
*
* This includes implicit writes via calls.
*/
- predicate variableWrite(BasicBlock bb, int i, Ssa::SourceVariable v, boolean certain) {
+ predicate variableWrite(ControlFlow::BasicBlock bb, int i, Ssa::SourceVariable v, boolean certain) {
variableWriteDirect(bb, i, v, certain)
or
variableWriteQualifier(bb, i, v, certain)
@@ -39,7 +32,7 @@ private module SsaInput implements SsaImplCommon::InputSig {
*
* This includes implicit reads via calls.
*/
- predicate variableRead(BasicBlock bb, int i, Ssa::SourceVariable v, boolean certain) {
+ predicate variableRead(ControlFlow::BasicBlock bb, int i, Ssa::SourceVariable v, boolean certain) {
variableReadActual(bb, i, v) and
certain = true
or
@@ -48,7 +41,7 @@ private module SsaInput implements SsaImplCommon::InputSig {
}
}
-import SsaImplCommon::Make as Impl
+import SsaImplCommon::Make as Impl
class Definition = Impl::Definition;
@@ -150,7 +143,7 @@ private module SourceVariableImpl {
}
/**
- * Gets an `out`/`ref` definition of the same source variable as the `out`/`ref`
+ * Gets an `out`/`ref` definition of the same source variable `v` as the `out`/`ref`
* definition `def`, belonging to the same call, at a position after `def`.
*/
OutRefDefinition getASameOutRefDefAfter(Ssa::SourceVariable v, OutRefDefinition def) {
@@ -729,7 +722,7 @@ private predicate variableReadPseudo(ControlFlow::BasicBlock bb, int i, Ssa::Sou
pragma[noinline]
deprecated private predicate adjacentDefRead(
- Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2,
+ Definition def, ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2,
SsaInput::SourceVariable v
) {
Impl::adjacentDefRead(def, bb1, i1, bb2, i2) and
@@ -737,8 +730,8 @@ deprecated private predicate adjacentDefRead(
}
deprecated private predicate adjacentDefReachesRead(
- Definition def, SsaInput::SourceVariable v, SsaInput::BasicBlock bb1, int i1,
- SsaInput::BasicBlock bb2, int i2
+ Definition def, SsaInput::SourceVariable v, ControlFlow::BasicBlock bb1, int i1,
+ ControlFlow::BasicBlock bb2, int i2
) {
adjacentDefRead(def, bb1, i1, bb2, i2, v) and
(
@@ -747,7 +740,7 @@ deprecated private predicate adjacentDefReachesRead(
SsaInput::variableRead(bb1, i1, v, true)
)
or
- exists(SsaInput::BasicBlock bb3, int i3 |
+ exists(ControlFlow::BasicBlock bb3, int i3 |
adjacentDefReachesRead(def, v, bb1, i1, bb3, i3) and
SsaInput::variableRead(bb3, i3, _, false) and
Impl::adjacentDefRead(def, bb3, i3, bb2, i2)
@@ -755,7 +748,7 @@ deprecated private predicate adjacentDefReachesRead(
}
deprecated private predicate adjacentDefReachesUncertainRead(
- Definition def, SsaInput::BasicBlock bb1, int i1, SsaInput::BasicBlock bb2, int i2
+ Definition def, ControlFlow::BasicBlock bb1, int i1, ControlFlow::BasicBlock bb2, int i2
) {
exists(SsaInput::SourceVariable v |
adjacentDefReachesRead(def, v, bb1, i1, bb2, i2) and
@@ -766,12 +759,12 @@ deprecated private predicate adjacentDefReachesUncertainRead(
/** Same as `lastRefRedef`, but skips uncertain reads. */
pragma[nomagic]
deprecated private predicate lastRefSkipUncertainReads(
- Definition def, SsaInput::BasicBlock bb, int i
+ Definition def, ControlFlow::BasicBlock bb, int i
) {
Impl::lastRef(def, bb, i) and
not SsaInput::variableRead(bb, i, def.getSourceVariable(), false)
or
- exists(SsaInput::BasicBlock bb0, int i0 |
+ exists(ControlFlow::BasicBlock bb0, int i0 |
Impl::lastRef(def, bb0, i0) and
adjacentDefReachesUncertainRead(def, bb, i, bb0, i0)
)
@@ -825,8 +818,8 @@ private module Cached {
}
cached
- predicate implicitEntryDefinition(ControlFlow::ControlFlow::BasicBlock bb, Ssa::SourceVariable v) {
- exists(ControlFlow::ControlFlow::BasicBlocks::EntryBlock entry, Callable c |
+ predicate implicitEntryDefinition(ControlFlow::BasicBlock bb, Ssa::SourceVariable v) {
+ exists(ControlFlow::BasicBlocks::EntryBlock entry, Callable c |
c = entry.getCallable() and
// In case `c` has multiple bodies, we want each body to get its own implicit
// entry definition. In case `c` doesn't have multiple bodies, the line below
@@ -1052,9 +1045,9 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu
* from `bb1` to `bb2`.
*/
predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) {
- exists(ControlFlow::SuccessorTypes::ConditionalSuccessor s |
+ exists(ControlFlow::ConditionalSuccessor s |
this.getAControlFlowNode() = bb1.getLastNode() and
- bb2 = bb1.getASuccessorByType(s) and
+ bb2 = bb1.getASuccessor(s) and
s.getValue() = branch
)
}
@@ -1071,7 +1064,7 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu
/** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */
predicate guardDirectlyControlsBlock(Guard guard, ControlFlow::BasicBlock bb, GuardValue branch) {
- exists(ConditionBlock conditionBlock, ControlFlow::SuccessorTypes::ConditionalSuccessor s |
+ exists(ConditionBlock conditionBlock, ControlFlow::ConditionalSuccessor s |
guard.getAControlFlowNode() = conditionBlock.getLastNode() and
s.getValue() = branch and
conditionBlock.edgeDominates(bb, s)
diff --git a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll
index 7de6c30eb13..c61ad0f2a2a 100644
--- a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll
+++ b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll
@@ -270,6 +270,14 @@ private module Internal {
hasOverrider(t, c)
}
+ /**
+ * For `base` expressions, the extractor provides the type of the base
+ * class instead of the derived class; this predicate provides the latter.
+ */
+ private Type getBaseAdjustedType(BaseAccess base) {
+ result = base.getEnclosingCallable().getDeclaringType()
+ }
+
abstract private class DispatchOverridableCall extends DispatchCallImpl {
pragma[noinline]
OverridableCallable getAStaticTargetExt() {
@@ -360,7 +368,12 @@ private module Internal {
private predicate contextArgHasType(DispatchCall ctx, Type t, boolean isExact) {
exists(Expr arg, int i |
this.relevantContext(ctx, i) and
- t = getAPossibleType(arg, isExact)
+ (
+ t = getBaseAdjustedType(arg) and isExact = false
+ or
+ not exists(getBaseAdjustedType(arg)) and
+ t = getAPossibleType(arg, isExact)
+ )
|
ctx.getArgument(i) = arg
or
@@ -725,9 +738,7 @@ private module Internal {
Type getType(boolean isExact) {
result = this.getType() and
- if
- this instanceof ObjectCreation or
- this instanceof BaseAccess
+ if this instanceof ObjectCreation or this instanceof BaseAccess
then isExact = true
else isExact = false
}
diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll
index ee345780654..f2b46e4ebac 100644
--- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll
+++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/ConditionalBypassQuery.qll
@@ -74,7 +74,7 @@ class ReverseDnsSource extends Source {
pragma[noinline]
private predicate conditionControlsCall0(
- SensitiveExecutionMethodCall call, Expr e, ControlFlow::SuccessorTypes::BooleanSuccessor s
+ SensitiveExecutionMethodCall call, Expr e, ControlFlow::BooleanSuccessor s
) {
forex(BasicBlock bb | bb = call.getAControlFlowNode().getBasicBlock() | e.controlsBlock(bb, s, _))
}
@@ -82,9 +82,7 @@ private predicate conditionControlsCall0(
private predicate conditionControlsCall(
SensitiveExecutionMethodCall call, SensitiveExecutionMethod def, Expr e, boolean cond
) {
- exists(ControlFlow::SuccessorTypes::BooleanSuccessor s | cond = s.getValue() |
- conditionControlsCall0(call, e, s)
- ) and
+ exists(ControlFlow::BooleanSuccessor s | cond = s.getValue() | conditionControlsCall0(call, e, s)) and
def = call.getTarget().getUnboundDeclaration()
}
diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll
index 27f6ab6935f..5b2bd407a5c 100644
--- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll
+++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll
@@ -874,7 +874,7 @@ private predicate isStrongTypeFsPicklerCall(MethodCall mc, Method m) {
(
m instanceof FsPicklerSerializerClassDeserializeMethod or
m instanceof FsPicklerSerializerClassDeserializeSequenceMethod or
- m instanceof FsPicklerSerializerClasDeserializeSiftedMethod or
+ m instanceof FsPicklerSerializerClassDeserializeSiftedMethod or
m instanceof FsPicklerSerializerClassUnPickleMethod or
m instanceof FsPicklerSerializerClassUnPickleSiftedMethod or
m instanceof CsPicklerSerializerClassDeserializeMethod or
diff --git a/csharp/ql/lib/semmle/code/csharp/serialization/Deserializers.qll b/csharp/ql/lib/semmle/code/csharp/serialization/Deserializers.qll
index aeb34122284..f7c6ade96ea 100644
--- a/csharp/ql/lib/semmle/code/csharp/serialization/Deserializers.qll
+++ b/csharp/ql/lib/semmle/code/csharp/serialization/Deserializers.qll
@@ -560,9 +560,15 @@ class FsPicklerSerializerClassDeserializeSequenceMethod extends Method, UnsafeDe
}
}
+/**
+ * DEPRECATED: Use `FsPicklerSerializerClassDeserializeSiftedMethod` instead.
+ */
+deprecated class FsPicklerSerializerClasDeserializeSiftedMethod =
+ FsPicklerSerializerClassDeserializeSiftedMethod;
+
/** `MBrace.FsPickler.FsPicklerSerializer.DeserializeSifted` method */
-class FsPicklerSerializerClasDeserializeSiftedMethod extends Method, UnsafeDeserializer {
- FsPicklerSerializerClasDeserializeSiftedMethod() {
+class FsPicklerSerializerClassDeserializeSiftedMethod extends Method, UnsafeDeserializer {
+ FsPicklerSerializerClassDeserializeSiftedMethod() {
this.getDeclaringType().getBaseClass*() instanceof FsPicklerSerializerClass and
this.hasUndecoratedName("DeserializeSifted")
}
diff --git a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql
index 5ec702f77e0..eb71239e0fc 100644
--- a/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql
+++ b/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql
@@ -89,7 +89,7 @@ class ConstantNullnessCondition extends ConstantCondition {
ConstantNullnessCondition() {
forex(ControlFlow::Node cfn | cfn = this.getAControlFlowNode() |
- exists(ControlFlow::SuccessorTypes::NullnessSuccessor t, ControlFlow::Node s |
+ exists(ControlFlow::NullnessSuccessor t, ControlFlow::Node s |
s = cfn.getASuccessorByType(t)
|
b = t.getValue() and
@@ -112,7 +112,7 @@ class ConstantMatchingCondition extends ConstantCondition {
ConstantMatchingCondition() {
forex(ControlFlow::Node cfn | cfn = this.getAControlFlowNode() |
- exists(ControlFlow::SuccessorTypes::MatchingSuccessor t | exists(cfn.getASuccessorByType(t)) |
+ exists(ControlFlow::MatchingSuccessor t | exists(cfn.getASuccessorByType(t)) |
b = t.getValue()
) and
strictcount(ControlFlow::SuccessorType t | exists(cfn.getASuccessorByType(t))) = 1
diff --git a/csharp/ql/src/Bad Practices/Magic Constants/MagicConstants.qll b/csharp/ql/src/Bad Practices/Magic Constants/MagicConstants.qll
index 73b82c14700..8c3e0562d39 100644
--- a/csharp/ql/src/Bad Practices/Magic Constants/MagicConstants.qll
+++ b/csharp/ql/src/Bad Practices/Magic Constants/MagicConstants.qll
@@ -113,7 +113,7 @@ private predicate valueOccurrenceCount(string value, int n) {
n > 20
}
-private predicate occurenceCount(Literal lit, string value, int n) {
+private predicate occurrenceCount(Literal lit, string value, int n) {
valueOccurrenceCount(value, n) and
value = lit.getValue() and
relevantLiteral(lit, value)
@@ -127,7 +127,7 @@ private predicate check(Literal lit, string value, int n, File f) {
// Check that the literal is nontrivial
not trivial(lit) and
// Check that it is repeated a number of times
- occurenceCount(lit, value, n) and
+ occurrenceCount(lit, value, n) and
n > 20 and
f = lit.getFile()
}
diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md
index 2539f93099f..e1109181fca 100644
--- a/csharp/ql/src/CHANGELOG.md
+++ b/csharp/ql/src/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.3.4
+
+No user-facing changes.
+
## 1.3.3
No user-facing changes.
diff --git a/csharp/ql/src/Language Abuse/UselessUpcast.ql b/csharp/ql/src/Language Abuse/UselessUpcast.ql
index 827d16038b2..a06dc60cc7a 100644
--- a/csharp/ql/src/Language Abuse/UselessUpcast.ql
+++ b/csharp/ql/src/Language Abuse/UselessUpcast.ql
@@ -75,15 +75,16 @@ private class ConstructorCall extends Call {
/** An explicit upcast. */
class ExplicitUpcast extends ExplicitCast {
- ValueOrRefType src;
ValueOrRefType dest;
ExplicitUpcast() {
- src = this.getSourceType() and
- dest = this.getTargetType() and
- (src instanceof RefType or src instanceof Struct) and
- src.isImplicitlyConvertibleTo(dest) and
- src != dest // Handled by `cs/useless-cast-to-self`
+ exists(ValueOrRefType src |
+ src = this.getSourceType() and
+ dest = this.getTargetType() and
+ (src instanceof RefType or src instanceof Struct) and
+ src.isImplicitlyConvertibleTo(dest) and
+ src != dest // Handled by `cs/useless-cast-to-self`
+ )
}
pragma[nomagic]
diff --git a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql
index 5258d6a4cd2..c350c8f3755 100644
--- a/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql
+++ b/csharp/ql/src/Security Features/CWE-384/AbandonSession.ql
@@ -21,10 +21,10 @@ predicate loginMethod(Method m, ControlFlow::SuccessorType flowFrom) {
or
m = any(SystemWebSecurityFormsAuthenticationClass c).getAuthenticateMethod()
) and
- flowFrom.(ControlFlow::SuccessorTypes::BooleanSuccessor).getValue() = true
+ flowFrom.(ControlFlow::BooleanSuccessor).getValue() = true
or
m = any(SystemWebSecurityFormsAuthenticationClass c).getSignOutMethod() and
- flowFrom instanceof ControlFlow::SuccessorTypes::NormalSuccessor
+ flowFrom instanceof ControlFlow::DirectSuccessor
}
/** The `System.Web.SessionState.HttpSessionState` class. */
diff --git a/csharp/ql/src/Telemetry/DatabaseQuality.qll b/csharp/ql/src/Telemetry/DatabaseQuality.qll
index fa6c70dbc51..ca2ab3e7e16 100644
--- a/csharp/ql/src/Telemetry/DatabaseQuality.qll
+++ b/csharp/ql/src/Telemetry/DatabaseQuality.qll
@@ -12,7 +12,7 @@ module CallTargetStats implements StatsSig {
private predicate isNoSetterPropertyCallInConstructor(PropertyCall c) {
exists(Property p, Constructor ctor |
p = c.getProperty() and
- not exists(Setter a | a = p.getAnAccessor()) and
+ not p.getAnAccessor() instanceof Setter and
c.getEnclosingCallable() = ctor and
(
c.hasThisQualifier()
@@ -25,7 +25,7 @@ module CallTargetStats implements StatsSig {
private predicate isNoSetterPropertyInitialization(PropertyCall c) {
exists(Property p, AssignExpr assign |
p = c.getProperty() and
- not exists(Setter a | a = p.getAnAccessor()) and
+ not p.getAnAccessor() instanceof Setter and
assign = c.getParent() and
assign.getLValue() = c and
assign.getParent() instanceof Property
diff --git a/csharp/ql/src/change-notes/released/1.3.4.md b/csharp/ql/src/change-notes/released/1.3.4.md
new file mode 100644
index 00000000000..5073aca7222
--- /dev/null
+++ b/csharp/ql/src/change-notes/released/1.3.4.md
@@ -0,0 +1,3 @@
+## 1.3.4
+
+No user-facing changes.
diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml
index eb1f7dabc84..8263ddf2c8b 100644
--- a/csharp/ql/src/codeql-pack.release.yml
+++ b/csharp/ql/src/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 1.3.3
+lastReleaseVersion: 1.3.4
diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml
index 0567f720300..edb6f9dbe11 100644
--- a/csharp/ql/src/qlpack.yml
+++ b/csharp/ql/src/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/csharp-queries
-version: 1.3.4-dev
+version: 1.3.5-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 7d1d5bf5af2..0189d522a6c 100644
--- a/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected
+++ b/csharp/ql/test/library-tests/assignables/AssignableDefinitionNode.expected
@@ -81,7 +81,7 @@
| Discards.cs:25:22:25:22 | String _ | Discards.cs:25:22:25:22 | String _ |
| Finally.cs:7:13:7:17 | Int32 i = ... | Finally.cs:7:13:7:17 | Int32 i = ... |
| Finally.cs:15:13:15:17 | ... = ... | Finally.cs:15:13:15:17 | ... = ... |
-| Finally.cs:15:13:15:17 | ... = ... | Finally.cs:15:13:15:17 | [finally: exception(Exception)] ... = ... |
+| Finally.cs:15:13:15:17 | ... = ... | Finally.cs:15:13:15:17 | [finally: exception] ... = ... |
| Patterns.cs:7:16:7:23 | Object o = ... | Patterns.cs:7:16:7:23 | Object o = ... |
| Patterns.cs:8:18:8:23 | Int32 i1 | Patterns.cs:8:18:8:23 | Int32 i1 |
| Patterns.cs:12:23:12:31 | String s1 | Patterns.cs:12:23:12:31 | String s1 |
diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected
index 6177eb7e335..4f78a6f8303 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected
+++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected
@@ -435,33 +435,32 @@
| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | exit Finally | 5 |
| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:11:13:11:37 | call to method WriteLine | 7 |
| Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | 1 |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:7:10:7:11 | exit M1 (abnormal) | 5 |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:7:10:7:11 | exit M1 (abnormal) | 5 |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | exit M1 (normal) | 5 |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:23:13:23:37 | call to method WriteLine | 7 |
| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 | 1 |
-| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) | 1 |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) | 1 |
| Finally.cs:24:13:24:19 | return ...; | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | 5 |
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | 1 |
| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:48:26:51 | [exception: Exception] true | 2 |
-| Finally.cs:27:9:29:9 | {...} | Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | 6 |
+| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | 2 |
| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | 1 |
| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:34:21:34:24 | true | 6 |
-| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | 9 |
+| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:38:17:38:44 | [finally: exception] throw ...; | 5 |
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | 1 |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:50:13:50:40 | call to method WriteLine | 5 |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:19:10:19:11 | exit M2 (abnormal) | 5 |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:58:13:58:37 | call to method WriteLine | 7 |
| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 | 1 |
-| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) | 1 |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) | 1 |
| Finally.cs:59:13:59:19 | return ...; | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | 5 |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | 1 |
| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:48:61:51 | [exception: Exception] true | 2 |
-| Finally.cs:62:9:64:9 | {...} | Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | 6 |
+| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | 2 |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | 1 |
| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | 5 |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:70:13:70:40 | call to method WriteLine | 5 |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | 4 |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:54:10:54:11 | exit M3 (abnormal) | 5 |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:77:9:100:9 | while (...) ... | 6 |
| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 | 1 |
| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) | 1 |
@@ -482,12 +481,12 @@
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | 1 |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | 1 |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception | 1 |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | 4 |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | 4 |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | 4 |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | 4 |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:97:21:97:23 | [finally: break] ...-- | 4 |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | 4 |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | 4 |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:97:21:97:23 | [finally: continue] ...-- | 4 |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | 4 |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | 4 |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:97:21:97:23 | [finally: return] ...-- | 4 |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:23 | ...-- | 4 |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:107:17:107:21 | access to field Field | 7 |
@@ -500,75 +499,55 @@
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | access to field Field | 3 |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length | 1 |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | 2 |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | 8 |
+| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; | 1 |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | 1 |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | 7 |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | 7 |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:19:114:35 | [finally: exception] ... == ... | 7 |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:19:114:35 | ... == ... | 7 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | 1 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | 1 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | 1 |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | 1 |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:114:17:114:36 | [false, finally: return] !... | 1 |
| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... | 1 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | 1 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | 1 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | 1 |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | 1 |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:114:17:114:36 | [true, finally: return] !... | 1 |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... | 1 |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:40 | call to method WriteLine | 4 |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | 4 |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | 4 |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | 4 |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | 4 |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | 4 |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | 6 |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | 6 |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | 6 |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:17:116:32 | [finally: exception] ... > ... | 6 |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:17:116:32 | [finally: return] ... > ... | 6 |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:32 | ... > ... | 6 |
| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:36 | call to method WriteLine | 3 |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | 3 |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | 3 |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | 3 |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | 3 |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | 3 |
| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | exit M6 | 12 |
| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:137:13:137:36 | call to method WriteLine | 7 |
| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 | 2 |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | 4 |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:141:13:141:44 | [finally: exception] throw ...; | 4 |
| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:13:141:44 | throw ...; | 4 |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:151:17:151:28 | ... == ... | 8 |
| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 | 1 |
| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 (abnormal) | 1 |
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 (normal) | 1 |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | 7 |
+| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; | 1 |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | 1 |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | 6 |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:158:21:158:31 | [finally: exception] access to property Length | 6 |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:21:158:31 | access to property Length | 6 |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | 2 |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | 2 |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | 2 |
-| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | 1 |
-| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | 1 |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:21:158:36 | [finally: exception] ... == ... | 2 |
+| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | 1 |
| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; | 1 |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | 2 |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | 2 |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | 2 |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | 2 |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | 1 |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | 1 |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | 1 |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | 1 |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | 1 |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | 1 |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | 1 |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | 1 |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | 5 |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | 5 |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | 5 |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | 5 |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | 5 |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | 5 |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | 6 |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | 6 |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | 5 |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | 5 |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | 6 |
| Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | 6 |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | 5 |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | 5 |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | 5 |
| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:167:17:167:37 | call to method WriteLine | 5 |
| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA | 5 |
| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB | 5 |
@@ -577,89 +556,66 @@
| Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 | 1 |
| Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) | 1 |
| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) | 1 |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | 6 |
+| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | 1 |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | 1 |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | 5 |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | 5 |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | 5 |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | 2 |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 2 |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 2 |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 2 |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | 1 |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | 1 |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | 1 |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | 1 |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | 1 |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 1 |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 1 |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | 1 |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | 1 |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | 1 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | 1 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | 3 |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | 3 |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | 3 |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | 2 |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | 2 |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | 3 |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception] throw ...; | 2 |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:17:199:18 | access to parameter b1 | 6 |
| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 | 1 |
| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) | 1 |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | 6 |
+| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; | 1 |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA | 1 |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | 5 |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | 5 |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:21:205:22 | access to parameter b2 | 5 |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | 4 |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | 4 |
-| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | 4 |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | 1 |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | 1 |
+| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | 1 |
+| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; | 1 |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | 1 |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB | 1 |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | 3 |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | 3 |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | 3 |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | 3 |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | 3 |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | 3 |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | 3 |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | 3 |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:21:209:22 | access to parameter b3 | 3 |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | 2 |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | 2 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | 2 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | 2 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | 2 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | 2 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | 2 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | 2 |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | 2 |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | 2 |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception] throw ...; | 2 |
| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | 2 |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 9 |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | 4 |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | 4 |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:28 | [finally: exception] ... = ... | 4 |
| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:220:13:220:36 | call to method WriteLine | 7 |
| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:224:13:224:38 | call to method WriteLine | 5 |
| Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | exit M11 | 9 |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:239:21:239:22 | access to parameter b1 | 8 |
| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 | 1 |
-| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) | 1 |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | 6 |
+| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; | 1 |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA | 1 |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | 5 |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | 5 |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:246:25:246:26 | access to parameter b2 | 5 |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | 5 |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | 5 |
-| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | 5 |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | 1 |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | 1 |
+| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | 1 |
+| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; | 1 |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | 1 |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA | 1 |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | 4 |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | 4 |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | 4 |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | 4 |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | 4 |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | 4 |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | 4 |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | 4 |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine | 7 |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | 4 |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | 4 |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:233:10:233:12 | exit M12 (abnormal) | 5 |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | exit M12 (normal) | 8 |
| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:267:13:267:34 | call to method WriteLine | 7 |
| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | 1 |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:263:10:263:12 | exit M13 (abnormal) | 10 |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:263:10:263:12 | exit M13 (abnormal) | 10 |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | exit M13 (normal) | 10 |
| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | exit Foreach | 5 |
| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:8:29:8:32 | access to parameter args | 3 |
diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected
index a59100474ea..b4a4cbb6a15 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected
+++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected
@@ -1341,11 +1341,9 @@ conditionBlock
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | false |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | false |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} | false |
-| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | false |
| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:62:9:64:9 | {...} | true |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | true |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} | true |
-| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | true |
| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:66:9:67:9 | {...} | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:74:10:74:11 | exit M4 (abnormal) | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:78:9:100:9 | {...} | true |
@@ -1363,12 +1361,12 @@ conditionBlock
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | object creation of type Exception | true |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | true |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | true |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break] {...} | true |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue] {...} | true |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return] {...} | true |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | {...} | true |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:82:21:82:27 | return ...; | true |
@@ -1385,17 +1383,17 @@ conditionBlock
| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | false |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | false |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | false |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | false |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | false |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | false |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break] {...} | false |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | false |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | false |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} | false |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | true |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return] {...} | true |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | {...} | false |
| Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:25:93:46 | [finally: return] throw ...; | true |
| Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | true |
-| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | true |
| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return] {...} | false |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:84:21:84:29 | continue; | true |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... | false |
@@ -1407,15 +1405,15 @@ conditionBlock
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | false |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception | false |
-| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | false |
-| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | false |
+| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | false |
+| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | false |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} | false |
-| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | true |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue] {...} | true |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | {...} | false |
| Finally.cs:84:21:84:29 | continue; | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | true |
| Finally.cs:84:21:84:29 | continue; | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | true |
-| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | true |
| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue] {...} | false |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:86:21:86:26 | break; | true |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:89:13:99:13 | {...} | false |
@@ -1423,17 +1421,17 @@ conditionBlock
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:25:93:46 | throw ...; | false |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | true |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception | false |
-| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | false |
-| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | false |
+| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | true |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} | true |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | {...} | false |
| Finally.cs:86:21:86:26 | break; | Finally.cs:93:25:93:46 | [finally: break] throw ...; | true |
| Finally.cs:86:21:86:26 | break; | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | true |
-| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | true |
+| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | true |
| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break] {...} | false |
| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:25:93:46 | throw ...; | true |
| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception | true |
-| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | true |
+| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | true |
| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | {...} | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:108:17:108:23 | return ...; | true |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:109:13:110:49 | if (...) ... | false |
@@ -1442,20 +1440,15 @@ conditionBlock
| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:17:110:49 | throw ...; | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:113:9:118:9 | {...} | false |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: return] !... | true |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false] !... | false |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: return] !... | true |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true] !... | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | ...; | false |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: return] ...; | true |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | true |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | if (...) ... | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | ...; | false |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: return] ...; | true |
| Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:17:114:36 | [false, finally: return] !... | true |
| Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:17:114:36 | [true, finally: return] !... | false |
@@ -1463,228 +1456,149 @@ conditionBlock
| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:17:110:49 | throw ...; | true |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:113:9:118:9 | {...} | false |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false] !... | false |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | true |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true] !... | false |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | ...; | false |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | true |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | if (...) ... | false |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | ...; | false |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | false |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | true |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | false |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | false |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | true |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | false |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | false |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [false, finally: exception] !... | true |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [true, finally: exception] !... | false |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:115:17:115:41 | [finally: exception] ...; | false |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [false] !... | true |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [true] !... | false |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:115:17:115:41 | ...; | false |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | true |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | true |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | true |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | true |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | true |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | true |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | true |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:117:17:117:37 | [finally: return] ...; | true |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:117:17:117:37 | ...; | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (abnormal) | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (normal) | false |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:17:152:50 | throw ...; | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception] {...} | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | {...} | false |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | 1 | false |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception] 1 | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | throw ...; | false |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | "1" | false |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception] "1" | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | false |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | false |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | false |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | false |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception] {...} | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | {...} | false |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | true |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | true |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | true |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | catch {...} | false |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:21:159:45 | throw ...; | true |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:41:159:43 | "1" | true |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | true |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | true |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | true |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:41:159:43 | [finally: exception] "1" | true |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | true |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | true |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | true |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | true |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | true |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | true |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | true |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | exit M9 (normal) | false |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | false |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | false |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | false |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | false |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | false |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | false |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | false |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | true |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | true |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | true |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | true |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | true |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | true |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:21:199:43 | throw ...; | true |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | true |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception] {...} | true |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | {...} | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | true |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | true |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | throw ...; | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | true |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | false |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | true |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception] {...} | true |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | {...} | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | false |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | false |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | ...; | false |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | true |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | true |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | true |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | false |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | false |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | true |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | false |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | false |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception] ...; | true |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | true |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | true |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} | false |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | false |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; | false |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:25:205:47 | throw ...; | true |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true |
-| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | true |
+| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | true |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | {...} | false |
-| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
+| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | false |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:211:13:211:29 | ...; | false |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; | false |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:211:13:211:29 | ...; | false |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:21:240:43 | throw ...; | true |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | true |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception] {...} | true |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | {...} | false |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | true |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | true |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | true |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | throw ...; | false |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | false |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | false |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | true |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | true |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | false |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | true |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception] {...} | true |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | {...} | false |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | {...} | false |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | true |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | false |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | true |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | true |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | false |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | true |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | true |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} | false |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:25:247:47 | throw ...; | true |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true |
-| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | true |
+| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | true |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | {...} | false |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:257:9:259:9 | {...} | false |
| Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:6:10:6:11 | exit M1 (normal) | true |
@@ -2751,91 +2665,62 @@ conditionFlow
| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | false |
| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true |
| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} | false |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | false |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | false |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | false |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | false |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | false |
| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:116:13:117:37 | if (...) ... | false |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | true |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | true |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | true |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | true |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | true |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | false |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | true |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | false |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | true |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | false |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | true |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | false |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [false, finally: return] !... | true |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [true, finally: return] !... | false |
| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | false |
| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | true |
-| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | true |
-| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | true |
-| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | true |
| Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:117:17:117:37 | [finally: return] ...; | true |
| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true |
| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | false |
| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (normal) | false |
| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | true |
-| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true |
-| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true |
+| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:159:41:159:43 | [finally: exception] "1" | true |
| Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:162:13:164:13 | {...} | true |
| Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false |
| Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | {...} | true |
| Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false |
| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | true |
| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | false |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true |
| Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false |
-| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
+| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true |
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true |
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | false |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | false |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | false |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception] {...} | false |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | false |
-| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false |
+| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception] ...; | false |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | false |
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true |
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | false |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | false |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | false |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception] {...} | false |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | false |
| LoopUnrolling.cs:9:13:9:28 | ... == ... | LoopUnrolling.cs:10:13:10:19 | return ...; | true |
diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql
index 25de07e9d5b..61c80181924 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/Condition.ql
+++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.ql
@@ -4,8 +4,7 @@ import ControlFlow
query predicate conditionBlock(
BasicBlocks::ConditionBlock cb, BasicBlock controlled, boolean testIsTrue
) {
- cb.edgeDominates(controlled,
- any(SuccessorTypes::ConditionalSuccessor s | testIsTrue = s.getValue()))
+ cb.edgeDominates(controlled, any(ConditionalSuccessor s | testIsTrue = s.getValue()))
}
ControlFlow::Node successor(ControlFlow::Node node, boolean kind) {
diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected
index f0a0c6459cb..bc5082c4c18 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected
+++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected
@@ -1067,11 +1067,11 @@ dominance
| CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
| CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:31:9:34:9 | {...} |
| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; |
-| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} |
-| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; |
-| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: |
-| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" |
-| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine |
+| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} |
+| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; |
+| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: |
+| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" |
+| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine |
| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:14:40:38 | ...; |
| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) |
| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" |
@@ -1741,18 +1741,18 @@ dominance
| Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... |
| Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:10:9:12:9 | {...} |
| Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:38 | ...; |
-| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception] {...} |
| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} |
| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:31:11:36 | "Try1" |
| Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:37 | call to method WriteLine |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:15:13:15:41 | [finally: exception] ...; |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:15:13:15:41 | ...; |
-| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) |
+| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) |
| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (normal) |
| Finally.cs:15:13:15:41 | ...; | Finally.cs:15:31:15:39 | "Finally" |
-| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" |
+| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:15:31:15:39 | [finally: exception] "Finally" |
| Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:40 | call to method WriteLine |
-| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine |
+| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:20:5:52:5 | {...} |
| Finally.cs:20:5:52:5 | {...} | Finally.cs:21:9:51:9 | try {...} ... |
| Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:22:9:25:9 | {...} |
@@ -1767,7 +1767,6 @@ dominance
| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:48:26:51 | [exception: Exception] true |
| Finally.cs:26:48:26:51 | [exception: Exception] true | Finally.cs:27:9:29:9 | {...} |
| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; |
-| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} |
| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex |
| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:31:9:40:9 | {...} |
@@ -1776,24 +1775,21 @@ dominance
| Finally.cs:33:13:35:13 | {...} | Finally.cs:34:17:34:32 | if (...) ... |
| Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:34:21:34:24 | true |
| Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; |
-| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} |
-| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" |
-| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; |
-| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception |
+| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception] {...} |
+| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:38:37:38:42 | [finally: exception] "Boo!" |
+| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception] throw ...; |
+| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception |
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:49:9:51:9 | {...} |
-| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:50:13:50:41 | [finally: exception] ...; |
| Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:50:13:50:41 | [finally: return] ...; |
| Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:41 | ...; |
+| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) |
| Finally.cs:50:13:50:41 | ...; | Finally.cs:50:31:50:39 | "Finally" |
-| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" |
-| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" |
+| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:50:31:50:39 | [finally: exception] "Finally" |
| Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:50:31:50:39 | [finally: return] "Finally" |
| Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:40 | call to method WriteLine |
-| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine |
-| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine |
+| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine |
| Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:55:5:72:5 | {...} |
| Finally.cs:55:5:72:5 | {...} | Finally.cs:56:9:71:9 | try {...} ... |
@@ -1809,26 +1805,22 @@ dominance
| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:48:61:51 | [exception: Exception] true |
| Finally.cs:61:48:61:51 | [exception: Exception] true | Finally.cs:62:9:64:9 | {...} |
| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; |
-| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e |
| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e |
| Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message |
| Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | Finally.cs:65:48:65:51 | [exception: Exception] null |
| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
| Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:69:9:71:9 | {...} |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:70:13:70:41 | [finally: exception] ...; |
| Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:70:13:70:41 | [finally: return] ...; |
| Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:41 | ...; |
+| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) |
| Finally.cs:70:13:70:41 | ...; | Finally.cs:70:31:70:39 | "Finally" |
-| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" |
-| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" |
+| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:70:31:70:39 | [finally: exception] "Finally" |
| Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:70:31:70:39 | [finally: return] "Finally" |
| Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:40 | call to method WriteLine |
-| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine |
-| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine |
+| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine |
| Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:75:5:101:5 | {...} |
| Finally.cs:75:5:101:5 | {...} | Finally.cs:76:9:76:19 | ... ...; |
@@ -1894,36 +1886,36 @@ dominance
| Finally.cs:92:30:92:30 | [finally: continue] 3 | Finally.cs:92:25:92:30 | [finally: continue] ... == ... |
| Finally.cs:92:30:92:30 | [finally: return] 3 | Finally.cs:92:25:92:30 | [finally: return] ... == ... |
| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: break] throw ...; |
-| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: continue] throw ...; |
-| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: return] throw ...; |
-| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; |
-| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; |
+| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally(1): exception] ...; |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:97:21:97:24 | [finally: break] ...; |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:97:21:97:24 | [finally: continue] ...; |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:97:21:97:24 | [finally: return] ...; |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:24 | ...; |
-| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- |
-| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- |
+| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception] ...-- |
+| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- |
| Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:97:21:97:23 | [finally: break] ...-- |
-| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- |
+| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- |
| Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue] ...-- |
-| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- |
+| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- |
| Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:97:21:97:23 | [finally: return] ...-- |
| Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:23 | ...-- |
| Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:21 | access to local variable i |
-| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i |
-| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i |
+| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i |
+| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i |
| Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:97:21:97:21 | [finally: break] access to local variable i |
-| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i |
+| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i |
| Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i |
-| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i |
+| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i |
| Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:97:21:97:21 | [finally: return] access to local variable i |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:104:5:119:5 | {...} |
| Finally.cs:104:5:119:5 | {...} | Finally.cs:105:9:118:9 | try {...} ... |
@@ -1931,10 +1923,9 @@ dominance
| Finally.cs:106:9:111:9 | {...} | Finally.cs:107:13:108:23 | if (...) ... |
| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:21 | this access |
| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:28 | access to property Length |
-| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} |
+| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception] {...} |
| Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | access to field Field |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:33:107:33 | 0 |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} |
| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:108:17:108:23 | return ...; |
| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... |
@@ -1946,107 +1937,67 @@ dominance
| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... |
-| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:13:115:41 | [finally: exception] if (...) ... |
| Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:114:13:115:41 | [finally: return] if (...) ... |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | if (...) ... |
-| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access |
-| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access |
-| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access |
+| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception] this access |
| Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:114:19:114:23 | [finally: return] this access |
| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:19:114:23 | this access |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field |
+| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:114:19:114:30 | [finally: exception] access to property Length |
+| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:114:19:114:23 | [finally: exception] access to field Field |
| Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:114:19:114:30 | [finally: return] access to property Length |
| Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:114:19:114:23 | [finally: return] access to field Field |
| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:30 | access to property Length |
| Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | access to field Field |
-| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 |
-| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 |
-| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 |
+| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:114:35:114:35 | [finally: exception] 0 |
| Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:114:35:114:35 | [finally: return] 0 |
| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:35:114:35 | 0 |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception] !... |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception] !... |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [false, finally: return] !... |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [true, finally: return] !... |
| Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:35 | ... == ... |
-| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... |
-| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... |
-| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... |
+| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:114:19:114:35 | [finally: exception] ... == ... |
| Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:114:19:114:35 | [finally: return] ... == ... |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:35:115:39 | this access |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:35:115:39 | [finally: exception] this access |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:35:115:39 | [finally: return] this access |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field |
+| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine |
+| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:115:35:115:39 | [finally: exception] access to field Field |
| Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine |
| Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:115:35:115:39 | [finally: return] access to field Field |
| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine |
| Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | access to field Field |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception] this access |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:17:116:21 | [finally: return] this access |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:21 | this access |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field |
+| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:116:17:116:28 | [finally: exception] access to property Length |
+| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:116:17:116:21 | [finally: exception] access to field Field |
| Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:116:17:116:28 | [finally: return] access to property Length |
| Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:116:17:116:21 | [finally: return] access to field Field |
| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:28 | access to property Length |
| Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | access to field Field |
-| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 |
-| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 |
-| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 |
+| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:116:32:116:32 | [finally: exception] 0 |
| Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:116:32:116:32 | [finally: return] 0 |
| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:32:116:32 | 0 |
| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:117:17:117:37 | [finally: exception] ...; |
| Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:32 | ... > ... |
-| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... |
-| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... |
-| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... |
+| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:116:17:116:32 | [finally: exception] ... > ... |
| Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:116:17:116:32 | [finally: return] ... > ... |
| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:35:117:35 | 1 |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:35:117:35 | [finally: exception] 1 |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:35:117:35 | [finally: return] 1 |
| Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:36 | call to method WriteLine |
-| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine |
-| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine |
-| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine |
+| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine |
| Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine |
| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:122:5:131:5 | {...} |
| Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | exit M6 |
@@ -2064,16 +2015,16 @@ dominance
| Finally.cs:134:5:145:5 | {...} | Finally.cs:135:9:143:9 | try {...} ... |
| Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:136:9:138:9 | {...} |
| Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:37 | ...; |
-| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception] {...} |
| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} |
| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:31:137:35 | "Try" |
| Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:36 | call to method WriteLine |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:141:41:141:42 | [finally: exception] "" |
| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:41:141:42 | "" |
-| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; |
+| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception] throw ...; |
| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; |
| Finally.cs:141:41:141:42 | "" | Finally.cs:141:19:141:43 | object creation of type ArgumentException |
-| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException |
+| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:148:5:170:5 | {...} |
| Finally.cs:148:5:170:5 | {...} | Finally.cs:149:9:169:9 | try {...} ... |
| Finally.cs:149:9:169:9 | try {...} ... | Finally.cs:150:9:153:9 | {...} |
@@ -2083,102 +2034,70 @@ dominance
| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException |
| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} |
| Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:28 | ... == ... |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception] {...} |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:156:13:168:13 | [finally: exception] try {...} ... |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | try {...} ... |
-| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception] {...} |
| Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:157:13:160:13 | {...} |
-| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... |
-| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... |
+| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:158:17:159:45 | [finally: exception] if (...) ... |
| Finally.cs:157:13:160:13 | {...} | Finally.cs:158:17:159:45 | if (...) ... |
-| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args |
-| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args |
+| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception] access to parameter args |
| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:24 | access to parameter args |
-| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length |
-| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length |
+| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception] access to property Length |
| Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:31 | access to property Length |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:158:36:158:36 | [finally: exception] 1 |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} |
| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:36:158:36 | 1 |
| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} |
| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} |
| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" |
-| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
+| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:159:41:159:43 | [finally: exception] "1" |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... |
-| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:21:158:36 | [finally: exception] ... == ... |
+| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e |
| Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message |
| Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message |
| Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [exception: Exception] "1" |
| Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" |
| Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... |
| Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:163:17:163:43 | [finally: exception] ...; |
| Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:43 | ...; |
| Finally.cs:163:17:163:43 | ...; | Finally.cs:163:35:163:38 | access to parameter args |
-| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args |
-| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args |
-| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 |
-| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 |
+| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:163:35:163:38 | [finally: exception] access to parameter args |
+| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception] 0 |
| Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:40:163:40 | 0 |
-| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine |
-| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine |
+| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine |
| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:17:163:42 | call to method WriteLine |
| Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:41 | access to array element |
-| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element |
-| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:163:35:163:41 | [finally: exception] access to array element |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:166:13:168:13 | [finally: exception] {...} |
| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:166:13:168:13 | {...} |
-| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; |
-| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; |
+| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:167:17:167:38 | [finally: exception] ...; |
| Finally.cs:166:13:168:13 | {...} | Finally.cs:167:17:167:38 | ...; |
| Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" |
-| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" |
-| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" |
+| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:167:35:167:36 | [finally: exception] "" |
| Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine |
-| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine |
-| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine |
+| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine |
| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} |
| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception |
| Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA |
@@ -2198,50 +2117,35 @@ dominance
| Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:17:180:18 | access to parameter b1 |
| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA |
| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... |
-| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... |
| Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} |
-| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
+| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} |
| Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... |
-| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... |
-| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... |
+| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... |
| Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 |
-| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 |
-| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 |
+| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... |
| Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 |
-| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 |
-| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 |
-| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; |
+| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 |
+| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception] throw ...; |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:196:5:214:5 | {...} |
| Finally.cs:196:5:214:5 | {...} | Finally.cs:197:9:212:9 | try {...} ... |
| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:198:9:200:9 | {...} |
@@ -2249,85 +2153,49 @@ dominance
| Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:17:199:18 | access to parameter b1 |
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA |
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... |
-| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception] {...} |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:203:13:210:13 | [finally: exception] try {...} ... |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception] {...} |
| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:204:13:206:13 | {...} |
-| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... |
+| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:205:17:205:47 | [finally: exception] if (...) ... |
| Finally.cs:204:13:206:13 | {...} | Finally.cs:205:17:205:47 | if (...) ... |
-| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 |
-| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 |
+| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 |
| Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:21:205:22 | access to parameter b2 |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception] {...} |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} |
-| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception] throw ...; |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; |
-| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... |
-| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... |
+| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception] {...} |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:17:209:47 | [finally: exception] if (...) ... |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:17:209:47 | if (...) ... |
-| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 |
-| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 |
+| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 |
+| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 |
+| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 |
| Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:21:209:22 | access to parameter b3 |
-| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception] ...; |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception] throw ...; |
| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; |
-| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" |
-| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" |
+| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:211:26:211:28 | [finally: exception] "0" |
| Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" |
| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:16 | [finally: exception] this access |
| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... |
-| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... |
-| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... |
+| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:211:13:211:28 | [finally: exception] ... = ... |
| Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" |
| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) |
| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access |
@@ -2361,77 +2229,48 @@ dominance
| Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:239:21:239:22 | access to parameter b1 |
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA |
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... |
-| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... |
+| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception] {...} |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:244:17:252:17 | [finally: exception] try {...} ... |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception] {...} |
| Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:245:17:248:17 | {...} |
-| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... |
+| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:246:21:247:47 | [finally: exception] if (...) ... |
| Finally.cs:245:17:248:17 | {...} | Finally.cs:246:21:247:47 | if (...) ... |
-| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 |
-| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 |
+| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 |
| Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:246:25:246:26 | access to parameter b2 |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception] {...} |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} |
-| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; |
-| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; |
-| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception] {...} |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally(1): exception] ...; |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:251:21:251:55 | [finally: exception] ...; |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:55 | ...; |
| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:254:13:254:45 | ...; |
| Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" |
+| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" |
+| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" |
+| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" |
| Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:54 | call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine |
+| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine |
+| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine |
+| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine |
| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} |
| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:31:254:43 | "Mid finally" |
| Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:44 | call to method WriteLine |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:258:13:258:47 | [finally: exception] ...; |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:47 | ...; |
+| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) |
| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:260:9:260:34 | ...; |
| Finally.cs:258:13:258:47 | ...; | Finally.cs:258:31:258:45 | "Outer finally" |
-| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" |
-| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" |
+| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" |
| Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:46 | call to method WriteLine |
-| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine |
-| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine |
+| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine |
| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (normal) |
| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:27:260:32 | "Done" |
| Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:33 | call to method WriteLine |
@@ -2439,28 +2278,28 @@ dominance
| Finally.cs:264:5:274:5 | {...} | Finally.cs:265:9:273:9 | try {...} ... |
| Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:266:9:268:9 | {...} |
| Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:35 | ...; |
-| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception] {...} |
| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} |
| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:31:267:33 | "1" |
| Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:34 | call to method WriteLine |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:271:13:271:35 | [finally: exception] ...; |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:271:13:271:35 | ...; |
-| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; |
+| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception] ...; |
| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:272:13:272:19 | ...; |
| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" |
-| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" |
+| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:271:31:271:33 | [finally: exception] "3" |
| Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:34 | call to method WriteLine |
-| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine |
-| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 |
+| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine |
+| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception] 3 |
| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:18:272:18 | 3 |
| Finally.cs:272:13:272:18 | ... + ... | Finally.cs:272:13:272:18 | ... = ... |
| Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | exit M13 (normal) |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) |
+| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:272:13:272:18 | [finally: exception] ... = ... |
+| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) |
| Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i |
-| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i |
+| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:272:13:272:13 | [finally: exception] access to parameter i |
| Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... |
-| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... |
+| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:272:13:272:18 | [finally: exception] ... + ... |
| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} |
| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object |
| Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach |
@@ -5445,11 +5284,11 @@ postDominance
| CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:29:5:41:5 | {...} |
| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:31:9:34:9 | {...} |
-| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; |
-| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" |
-| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} |
-| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; |
-| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine |
+| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; |
+| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" |
+| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} |
+| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; |
+| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine |
| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:40:32:40:36 | "End" |
| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:9:40:11 | End: |
| CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:38 | ...; |
@@ -6094,7 +5933,7 @@ postDominance
| Finally.cs:3:14:3:20 | exit Finally | Finally.cs:3:14:3:20 | exit Finally (normal) |
| Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | {...} |
| Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | call to constructor Object |
-| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine |
+| Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine |
| Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:15:13:15:40 | call to method WriteLine |
| Finally.cs:8:5:17:5 | {...} | Finally.cs:7:10:7:11 | enter M1 |
| Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:8:5:17:5 | {...} |
@@ -6103,12 +5942,13 @@ postDominance
| Finally.cs:11:13:11:38 | ...; | Finally.cs:10:9:12:9 | {...} |
| Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:38 | ...; |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:11:13:11:37 | call to method WriteLine |
-| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" |
+| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:15:31:15:39 | [finally: exception] "Finally" |
| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:15:31:15:39 | "Finally" |
| Finally.cs:15:13:15:41 | ...; | Finally.cs:14:9:16:9 | {...} |
-| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:14:9:16:9 | [finally: exception] {...} |
| Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:41 | ...; |
-| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; |
+| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:15:13:15:41 | [finally: exception] ...; |
+| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:50:13:50:40 | call to method WriteLine |
| Finally.cs:20:5:52:5 | {...} | Finally.cs:19:10:19:11 | enter M2 |
@@ -6125,28 +5965,24 @@ postDominance
| Finally.cs:33:13:35:13 | {...} | Finally.cs:32:13:39:13 | try {...} ... |
| Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:33:13:35:13 | {...} |
| Finally.cs:34:21:34:24 | true | Finally.cs:34:17:34:32 | if (...) ... |
-| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:34:27:34:32 | throw ...; |
-| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception |
-| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" |
-| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} |
+| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:34:27:34:32 | throw ...; |
+| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception |
+| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:38:37:38:42 | [finally: exception] "Boo!" |
+| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:37:13:39:13 | [finally: exception] {...} |
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} |
-| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; |
-| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:28:13:28:18 | throw ...; |
| Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:24:13:24:19 | return ...; |
| Finally.cs:49:9:51:9 | {...} | Finally.cs:42:9:43:9 | {...} |
-| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" |
-| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" |
+| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: exception] "Finally" |
| Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:50:31:50:39 | [finally: return] "Finally" |
| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:50:31:50:39 | "Finally" |
| Finally.cs:50:13:50:41 | ...; | Finally.cs:49:9:51:9 | {...} |
-| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} |
+| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:49:9:51:9 | [finally: exception] {...} |
| Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:49:9:51:9 | [finally: return] {...} |
| Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:41 | ...; |
-| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; |
+| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:50:13:50:41 | [finally: exception] ...; |
| Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:50:13:50:41 | [finally: return] ...; |
+| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:70:13:70:40 | call to method WriteLine |
| Finally.cs:55:5:72:5 | {...} | Finally.cs:54:10:54:11 | enter M3 |
@@ -6164,20 +6000,16 @@ postDominance
| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:65:48:65:51 | [exception: Exception] null |
| Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... |
-| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:63:13:63:18 | throw ...; |
| Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:59:13:59:19 | return ...; |
| Finally.cs:69:9:71:9 | {...} | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" |
-| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" |
+| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: exception] "Finally" |
| Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:70:31:70:39 | [finally: return] "Finally" |
| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:70:31:70:39 | "Finally" |
| Finally.cs:70:13:70:41 | ...; | Finally.cs:69:9:71:9 | {...} |
-| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} |
+| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:69:9:71:9 | [finally: exception] {...} |
| Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:69:9:71:9 | [finally: return] {...} |
| Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:41 | ...; |
-| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; |
+| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:70:13:70:41 | [finally: exception] ...; |
| Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:70:13:70:41 | [finally: return] ...; |
| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:77:16:77:20 | ... > ... |
| Finally.cs:74:10:74:11 | exit M4 (normal) | Finally.cs:97:21:97:23 | [finally: break] ...-- |
@@ -6235,29 +6067,29 @@ postDominance
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:92:25:92:30 | [finally: continue] ... == ... |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:92:25:92:30 | [finally: return] ... == ... |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:92:25:92:30 | ... == ... |
-| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; |
-| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; |
+| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally(1): exception] ...; |
+| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; |
| Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:97:21:97:24 | [finally: break] ...; |
-| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; |
+| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; |
| Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:97:21:97:24 | [finally: continue] ...; |
-| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; |
+| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; |
| Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:97:21:97:24 | [finally: return] ...; |
| Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:24 | ...; |
| Finally.cs:97:21:97:23 | ...-- | Finally.cs:97:21:97:21 | access to local variable i |
-| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i |
-| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i |
+| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i |
+| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i |
| Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:97:21:97:21 | [finally: break] access to local variable i |
-| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i |
+| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i |
| Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i |
-| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i |
+| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i |
| Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:97:21:97:21 | [finally: return] access to local variable i |
| Finally.cs:97:21:97:24 | ...; | Finally.cs:96:17:98:17 | {...} |
-| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:96:17:98:17 | [finally: break] {...} |
-| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:96:17:98:17 | [finally: continue] {...} |
-| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:96:17:98:17 | [finally: return] {...} |
| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:17:116:32 | ... > ... |
| Finally.cs:103:10:103:11 | exit M5 (normal) | Finally.cs:116:17:116:32 | [finally: return] ... > ... |
@@ -6277,52 +6109,33 @@ postDominance
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:21 | access to field Field |
| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:109:33:109:33 | 1 |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:28 | access to property Length |
-| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:108:17:108:23 | return ...; |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:33 | ... == ... |
-| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} |
-| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} |
+| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:113:9:118:9 | [finally: exception] {...} |
| Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:113:9:118:9 | [finally: return] {...} |
| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... |
+| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:114:19:114:23 | [finally: exception] this access |
+| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:114:13:115:41 | [finally: exception] if (...) ... |
| Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:114:19:114:23 | [finally: return] this access |
| Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:114:13:115:41 | [finally: return] if (...) ... |
| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:23 | this access |
| Finally.cs:114:19:114:23 | this access | Finally.cs:114:13:115:41 | if (...) ... |
-| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field |
-| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field |
-| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field |
+| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:114:19:114:23 | [finally: exception] access to field Field |
| Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:114:19:114:23 | [finally: return] access to field Field |
| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:19:114:23 | access to field Field |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:35:114:35 | 0 |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:35:114:35 | [finally: exception] 0 |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:35:114:35 | [finally: return] 0 |
| Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:30 | access to property Length |
-| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length |
-| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length |
-| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length |
+| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:114:19:114:30 | [finally: exception] access to property Length |
| Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:114:19:114:30 | [finally: return] access to property Length |
-| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field |
-| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field |
-| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field |
+| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: exception] access to field Field |
| Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:115:35:115:39 | [finally: return] access to field Field |
| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:115:35:115:39 | access to field Field |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:114:17:114:36 | [true, finally: return] !... |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:115:35:115:39 | [finally: exception] this access |
+| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:115:17:115:41 | [finally: exception] ...; |
| Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:115:35:115:39 | [finally: return] this access |
| Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:115:17:115:41 | [finally: return] ...; |
| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:35:115:39 | this access |
@@ -6331,40 +6144,26 @@ postDominance
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:114:17:114:36 | [false] !... |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:115:17:115:40 | call to method WriteLine |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
+| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:116:17:116:21 | [finally: exception] this access |
+| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... |
| Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:116:17:116:21 | [finally: return] this access |
| Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:116:13:117:37 | [finally: return] if (...) ... |
| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:21 | this access |
| Finally.cs:116:17:116:21 | this access | Finally.cs:116:13:117:37 | if (...) ... |
-| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field |
-| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field |
-| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field |
+| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:116:17:116:21 | [finally: exception] access to field Field |
| Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:116:17:116:21 | [finally: return] access to field Field |
| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:17:116:21 | access to field Field |
| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:116:32:116:32 | 0 |
-| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 |
-| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 |
-| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:116:32:116:32 | [finally: exception] 0 |
| Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:116:32:116:32 | [finally: return] 0 |
| Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:28 | access to property Length |
-| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length |
-| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length |
-| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length |
+| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:116:17:116:28 | [finally: exception] access to property Length |
| Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:116:17:116:28 | [finally: return] access to property Length |
-| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 |
-| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 |
-| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 |
+| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: exception] 1 |
| Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:117:35:117:35 | [finally: return] 1 |
| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:117:35:117:35 | 1 |
| Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:117:17:117:37 | [finally: exception] ...; |
| Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:121:10:121:11 | exit M6 | Finally.cs:121:10:121:11 | exit M6 (normal) |
| Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:125:17:125:40 | Double temp = ... |
@@ -6384,12 +6183,12 @@ postDominance
| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:137:31:137:35 | "Try" |
| Finally.cs:137:13:137:37 | ...; | Finally.cs:136:9:138:9 | {...} |
| Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:37 | ...; |
-| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException |
+| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException |
| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:141:19:141:43 | object creation of type ArgumentException |
-| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" |
+| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:141:41:141:42 | [finally: exception] "" |
| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:41:141:42 | "" |
| Finally.cs:141:41:141:42 | "" | Finally.cs:140:9:143:9 | {...} |
-| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:140:9:143:9 | [finally: exception] {...} |
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:158:21:158:36 | ... == ... |
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:163:17:163:42 | call to method WriteLine |
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:167:17:167:37 | call to method WriteLine |
@@ -6400,28 +6199,20 @@ postDominance
| Finally.cs:151:17:151:20 | access to parameter args | Finally.cs:151:13:152:50 | if (...) ... |
| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:151:25:151:28 | null |
| Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:20 | access to parameter args |
-| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:152:17:152:50 | throw ...; |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:151:17:151:28 | ... == ... |
-| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:155:9:169:9 | [finally: exception] {...} |
| Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:155:9:169:9 | {...} |
-| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... |
-| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... |
+| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:156:13:168:13 | [finally: exception] try {...} ... |
| Finally.cs:157:13:160:13 | {...} | Finally.cs:156:13:168:13 | try {...} ... |
-| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:157:13:160:13 | [finally: exception] {...} |
| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:157:13:160:13 | {...} |
-| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... |
-| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... |
+| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:158:17:159:45 | [finally: exception] if (...) ... |
| Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:17:159:45 | if (...) ... |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:158:21:158:24 | [finally: exception] access to parameter args |
| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:21:158:24 | access to parameter args |
| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:158:36:158:36 | 1 |
-| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 |
-| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 |
-| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
+| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:158:36:158:36 | [finally: exception] 1 |
+| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:159:41:159:43 | [finally: exception] "1" |
| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:41:159:43 | "1" |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:27:159:44 | object creation of type Exception |
@@ -6429,55 +6220,38 @@ postDominance
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} |
| Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [exception: Exception] Exception e |
| Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
| Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e |
| Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e |
| Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [exception: Exception] "1" |
| Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" |
| Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message |
| Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message |
-| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element |
-| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message |
+| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:163:35:163:41 | [finally: exception] access to array element |
| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:163:35:163:41 | access to array element |
| Finally.cs:163:17:163:43 | ...; | Finally.cs:162:13:164:13 | {...} |
-| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; |
-| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; |
+| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:162:13:164:13 | [finally: exception] {...} |
+| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:163:17:163:43 | [finally: exception] ...; |
| Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:17:163:43 | ...; |
-| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 |
-| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 |
+| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:163:40:163:40 | [finally: exception] 0 |
| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:40:163:40 | 0 |
| Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:38 | access to parameter args |
-| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args |
-| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args |
-| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} |
-| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} |
+| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:163:35:163:38 | [finally: exception] access to parameter args |
+| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} |
| Finally.cs:166:13:168:13 | {...} | Finally.cs:165:13:168:13 | catch {...} |
-| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" |
-| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" |
+| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:167:35:167:36 | [finally: exception] "" |
| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:167:35:167:36 | "" |
| Finally.cs:167:17:167:38 | ...; | Finally.cs:166:13:168:13 | {...} |
-| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:166:13:168:13 | [finally: exception] {...} |
| Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:38 | ...; |
-| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; |
-| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; |
+| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:167:17:167:38 | [finally: exception] ...; |
| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | enter ExceptionA |
| Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA (normal) |
| Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | {...} |
@@ -6498,95 +6272,60 @@ postDominance
| Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:179:9:181:9 | {...} |
| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:13:180:43 | if (...) ... |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:180:17:180:18 | access to parameter b1 |
-| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; |
| Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} |
-| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
+| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} |
| Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... |
-| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... |
-| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... |
+| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... |
| Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} |
-| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
+| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... |
| Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} |
-| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
+| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} |
| Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... |
-| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... |
-| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... |
-| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... |
+| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:195:10:195:12 | exit M10 (normal) | Finally.cs:213:9:213:24 | ... = ... |
| Finally.cs:196:5:214:5 | {...} | Finally.cs:195:10:195:12 | enter M10 |
| Finally.cs:197:9:212:9 | try {...} ... | Finally.cs:196:5:214:5 | {...} |
| Finally.cs:198:9:200:9 | {...} | Finally.cs:197:9:212:9 | try {...} ... |
| Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:198:9:200:9 | {...} |
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:13:199:43 | if (...) ... |
-| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:199:21:199:43 | throw ...; |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:199:17:199:18 | access to parameter b1 |
-| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:202:9:212:9 | [finally: exception] {...} |
| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:202:9:212:9 | {...} |
-| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... |
-| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... |
+| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:203:13:210:13 | [finally: exception] try {...} ... |
| Finally.cs:204:13:206:13 | {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:204:13:206:13 | [finally: exception] {...} |
| Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:204:13:206:13 | {...} |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:17:205:47 | [finally: exception] if (...) ... |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:17:205:47 | if (...) ... |
-| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:205:25:205:47 | throw ...; |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:205:21:205:22 | access to parameter b2 |
-| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:208:13:210:13 | [finally(1): exception] {...} |
+| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:208:13:210:13 | [finally: exception] {...} |
| Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:208:13:210:13 | {...} |
-| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... |
-| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... |
+| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... |
+| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:17:209:47 | [finally: exception] if (...) ... |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:17:209:47 | if (...) ... |
-| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:209:31:209:46 | object creation of type ExceptionC |
-| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
-| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:211:13:211:29 | [finally: exception] ...; |
| Finally.cs:211:13:211:16 | this access | Finally.cs:211:13:211:29 | ...; |
| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:26:211:28 | "0" |
-| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" |
-| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" |
+| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:211:26:211:28 | [finally: exception] "0" |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:209:21:209:22 | access to parameter b3 |
| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:16 | this access |
-| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access |
-| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access |
+| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:211:13:211:16 | [finally: exception] this access |
| Finally.cs:213:9:213:12 | this access | Finally.cs:213:9:213:25 | ...; |
| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:22:213:24 | "1" |
| Finally.cs:213:9:213:25 | ...; | Finally.cs:211:13:211:28 | ... = ... |
@@ -6611,6 +6350,7 @@ postDominance
| Finally.cs:230:9:230:33 | call to method WriteLine | Finally.cs:230:27:230:32 | "Done" |
| Finally.cs:230:9:230:34 | ...; | Finally.cs:228:13:228:40 | call to method WriteLine |
| Finally.cs:230:27:230:32 | "Done" | Finally.cs:230:9:230:34 | ...; |
+| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine |
| Finally.cs:233:10:233:12 | exit M12 (normal) | Finally.cs:260:9:260:33 | call to method WriteLine |
| Finally.cs:234:5:261:5 | {...} | Finally.cs:233:10:233:12 | enter M12 |
| Finally.cs:235:9:259:9 | try {...} ... | Finally.cs:234:5:261:5 | {...} |
@@ -6619,68 +6359,42 @@ postDominance
| Finally.cs:238:13:241:13 | {...} | Finally.cs:237:13:253:13 | try {...} ... |
| Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:238:13:241:13 | {...} |
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:239:17:240:43 | if (...) ... |
-| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:240:21:240:43 | throw ...; |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:239:21:239:22 | access to parameter b1 |
-| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:243:13:253:13 | [finally: exception] {...} |
| Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:243:13:253:13 | {...} |
-| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... |
-| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... |
+| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:244:17:252:17 | [finally: exception] try {...} ... |
| Finally.cs:245:17:248:17 | {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:245:17:248:17 | [finally: exception] {...} |
| Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:245:17:248:17 | {...} |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:246:21:247:47 | [finally: exception] if (...) ... |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:246:21:247:47 | if (...) ... |
-| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:247:25:247:47 | throw ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:246:25:246:26 | access to parameter b2 |
-| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" |
+| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" |
+| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" |
+| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" |
| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:251:39:251:53 | "Inner finally" |
| Finally.cs:251:21:251:55 | ...; | Finally.cs:250:17:252:17 | {...} |
-| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:250:17:252:17 | [finally(1): exception] {...} |
+| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:250:17:252:17 | [finally: exception] {...} |
| Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:55 | ...; |
-| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; |
-| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:251:21:251:55 | [finally(1): exception] ...; |
+| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; |
+| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:251:21:251:55 | [finally: exception] ...; |
| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:254:31:254:43 | "Mid finally" |
| Finally.cs:254:13:254:45 | ...; | Finally.cs:251:21:251:54 | call to method WriteLine |
| Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:45 | ...; |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:254:13:254:44 | call to method WriteLine |
-| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" |
-| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" |
+| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" |
| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:258:31:258:45 | "Outer finally" |
| Finally.cs:258:13:258:47 | ...; | Finally.cs:257:9:259:9 | {...} |
-| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:257:9:259:9 | [finally: exception] {...} |
| Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:47 | ...; |
-| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; |
-| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:258:13:258:47 | [finally: exception] ...; |
| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:260:27:260:32 | "Done" |
| Finally.cs:260:9:260:34 | ...; | Finally.cs:258:13:258:46 | call to method WriteLine |
| Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:34 | ...; |
-| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... |
+| Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:272:13:272:18 | [finally: exception] ... = ... |
| Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:272:13:272:18 | ... = ... |
| Finally.cs:264:5:274:5 | {...} | Finally.cs:263:10:263:12 | enter M13 |
| Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:264:5:274:5 | {...} |
@@ -6689,22 +6403,22 @@ postDominance
| Finally.cs:267:13:267:35 | ...; | Finally.cs:266:9:268:9 | {...} |
| Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:35 | ...; |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:267:13:267:34 | call to method WriteLine |
-| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" |
+| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:271:31:271:33 | [finally: exception] "3" |
| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:271:31:271:33 | "3" |
| Finally.cs:271:13:271:35 | ...; | Finally.cs:270:9:273:9 | {...} |
-| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:270:9:273:9 | [finally: exception] {...} |
| Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:35 | ...; |
-| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; |
-| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; |
+| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:271:13:271:35 | [finally: exception] ...; |
+| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:272:13:272:19 | [finally: exception] ...; |
| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:13:272:19 | ...; |
| Finally.cs:272:13:272:18 | ... + ... | Finally.cs:272:18:272:18 | 3 |
| Finally.cs:272:13:272:18 | ... = ... | Finally.cs:272:13:272:18 | ... + ... |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... |
+| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:272:18:272:18 | [finally: exception] 3 |
+| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:272:13:272:18 | [finally: exception] ... + ... |
| Finally.cs:272:13:272:19 | ...; | Finally.cs:271:13:271:34 | call to method WriteLine |
-| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine |
+| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine |
| Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:13 | access to parameter i |
-| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i |
+| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:272:13:272:13 | [finally: exception] access to parameter i |
| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | enter Foreach |
| Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | exit Foreach (normal) |
| Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | {...} |
@@ -10543,14 +10257,13 @@ blockDominance
| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | enter Finally |
| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | enter M1 |
| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | exit M1 |
-| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:14:9:16:9 | [finally: exception] {...} |
| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:14:9:16:9 | {...} |
| Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:14:9:16:9 | [finally: exception] {...} |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:14:9:16:9 | {...} |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | enter M2 |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 |
-| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 (abnormal) |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | exit M2 (normal) |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:24:13:24:19 | return ...; |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} |
@@ -10561,11 +10274,10 @@ blockDominance
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:34:27:34:32 | throw ...; |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:42:9:43:9 | {...} |
+| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:49:9:51:9 | [finally: exception] {...} |
| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 |
-| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) |
| Finally.cs:24:13:24:19 | return ...; | Finally.cs:24:13:24:19 | return ...; |
-| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | exit M2 (abnormal) |
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex |
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:27:9:29:9 | {...} |
@@ -10574,6 +10286,7 @@ blockDominance
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:34:27:34:32 | throw ...; |
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} |
+| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:49:9:51:9 | [finally: exception] {...} |
| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:38:26:39 | [exception: Exception] IOException ex |
| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:27:9:29:9 | {...} |
| Finally.cs:27:9:29:9 | {...} | Finally.cs:27:9:29:9 | {...} |
@@ -10588,9 +10301,9 @@ blockDominance
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:49:9:51:9 | [finally: exception] {...} |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | enter M3 |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 |
-| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 (abnormal) |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | exit M3 (normal) |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:59:13:59:19 | return ...; |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} |
@@ -10599,31 +10312,27 @@ blockDominance
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:65:26:65:26 | [exception: Exception] Exception e |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:69:9:71:9 | [finally: exception] {...} |
| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 |
-| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) |
| Finally.cs:59:13:59:19 | return ...; | Finally.cs:59:13:59:19 | return ...; |
-| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:54:10:54:11 | exit M3 (abnormal) |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:62:9:64:9 | {...} |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} |
| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:38:61:39 | [exception: Exception] IOException ex |
| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:62:9:64:9 | {...} |
| Finally.cs:62:9:64:9 | {...} | Finally.cs:62:9:64:9 | {...} |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:26:65:26 | [exception: Exception] Exception e |
| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | enter M4 |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | exit M4 |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | exit M4 (abnormal) |
@@ -10644,12 +10353,12 @@ blockDominance
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: break] {...} |
-| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: continue] {...} |
-| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | [finally: return] {...} |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:96:17:98:17 | {...} |
| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 |
@@ -10674,12 +10383,12 @@ blockDominance
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: break] {...} |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: continue] {...} |
-| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | [finally: return] {...} |
| Finally.cs:77:16:77:16 | access to local variable i | Finally.cs:96:17:98:17 | {...} |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:74:10:74:11 | exit M4 (abnormal) |
@@ -10698,18 +10407,18 @@ blockDominance
| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: break] {...} |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} |
-| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | [finally: return] {...} |
| Finally.cs:78:9:100:9 | {...} | Finally.cs:96:17:98:17 | {...} |
| Finally.cs:82:21:82:27 | return ...; | Finally.cs:82:21:82:27 | return ...; |
| Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:25:93:46 | [finally: return] throw ...; |
| Finally.cs:82:21:82:27 | return ...; | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception |
-| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:82:21:82:27 | return ...; | Finally.cs:96:17:98:17 | [finally: return] {...} |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:83:17:84:29 | if (...) ... |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:84:21:84:29 | continue; |
@@ -10722,16 +10431,16 @@ blockDominance
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} |
-| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | [finally: continue] {...} |
| Finally.cs:83:17:84:29 | if (...) ... | Finally.cs:96:17:98:17 | {...} |
| Finally.cs:84:21:84:29 | continue; | Finally.cs:84:21:84:29 | continue; |
| Finally.cs:84:21:84:29 | continue; | Finally.cs:93:25:93:46 | [finally: continue] throw ...; |
| Finally.cs:84:21:84:29 | continue; | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception |
-| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:84:21:84:29 | continue; | Finally.cs:96:17:98:17 | [finally: continue] {...} |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:85:17:86:26 | if (...) ... |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:86:21:86:26 | break; |
@@ -10740,19 +10449,19 @@ blockDominance
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:25:93:46 | throw ...; |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | [finally: break] {...} |
| Finally.cs:85:17:86:26 | if (...) ... | Finally.cs:96:17:98:17 | {...} |
| Finally.cs:86:21:86:26 | break; | Finally.cs:86:21:86:26 | break; |
| Finally.cs:86:21:86:26 | break; | Finally.cs:93:25:93:46 | [finally: break] throw ...; |
| Finally.cs:86:21:86:26 | break; | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception |
-| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:86:21:86:26 | break; | Finally.cs:96:17:98:17 | [finally: break] {...} |
| Finally.cs:89:13:99:13 | {...} | Finally.cs:89:13:99:13 | {...} |
| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:25:93:46 | throw ...; |
| Finally.cs:89:13:99:13 | {...} | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
+| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
| Finally.cs:89:13:99:13 | {...} | Finally.cs:96:17:98:17 | {...} |
| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:93:25:93:46 | [finally: break] throw ...; |
| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:93:25:93:46 | [finally: continue] throw ...; |
@@ -10760,22 +10469,22 @@ blockDominance
| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:93:25:93:46 | throw ...; |
| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: break] throw ...; |
| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception |
-| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: continue] throw ...; |
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception |
-| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: return] throw ...; |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception |
-| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:96:17:98:17 | [finally: break] {...} |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:96:17:98:17 | [finally: return] {...} |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:96:17:98:17 | {...} |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | enter M5 |
@@ -10790,33 +10499,22 @@ blockDominance
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:109:33:109:33 | 1 |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} |
+| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | [finally: exception] {...} |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
+| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: exception] !... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false, finally: return] !... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
+| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: exception] !... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true, finally: return] !... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: exception] ...; |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:115:17:115:41 | [finally: return] ...; |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
+| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | [finally: return] if (...) ... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: exception] ...; |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | exit M5 |
| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 (abnormal) |
@@ -10830,27 +10528,16 @@ blockDominance
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:109:33:109:33 | 1 |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: return] !... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: return] !... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: return] ...; |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: return] if (...) ... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:103:10:103:11 | exit M5 (normal) |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:33:107:33 | 0 |
@@ -10861,20 +10548,15 @@ blockDominance
| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false, finally: return] !... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true, finally: return] !... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:115:17:115:41 | [finally: return] ...; |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | [finally: return] if (...) ... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:108:17:108:23 | return ...; | Finally.cs:108:17:108:23 | return ...; |
| Finally.cs:108:17:108:23 | return ...; | Finally.cs:114:17:114:36 | [false, finally: return] !... |
@@ -10888,118 +10570,75 @@ blockDominance
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
-| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:17:109:28 | access to property Length |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:33:109:33 | 1 |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
-| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:33:109:33 | 1 |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:109:33:109:33 | 1 | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
-| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
-| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
-| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
-| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
-| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:103:10:103:11 | exit M5 (abnormal) |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:113:9:118:9 | [finally: exception] {...} |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [false, finally: exception] !... |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:17:114:36 | [true, finally: exception] !... |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:115:17:115:41 | [finally: exception] ...; |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:117:17:117:37 | [finally: exception] ...; |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [false] !... |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:115:17:115:41 | ...; |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:114:17:114:36 | [false, finally: exception] !... |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:114:17:114:36 | [false, finally: return] !... |
| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:114:17:114:36 | [true, finally: exception] !... |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:114:17:114:36 | [true, finally: return] !... |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:17:115:41 | [finally: exception] ...; |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:17:115:41 | [finally: return] ...; |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:117:17:117:37 | [finally: exception] ...; |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:13:117:37 | [finally: return] if (...) ... |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:117:17:117:37 | ...; |
| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:17:117:37 | [finally: exception] ...; |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | enter M6 |
| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | enter M7 |
| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | exit M7 (abnormal) |
-| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:140:9:143:9 | [finally: exception] {...} |
| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:140:9:143:9 | {...} |
| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 (abnormal) |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:140:9:143:9 | [finally: exception] {...} |
| Finally.cs:140:9:143:9 | {...} | Finally.cs:140:9:143:9 | {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | enter M8 |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 |
@@ -11007,80 +10646,54 @@ blockDominance
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | exit M8 (normal) |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:17:152:50 | throw ...; |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | [finally: exception] {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:155:9:169:9 | {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | 1 |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:158:36:158:36 | [finally: exception] 1 |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | "1" |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:159:41:159:43 | [finally: exception] "1" |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: Exception] Exception e |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | [finally: exception] {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:162:13:164:13 | {...} |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} |
-| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} |
+| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | [finally: exception] catch {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:165:13:168:13 | catch {...} |
| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 |
| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 (abnormal) |
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 (normal) |
| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | exit M8 (abnormal) |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception] {...} |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:158:36:158:36 | [finally: exception] 1 |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:159:41:159:43 | [finally: exception] "1" |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:162:13:164:13 | [finally: exception] {...} |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:165:13:168:13 | [finally: exception] catch {...} |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:147:10:147:11 | exit M8 (abnormal) |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:155:9:169:9 | [finally: exception] {...} |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:158:36:158:36 | [finally: exception] 1 |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:159:41:159:43 | [finally: exception] "1" |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:162:13:164:13 | [finally: exception] {...} |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | exit M8 (normal) |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:155:9:169:9 | {...} |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:158:36:158:36 | 1 |
@@ -11095,44 +10708,30 @@ blockDominance
| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:36:158:36 | 1 |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:159:41:159:43 | "1" |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
-| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:36:158:36 | [finally: exception] 1 |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:159:41:159:43 | [finally: exception] "1" |
+| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:41:159:43 | "1" |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:41:159:43 | [finally: exception] "1" |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:30:161:30 | [exception: Exception] Exception e |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:162:13:164:13 | [finally: exception] {...} |
| Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} |
| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | catch {...} |
| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | enter ExceptionA |
| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | enter ExceptionB |
@@ -11144,55 +10743,34 @@ blockDominance
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:176:10:176:11 | enter M9 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 |
| Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) |
| Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:176:10:176:11 | exit M9 (normal) |
| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | exit M9 (normal) |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
@@ -11201,186 +10779,119 @@ blockDominance
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | enter M10 |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | exit M10 |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | exit M10 (abnormal) |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:21:199:43 | throw ...; |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:199:27:199:42 | object creation of type ExceptionA |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | [finally: exception] {...} |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:202:9:212:9 | {...} |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | [finally: exception] throw ...; |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:25:205:47 | throw ...; |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:205:31:205:46 | object creation of type ExceptionB |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally(1): exception] {...} |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | [finally: exception] {...} |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:208:13:210:13 | {...} |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:209:31:209:46 | object creation of type ExceptionC |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | ...; |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
-| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:211:13:211:29 | [finally: exception] ...; |
| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 |
| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) |
| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception] {...} |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:25:205:47 | [finally: exception] throw ...; |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:208:13:210:13 | [finally: exception] {...} |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:211:13:211:29 | [finally: exception] ...; |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:202:9:212:9 | [finally: exception] {...} |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:25:205:47 | [finally: exception] throw ...; |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:202:9:212:9 | {...} |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:25:205:47 | throw ...; |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:205:31:205:46 | object creation of type ExceptionB |
-| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} |
+| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:208:13:210:13 | {...} |
-| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
+| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:211:13:211:29 | ...; |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
+| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:205:25:205:47 | [finally: exception] throw ...; |
| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; |
-| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception] throw ...; |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB |
-| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception] {...} |
+| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:211:13:211:29 | [finally: exception] ...; |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:208:13:210:13 | {...} |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:31:209:46 | object creation of type ExceptionC |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:211:13:211:29 | ...; |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:29 | ...; |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:29 | [finally: exception] ...; |
| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | enter M11 |
| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:222:9:225:9 | catch {...} |
| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:227:9:229:9 | {...} |
@@ -11388,83 +10899,61 @@ blockDominance
| Finally.cs:227:9:229:9 | {...} | Finally.cs:227:9:229:9 | {...} |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | enter M12 |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | exit M12 |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | exit M12 (abnormal) |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:21:240:43 | throw ...; |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:240:27:240:42 | object creation of type ExceptionA |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | [finally: exception] {...} |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:243:13:253:13 | {...} |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | [finally: exception] throw ...; |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:25:247:47 | throw ...; |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:247:31:247:46 | object creation of type ExceptionA |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally(1): exception] {...} |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | [finally: exception] {...} |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:250:17:252:17 | {...} |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | [finally: exception] {...} |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:257:9:259:9 | {...} |
| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 |
-| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) |
| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} |
+| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception] {...} |
+| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; |
+| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA |
+| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception] {...} |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:243:13:253:13 | [finally: exception] {...} |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:25:247:47 | [finally: exception] throw ...; |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:243:13:253:13 | {...} |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:25:247:47 | throw ...; |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:247:31:247:46 | object creation of type ExceptionA |
-| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} |
+| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:250:17:252:17 | {...} |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:257:9:259:9 | {...} |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
+| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:247:25:247:47 | [finally: exception] throw ...; |
| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA |
-| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception] {...} |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:257:9:259:9 | {...} |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:257:9:259:9 | [finally: exception] {...} |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} |
| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | enter M13 |
| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | exit M13 |
-| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:270:9:273:9 | [finally: exception] {...} |
| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:270:9:273:9 | {...} |
| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:270:9:273:9 | [finally: exception] {...} |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:270:9:273:9 | {...} |
| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | enter Foreach |
| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | enter M1 |
@@ -14617,12 +14106,11 @@ postBlockDominance
| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | enter Finally |
| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | enter M1 |
| Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:14:9:16:9 | [finally: exception] {...} |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | enter M1 |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:14:9:16:9 | {...} |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | enter M2 |
| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | exit M2 |
-| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 (abnormal) |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | enter M2 |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 (normal) |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:24:13:24:19 | return ...; |
@@ -14645,9 +14133,9 @@ postBlockDominance
| Finally.cs:42:9:43:9 | {...} | Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:42:9:43:9 | {...} |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:49:9:51:9 | [finally: exception] {...} |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | enter M3 |
| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | exit M3 |
-| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 (abnormal) |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | enter M3 |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | exit M3 (normal) |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:59:13:59:19 | return ...; |
@@ -14668,7 +14156,7 @@ postBlockDominance
| Finally.cs:66:9:67:9 | {...} | Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:66:9:67:9 | {...} |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:69:9:71:9 | [finally: exception] {...} |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | enter M4 |
| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | exit M4 |
| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 (abnormal) |
@@ -14707,14 +14195,14 @@ postBlockDominance
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:31:93:45 | object creation of type Exception |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally(1): exception] {...} |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:86:21:86:26 | break; |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:96:17:98:17 | [finally: break] {...} |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:84:21:84:29 | continue; |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:96:17:98:17 | [finally: continue] {...} |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:82:21:82:27 | return ...; |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:96:17:98:17 | [finally: return] {...} |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:89:13:99:13 | {...} |
@@ -14755,32 +14243,23 @@ postBlockDominance
| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:33:109:33 | 1 |
| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:110:17:110:49 | throw ...; |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:113:9:118:9 | [finally: exception] {...} |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:13:110:49 | if (...) ... |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:17:109:28 | access to property Length |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:109:33:109:33 | 1 |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:113:9:118:9 | {...} |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:114:17:114:36 | [false, finally: exception] !... |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:114:17:114:36 | [false, finally: return] !... |
| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:114:17:114:36 | [false] !... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:114:17:114:36 | [true, finally: exception] !... |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:114:17:114:36 | [true, finally: return] !... |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:114:17:114:36 | [true] !... |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:17:115:41 | ...; |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:17:115:41 | [finally: exception] ...; |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:114:17:114:36 | [true, finally: return] !... |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:17:115:41 | [finally: return] ...; |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:108:17:108:23 | return ...; |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:114:17:114:36 | [false, finally: return] !... |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:114:17:114:36 | [true, finally: return] !... |
@@ -14795,14 +14274,12 @@ postBlockDominance
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:115:17:115:41 | ...; |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:13:117:37 | if (...) ... |
| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:17:117:37 | ...; |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:17:117:37 | [finally: exception] ...; |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:17:117:37 | [finally: return] ...; |
| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | enter M6 |
| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | enter M7 |
| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | exit M7 (abnormal) |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:140:9:143:9 | [finally: exception] {...} |
| Finally.cs:140:9:143:9 | {...} | Finally.cs:140:9:143:9 | {...} |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | enter M8 |
| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | exit M8 |
@@ -14821,41 +14298,32 @@ postBlockDominance
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:165:13:168:13 | catch {...} |
| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:152:17:152:50 | throw ...; |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:155:9:169:9 | [finally: exception] {...} |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | enter M8 |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:155:9:169:9 | {...} |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:36:158:36 | 1 |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 |
-| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; |
-| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:36:158:36 | [finally: exception] 1 |
+| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:159:21:159:45 | [finally: exception] throw ...; |
| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:41:159:43 | "1" |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:41:159:43 | [finally: exception] "1" |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:159:41:159:43 | "1" |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:159:21:159:45 | throw ...; |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:159:41:159:43 | "1" |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:30:161:30 | [exception: Exception] Exception e |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:162:13:164:13 | [finally: exception] {...} |
| Finally.cs:162:13:164:13 | {...} | Finally.cs:162:13:164:13 | {...} |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:165:13:168:13 | [finally: exception] catch {...} |
| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:165:13:168:13 | catch {...} |
| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | enter ExceptionA |
| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | enter ExceptionB |
@@ -14876,71 +14344,54 @@ postBlockDominance
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | enter M9 |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | enter M10 |
| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | exit M10 |
| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 (abnormal) |
| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:199:21:199:43 | throw ...; |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:27:199:42 | object creation of type ExceptionA |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:202:9:212:9 | [finally: exception] {...} |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | enter M10 |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:202:9:212:9 | {...} |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; |
+| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:205:25:205:47 | [finally: exception] throw ...; |
| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:205:25:205:47 | throw ...; |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:31:205:46 | object creation of type ExceptionB |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally(1): exception] {...} |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:208:13:210:13 | [finally: exception] {...} |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | enter M10 |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:202:9:212:9 | {...} |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:208:13:210:13 | {...} |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC |
| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:31:209:46 | object creation of type ExceptionC |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | enter M10 |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:202:9:212:9 | {...} |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:208:13:210:13 | {...} |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:29 | ...; |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:29 | [finally: exception] ...; |
| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | enter M11 |
| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:222:9:225:9 | catch {...} |
| Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | enter M11 |
@@ -14948,35 +14399,29 @@ postBlockDominance
| Finally.cs:227:9:229:9 | {...} | Finally.cs:227:9:229:9 | {...} |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | enter M12 |
| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | exit M12 |
-| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | exit M12 (abnormal) |
| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:240:21:240:43 | throw ...; |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:27:240:42 | object creation of type ExceptionA |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:243:13:253:13 | [finally: exception] {...} |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | enter M12 |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:243:13:253:13 | {...} |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; |
+| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:247:25:247:47 | [finally: exception] throw ...; |
| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:247:25:247:47 | throw ...; |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:31:247:46 | object creation of type ExceptionA |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally(1): exception] {...} |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:250:17:252:17 | [finally: exception] {...} |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | enter M12 |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:243:13:253:13 | {...} |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:250:17:252:17 | {...} |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:257:9:259:9 | [finally: exception] {...} |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | enter M12 |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:243:13:253:13 | {...} |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:250:17:252:17 | {...} |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:257:9:259:9 | {...} |
| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | enter M13 |
| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:270:9:273:9 | [finally: exception] {...} |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | enter M13 |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:270:9:273:9 | {...} |
| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | enter Foreach |
diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected
index fd87b8db058..2c2e977ae12 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected
+++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected
@@ -1146,10 +1146,10 @@ nodeEnclosing
| CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:28:10:28:10 | M |
| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:28:10:28:10 | M |
| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:28:10:28:10 | M |
-| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:28:10:28:10 | M |
-| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M |
-| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:28:10:28:10 | M |
-| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:28:10:28:10 | M |
+| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:28:10:28:10 | M |
+| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M |
+| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:28:10:28:10 | M |
+| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:28:10:28:10 | M |
| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | M |
| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | M |
| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:28:10:28:10 | M |
@@ -1899,14 +1899,14 @@ nodeEnclosing
| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:11:13:11:38 | ...; | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:11:31:11:36 | "Try1" | Finally.cs:7:10:7:11 | M1 |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:7:10:7:11 | M1 |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | M1 |
-| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:7:10:7:11 | M1 |
+| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:15:13:15:41 | ...; | Finally.cs:7:10:7:11 | M1 |
-| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:7:10:7:11 | M1 |
+| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:15:31:15:39 | "Finally" | Finally.cs:7:10:7:11 | M1 |
-| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:7:10:7:11 | M1 |
+| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | M2 |
@@ -1931,27 +1931,23 @@ nodeEnclosing
| Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:34:21:34:24 | true | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:49:9:51:9 | {...} | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:50:13:50:41 | ...; | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:50:31:50:39 | "Finally" | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | M3 |
@@ -1976,21 +1972,17 @@ nodeEnclosing
| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:54:10:54:11 | M3 |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:69:9:71:9 | {...} | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:54:10:54:11 | M3 |
+| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:70:13:70:41 | ...; | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:54:10:54:11 | M3 |
+| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:70:31:70:39 | "Finally" | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:54:10:54:11 | M3 |
+| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | M4 |
@@ -2058,37 +2050,37 @@ nodeEnclosing
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:23 | ...-- | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:24 | ...; | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:103:10:103:11 | exit M5 | Finally.cs:103:10:103:11 | M5 |
@@ -2112,115 +2104,71 @@ nodeEnclosing
| Finally.cs:109:33:109:33 | 1 | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:23 | this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:35:114:35 | 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:35:115:39 | this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:21 | this access | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:32:116:32 | 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:17:117:37 | ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:35:117:35 | 1 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | M6 |
| Finally.cs:121:10:121:11 | exit M6 | Finally.cs:121:10:121:11 | M6 |
@@ -2243,14 +2191,14 @@ nodeEnclosing
| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:137:13:137:37 | ...; | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:137:31:137:35 | "Try" | Finally.cs:133:10:133:11 | M7 |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:133:10:133:11 | M7 |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:140:9:143:9 | {...} | Finally.cs:133:10:133:11 | M7 |
-| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:133:10:133:11 | M7 |
+| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | M7 |
-| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 |
+| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:141:41:141:42 | "" | Finally.cs:133:10:133:11 | M7 |
-| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:133:10:133:11 | M7 |
+| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | M8 |
@@ -2264,108 +2212,74 @@ nodeEnclosing
| Finally.cs:151:25:151:28 | null | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:157:13:160:13 | {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:162:13:164:13 | {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:163:17:163:43 | ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:163:35:163:41 | access to array element | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:163:40:163:40 | 0 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:166:13:168:13 | {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:167:17:167:38 | ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:167:35:167:36 | "" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | ExceptionA |
| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | ExceptionA |
| Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | ExceptionA |
@@ -2393,51 +2307,35 @@ nodeEnclosing
| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | M10 |
@@ -2449,84 +2347,48 @@ nodeEnclosing
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:204:13:206:13 | {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:211:13:211:16 | this access | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:211:26:211:28 | "0" | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:213:9:213:12 | this access | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | M10 |
@@ -2565,78 +2427,47 @@ nodeEnclosing
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:245:17:248:17 | {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:251:21:251:55 | ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:254:13:254:45 | ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:258:13:258:47 | ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:260:9:260:34 | ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:260:27:260:32 | "Done" | Finally.cs:233:10:233:12 | M12 |
@@ -2650,24 +2481,24 @@ nodeEnclosing
| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:267:13:267:35 | ...; | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:267:31:267:33 | "1" | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:271:13:271:35 | ...; | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:271:31:271:33 | "3" | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:272:13:272:18 | ... + ... | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:272:13:272:19 | ...; | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:272:18:272:18 | 3 | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:263:10:263:12 | M13 |
| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | Foreach |
| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | Foreach |
| Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | Foreach |
@@ -5296,11 +5127,10 @@ blockEnclosing
| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | Finally |
| Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | M1 |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:7:10:7:11 | M1 |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:7:10:7:11 | M1 |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:19:10:19:11 | exit M2 | Finally.cs:19:10:19:11 | M2 |
-| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:24:13:24:19 | return ...; | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 |
@@ -5311,9 +5141,9 @@ blockEnclosing
| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:19:10:19:11 | M2 |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:19:10:19:11 | M2 |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:54:10:54:11 | exit M3 | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:54:10:54:11 | exit M3 (normal) | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:59:13:59:19 | return ...; | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | Finally.cs:54:10:54:11 | M3 |
@@ -5322,7 +5152,7 @@ blockEnclosing
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:54:10:54:11 | M3 |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:54:10:54:11 | M3 |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:54:10:54:11 | M3 |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:74:10:74:11 | exit M4 | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | M4 |
@@ -5343,12 +5173,12 @@ blockEnclosing
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:74:10:74:11 | M4 |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:74:10:74:11 | M4 |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:74:10:74:11 | M4 |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:103:10:103:11 | M5 |
@@ -5363,38 +5193,27 @@ blockEnclosing
| Finally.cs:109:33:109:33 | 1 | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:17:117:37 | ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:103:10:103:11 | M5 |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:103:10:103:11 | M5 |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:103:10:103:11 | M5 |
| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:121:10:121:11 | M6 |
| Finally.cs:133:10:133:11 | enter M7 | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:133:10:133:11 | exit M7 (abnormal) | Finally.cs:133:10:133:11 | M7 |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:133:10:133:11 | M7 |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:140:9:143:9 | {...} | Finally.cs:133:10:133:11 | M7 |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:147:10:147:11 | exit M8 | Finally.cs:147:10:147:11 | M8 |
@@ -5402,34 +5221,25 @@ blockEnclosing
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:162:13:164:13 | {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:147:10:147:11 | M8 |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:147:10:147:11 | M8 |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:147:10:147:11 | M8 |
| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | ExceptionA |
| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | ExceptionB |
@@ -5441,86 +5251,63 @@ blockEnclosing
| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:176:10:176:11 | M9 |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:176:10:176:11 | M9 |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:195:10:195:12 | exit M10 | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:195:10:195:12 | M10 |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:195:10:195:12 | M10 |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:195:10:195:12 | M10 |
| Finally.cs:216:10:216:12 | enter M11 | Finally.cs:216:10:216:12 | M11 |
| Finally.cs:222:9:225:9 | catch {...} | Finally.cs:216:10:216:12 | M11 |
| Finally.cs:227:9:229:9 | {...} | Finally.cs:216:10:216:12 | M11 |
| Finally.cs:233:10:233:12 | enter M12 | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:233:10:233:12 | exit M12 | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:233:10:233:12 | exit M12 (abnormal) | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:233:10:233:12 | M12 |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:233:10:233:12 | M12 |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:233:10:233:12 | M12 |
| Finally.cs:263:10:263:12 | enter M13 | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | M13 |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:263:10:263:12 | M13 |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:263:10:263:12 | M13 |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:263:10:263:12 | M13 |
| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | Foreach |
| Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | M1 |
diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected
index 1664d77538a..8726e77130b 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected
+++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected
@@ -372,7 +372,7 @@
| Assert.cs:16:20:16:32 | ... ? ... : ... | Assert.cs:16:16:16:32 | String s = ... | |
| Assert.cs:16:24:16:27 | null | Assert.cs:16:20:16:32 | ... ? ... : ... | |
| Assert.cs:16:31:16:32 | "" | Assert.cs:16:20:16:32 | ... ? ... : ... | |
-| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | Assert.cs:14:10:14:11 | exit M2 (abnormal) | exception |
| Assert.cs:17:9:17:24 | [assertion success] call to method IsNull | Assert.cs:18:9:18:36 | ...; | |
| Assert.cs:17:9:17:25 | ...; | Assert.cs:17:23:17:23 | access to local variable s | |
| Assert.cs:17:23:17:23 | access to local variable s | Assert.cs:17:9:17:24 | [assertion failure] call to method IsNull | non-null |
@@ -392,7 +392,7 @@
| Assert.cs:23:20:23:32 | ... ? ... : ... | Assert.cs:23:16:23:32 | String s = ... | |
| Assert.cs:23:24:23:27 | null | Assert.cs:23:20:23:32 | ... ? ... : ... | |
| Assert.cs:23:31:23:32 | "" | Assert.cs:23:20:23:32 | ... ? ... : ... | |
-| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | Assert.cs:21:10:21:11 | exit M3 (abnormal) | exception |
| Assert.cs:24:9:24:27 | [assertion success] call to method IsNotNull | Assert.cs:25:9:25:36 | ...; | |
| Assert.cs:24:9:24:28 | ...; | Assert.cs:24:26:24:26 | access to local variable s | |
| Assert.cs:24:26:24:26 | access to local variable s | Assert.cs:24:9:24:27 | [assertion failure] call to method IsNotNull | null |
@@ -412,7 +412,7 @@
| Assert.cs:30:20:30:32 | ... ? ... : ... | Assert.cs:30:16:30:32 | String s = ... | |
| Assert.cs:30:24:30:27 | null | Assert.cs:30:20:30:32 | ... ? ... : ... | |
| Assert.cs:30:31:30:32 | "" | Assert.cs:30:20:30:32 | ... ? ... : ... | |
-| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:31:9:31:32 | [assertion failure] call to method IsTrue | Assert.cs:28:10:28:11 | exit M4 (abnormal) | exception |
| Assert.cs:31:9:31:32 | [assertion success] call to method IsTrue | Assert.cs:32:9:32:36 | ...; | |
| Assert.cs:31:9:31:33 | ...; | Assert.cs:31:23:31:23 | access to local variable s | |
| Assert.cs:31:23:31:23 | access to local variable s | Assert.cs:31:28:31:31 | null | |
@@ -434,7 +434,7 @@
| Assert.cs:37:20:37:32 | ... ? ... : ... | Assert.cs:37:16:37:32 | String s = ... | |
| Assert.cs:37:24:37:27 | null | Assert.cs:37:20:37:32 | ... ? ... : ... | |
| Assert.cs:37:31:37:32 | "" | Assert.cs:37:20:37:32 | ... ? ... : ... | |
-| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:38:9:38:32 | [assertion failure] call to method IsTrue | Assert.cs:35:10:35:11 | exit M5 (abnormal) | exception |
| Assert.cs:38:9:38:32 | [assertion success] call to method IsTrue | Assert.cs:39:9:39:36 | ...; | |
| Assert.cs:38:9:38:33 | ...; | Assert.cs:38:23:38:23 | access to local variable s | |
| Assert.cs:38:23:38:23 | access to local variable s | Assert.cs:38:28:38:31 | null | |
@@ -456,7 +456,7 @@
| Assert.cs:44:20:44:32 | ... ? ... : ... | Assert.cs:44:16:44:32 | String s = ... | |
| Assert.cs:44:24:44:27 | null | Assert.cs:44:20:44:32 | ... ? ... : ... | |
| Assert.cs:44:31:44:32 | "" | Assert.cs:44:20:44:32 | ... ? ... : ... | |
-| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:45:9:45:33 | [assertion failure] call to method IsFalse | Assert.cs:42:10:42:11 | exit M6 (abnormal) | exception |
| Assert.cs:45:9:45:33 | [assertion success] call to method IsFalse | Assert.cs:46:9:46:36 | ...; | |
| Assert.cs:45:9:45:34 | ...; | Assert.cs:45:24:45:24 | access to local variable s | |
| Assert.cs:45:24:45:24 | access to local variable s | Assert.cs:45:29:45:32 | null | |
@@ -478,7 +478,7 @@
| Assert.cs:51:20:51:32 | ... ? ... : ... | Assert.cs:51:16:51:32 | String s = ... | |
| Assert.cs:51:24:51:27 | null | Assert.cs:51:20:51:32 | ... ? ... : ... | |
| Assert.cs:51:31:51:32 | "" | Assert.cs:51:20:51:32 | ... ? ... : ... | |
-| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:52:9:52:33 | [assertion failure] call to method IsFalse | Assert.cs:49:10:49:11 | exit M7 (abnormal) | exception |
| Assert.cs:52:9:52:33 | [assertion success] call to method IsFalse | Assert.cs:53:9:53:36 | ...; | |
| Assert.cs:52:9:52:34 | ...; | Assert.cs:52:24:52:24 | access to local variable s | |
| Assert.cs:52:24:52:24 | access to local variable s | Assert.cs:52:29:52:32 | null | |
@@ -502,7 +502,7 @@
| Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | Assert.cs:58:16:58:32 | [b (line 56): true] String s = ... | |
| Assert.cs:58:24:58:27 | [b (line 56): true] null | Assert.cs:58:20:58:32 | [b (line 56): true] ... ? ... : ... | |
| Assert.cs:58:31:58:32 | [b (line 56): false] "" | Assert.cs:58:20:58:32 | [b (line 56): false] ... ? ... : ... | |
-| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:59:9:59:37 | [assertion failure] call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 (abnormal) | exception |
| Assert.cs:59:9:59:37 | [assertion success] call to method IsTrue | Assert.cs:60:9:60:36 | ...; | |
| Assert.cs:59:9:59:38 | [b (line 56): false] ...; | Assert.cs:59:23:59:23 | [b (line 56): false] access to local variable s | |
| Assert.cs:59:9:59:38 | [b (line 56): true] ...; | Assert.cs:59:23:59:23 | [b (line 56): true] access to local variable s | |
@@ -535,7 +535,7 @@
| Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | Assert.cs:65:16:65:32 | [b (line 63): true] String s = ... | |
| Assert.cs:65:24:65:27 | [b (line 63): true] null | Assert.cs:65:20:65:32 | [b (line 63): true] ... ? ... : ... | |
| Assert.cs:65:31:65:32 | [b (line 63): false] "" | Assert.cs:65:20:65:32 | [b (line 63): false] ... ? ... : ... | |
-| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:66:9:66:38 | [assertion failure] call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 (abnormal) | exception |
| Assert.cs:66:9:66:38 | [assertion success] call to method IsFalse | Assert.cs:67:9:67:36 | ...; | |
| Assert.cs:66:9:66:39 | [b (line 63): false] ...; | Assert.cs:66:24:66:24 | [b (line 63): false] access to local variable s | |
| Assert.cs:66:9:66:39 | [b (line 63): true] ...; | Assert.cs:66:24:66:24 | [b (line 63): true] access to local variable s | |
@@ -568,7 +568,7 @@
| Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | Assert.cs:72:16:72:32 | [b (line 70): true] String s = ... | |
| Assert.cs:72:24:72:27 | [b (line 70): true] null | Assert.cs:72:20:72:32 | [b (line 70): true] ... ? ... : ... | |
| Assert.cs:72:31:72:32 | [b (line 70): false] "" | Assert.cs:72:20:72:32 | [b (line 70): false] ... ? ... : ... | |
-| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:73:9:73:37 | [assertion failure] call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 (abnormal) | exception |
| Assert.cs:73:9:73:37 | [assertion success] call to method IsTrue | Assert.cs:74:9:74:36 | ...; | |
| Assert.cs:73:9:73:38 | [b (line 70): false] ...; | Assert.cs:73:23:73:23 | [b (line 70): false] access to local variable s | |
| Assert.cs:73:9:73:38 | [b (line 70): true] ...; | Assert.cs:73:23:73:23 | [b (line 70): true] access to local variable s | |
@@ -601,7 +601,7 @@
| Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | Assert.cs:79:16:79:32 | [b (line 77): true] String s = ... | |
| Assert.cs:79:24:79:27 | [b (line 77): true] null | Assert.cs:79:20:79:32 | [b (line 77): true] ... ? ... : ... | |
| Assert.cs:79:31:79:32 | [b (line 77): false] "" | Assert.cs:79:20:79:32 | [b (line 77): false] ... ? ... : ... | |
-| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:80:9:80:38 | [assertion failure] call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 (abnormal) | exception |
| Assert.cs:80:9:80:38 | [assertion success] call to method IsFalse | Assert.cs:81:9:81:36 | ...; | |
| Assert.cs:80:9:80:39 | [b (line 77): false] ...; | Assert.cs:80:24:80:24 | [b (line 77): false] access to local variable s | |
| Assert.cs:80:9:80:39 | [b (line 77): true] ...; | Assert.cs:80:24:80:24 | [b (line 77): true] access to local variable s | |
@@ -666,8 +666,8 @@
| Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:90:9:90:25 | [b (line 84): true] ... = ... | |
| Assert.cs:90:17:90:20 | [b (line 84): true] null | Assert.cs:90:13:90:25 | [b (line 84): true] ... ? ... : ... | |
| Assert.cs:90:24:90:25 | [b (line 84): false] "" | Assert.cs:90:13:90:25 | [b (line 84): false] ... ? ... : ... | |
-| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
-| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): false] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
+| Assert.cs:91:9:91:24 | [assertion failure, b (line 84): true] call to method IsNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:91:9:91:24 | [assertion success, b (line 84): false] call to method IsNull | Assert.cs:92:9:92:36 | [b (line 84): false] ...; | |
| Assert.cs:91:9:91:24 | [assertion success, b (line 84): true] call to method IsNull | Assert.cs:92:9:92:36 | [b (line 84): true] ...; | |
| Assert.cs:91:9:91:25 | [b (line 84): false] ...; | Assert.cs:91:23:91:23 | [b (line 84): false] access to local variable s | |
@@ -694,8 +694,8 @@
| Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:94:9:94:25 | [b (line 84): true] ... = ... | |
| Assert.cs:94:17:94:20 | [b (line 84): true] null | Assert.cs:94:13:94:25 | [b (line 84): true] ... ? ... : ... | |
| Assert.cs:94:24:94:25 | [b (line 84): false] "" | Assert.cs:94:13:94:25 | [b (line 84): false] ... ? ... : ... | |
-| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
-| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): false] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
+| Assert.cs:95:9:95:27 | [assertion failure, b (line 84): true] call to method IsNotNull | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:95:9:95:27 | [assertion success, b (line 84): false] call to method IsNotNull | Assert.cs:96:9:96:36 | [b (line 84): false] ...; | |
| Assert.cs:95:9:95:27 | [assertion success, b (line 84): true] call to method IsNotNull | Assert.cs:96:9:96:36 | [b (line 84): true] ...; | |
| Assert.cs:95:9:95:28 | [b (line 84): false] ...; | Assert.cs:95:26:95:26 | [b (line 84): false] access to local variable s | |
@@ -722,8 +722,8 @@
| Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:98:9:98:25 | [b (line 84): true] ... = ... | |
| Assert.cs:98:17:98:20 | [b (line 84): true] null | Assert.cs:98:13:98:25 | [b (line 84): true] ... ? ... : ... | |
| Assert.cs:98:24:98:25 | [b (line 84): false] "" | Assert.cs:98:13:98:25 | [b (line 84): false] ... ? ... : ... | |
-| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
-| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
+| Assert.cs:99:9:99:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:99:9:99:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:100:9:100:36 | [b (line 84): false] ...; | |
| Assert.cs:99:9:99:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:100:9:100:36 | [b (line 84): true] ...; | |
| Assert.cs:99:9:99:33 | [b (line 84): false] ...; | Assert.cs:99:23:99:23 | [b (line 84): false] access to local variable s | |
@@ -754,8 +754,8 @@
| Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:102:9:102:25 | [b (line 84): true] ... = ... | |
| Assert.cs:102:17:102:20 | [b (line 84): true] null | Assert.cs:102:13:102:25 | [b (line 84): true] ... ? ... : ... | |
| Assert.cs:102:24:102:25 | [b (line 84): false] "" | Assert.cs:102:13:102:25 | [b (line 84): false] ... ? ... : ... | |
-| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
-| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
+| Assert.cs:103:9:103:32 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:103:9:103:32 | [assertion success, b (line 84): false] call to method IsTrue | Assert.cs:104:9:104:36 | [b (line 84): false] ...; | |
| Assert.cs:103:9:103:32 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:104:9:104:36 | [b (line 84): true] ...; | |
| Assert.cs:103:9:103:33 | [b (line 84): false] ...; | Assert.cs:103:23:103:23 | [b (line 84): false] access to local variable s | |
@@ -786,8 +786,8 @@
| Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:106:9:106:25 | [b (line 84): true] ... = ... | |
| Assert.cs:106:17:106:20 | [b (line 84): true] null | Assert.cs:106:13:106:25 | [b (line 84): true] ... ? ... : ... | |
| Assert.cs:106:24:106:25 | [b (line 84): false] "" | Assert.cs:106:13:106:25 | [b (line 84): false] ... ? ... : ... | |
-| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
-| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
+| Assert.cs:107:9:107:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:107:9:107:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:108:9:108:36 | [b (line 84): false] ...; | |
| Assert.cs:107:9:107:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:108:9:108:36 | [b (line 84): true] ...; | |
| Assert.cs:107:9:107:34 | [b (line 84): false] ...; | Assert.cs:107:24:107:24 | [b (line 84): false] access to local variable s | |
@@ -818,8 +818,8 @@
| Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:110:9:110:25 | [b (line 84): true] ... = ... | |
| Assert.cs:110:17:110:20 | [b (line 84): true] null | Assert.cs:110:13:110:25 | [b (line 84): true] ... ? ... : ... | |
| Assert.cs:110:24:110:25 | [b (line 84): false] "" | Assert.cs:110:13:110:25 | [b (line 84): false] ... ? ... : ... | |
-| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
-| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): false] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
+| Assert.cs:111:9:111:33 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:111:9:111:33 | [assertion success, b (line 84): false] call to method IsFalse | Assert.cs:112:9:112:36 | [b (line 84): false] ...; | |
| Assert.cs:111:9:111:33 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:112:9:112:36 | [b (line 84): true] ...; | |
| Assert.cs:111:9:111:34 | [b (line 84): false] ...; | Assert.cs:111:24:111:24 | [b (line 84): false] access to local variable s | |
@@ -850,8 +850,8 @@
| Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:114:9:114:25 | [b (line 84): true] ... = ... | |
| Assert.cs:114:17:114:20 | [b (line 84): true] null | Assert.cs:114:13:114:25 | [b (line 84): true] ... ? ... : ... | |
| Assert.cs:114:24:114:25 | [b (line 84): false] "" | Assert.cs:114:13:114:25 | [b (line 84): false] ... ? ... : ... | |
-| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
-| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): false] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
+| Assert.cs:115:9:115:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:115:9:115:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:116:9:116:36 | [b (line 84): true] ...; | |
| Assert.cs:115:9:115:38 | [b (line 84): false] ...; | Assert.cs:115:23:115:23 | [b (line 84): false] access to local variable s | |
| Assert.cs:115:9:115:38 | [b (line 84): true] ...; | Assert.cs:115:23:115:23 | [b (line 84): true] access to local variable s | |
@@ -877,7 +877,7 @@
| Assert.cs:118:13:118:13 | [b (line 84): true] access to parameter b | Assert.cs:118:17:118:20 | [b (line 84): true] null | true |
| Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:118:9:118:25 | [b (line 84): true] ... = ... | |
| Assert.cs:118:17:118:20 | [b (line 84): true] null | Assert.cs:118:13:118:25 | [b (line 84): true] ... ? ... : ... | |
-| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:119:9:119:39 | [assertion failure, b (line 84): true] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:119:9:119:39 | [assertion success, b (line 84): true] call to method IsFalse | Assert.cs:120:9:120:36 | [b (line 84): true] ...; | |
| Assert.cs:119:9:119:40 | [b (line 84): true] ...; | Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | |
| Assert.cs:119:24:119:24 | [b (line 84): true] access to local variable s | Assert.cs:119:29:119:32 | [b (line 84): true] null | |
@@ -897,7 +897,7 @@
| Assert.cs:122:13:122:13 | [b (line 84): true] access to parameter b | Assert.cs:122:17:122:20 | [b (line 84): true] null | true |
| Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:122:9:122:25 | [b (line 84): true] ... = ... | |
| Assert.cs:122:17:122:20 | [b (line 84): true] null | Assert.cs:122:13:122:25 | [b (line 84): true] ... ? ... : ... | |
-| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:123:9:123:37 | [assertion failure, b (line 84): true] call to method IsTrue | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:123:9:123:37 | [assertion success, b (line 84): true] call to method IsTrue | Assert.cs:124:9:124:36 | [b (line 84): true] ...; | |
| Assert.cs:123:9:123:38 | [b (line 84): true] ...; | Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | |
| Assert.cs:123:23:123:23 | [b (line 84): true] access to local variable s | Assert.cs:123:28:123:31 | [b (line 84): true] null | |
@@ -916,7 +916,7 @@
| Assert.cs:126:13:126:13 | [b (line 84): true] access to parameter b | Assert.cs:126:17:126:20 | [b (line 84): true] null | true |
| Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | Assert.cs:126:9:126:25 | [b (line 84): true] ... = ... | |
| Assert.cs:126:17:126:20 | [b (line 84): true] null | Assert.cs:126:13:126:25 | [b (line 84): true] ... ? ... : ... | |
-| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception(AssertFailedException) |
+| Assert.cs:127:9:127:39 | [assertion failure] call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 (abnormal) | exception |
| Assert.cs:127:9:127:39 | [assertion success] call to method IsFalse | Assert.cs:128:9:128:36 | ...; | |
| Assert.cs:127:9:127:40 | [b (line 84): true] ...; | Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | |
| Assert.cs:127:24:127:24 | [b (line 84): true] access to local variable s | Assert.cs:127:29:127:32 | [b (line 84): true] null | |
@@ -938,8 +938,8 @@
| Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 | |
| Assert.cs:138:10:138:12 | exit M13 (normal) | Assert.cs:138:10:138:12 | exit M13 | |
| Assert.cs:139:5:142:5 | {...} | Assert.cs:140:9:140:36 | ...; | |
-| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception(Exception) |
-| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception(Exception) |
+| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception |
+| Assert.cs:140:9:140:35 | [assertion failure] call to method AssertTrueFalse | Assert.cs:138:10:138:12 | exit M13 (abnormal) | exception |
| Assert.cs:140:9:140:35 | [assertion success] call to method AssertTrueFalse | Assert.cs:141:9:141:15 | return ...; | |
| Assert.cs:140:9:140:35 | this access | Assert.cs:140:25:140:26 | access to parameter b1 | |
| Assert.cs:140:9:140:36 | ...; | Assert.cs:140:9:140:35 | this access | |
@@ -1159,11 +1159,11 @@
| CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | |
| CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:31:9:34:9 | {...} | |
| CompileTimeOperators.cs:31:9:34:9 | {...} | CompileTimeOperators.cs:32:13:32:21 | goto ...; | |
-| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | goto(End) |
-| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | |
-| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | goto(End) |
-| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | |
-| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | |
+| CompileTimeOperators.cs:32:13:32:21 | goto ...; | CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | goto |
+| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | |
+| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:40:9:40:11 | End: | goto |
+| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | |
+| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | |
| CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:40:14:40:38 | ...; | |
| CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | |
| CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | |
@@ -1708,7 +1708,7 @@
| ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:21:5:24:5 | {...} | |
| ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | ExitMethods.cs:20:10:20:11 | exit M3 | |
| ExitMethods.cs:21:5:24:5 | {...} | ExitMethods.cs:22:9:22:26 | ...; | |
-| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | exception(ArgumentException), exception(Exception) |
+| ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | ExitMethods.cs:20:10:20:11 | exit M3 (abnormal) | exception |
| ExitMethods.cs:22:9:22:26 | ...; | ExitMethods.cs:22:21:22:24 | true | |
| ExitMethods.cs:22:21:22:24 | true | ExitMethods.cs:22:9:22:25 | call to method ErrorAlways | |
| ExitMethods.cs:26:10:26:11 | enter M4 | ExitMethods.cs:27:5:30:5 | {...} | |
@@ -1728,8 +1728,8 @@
| ExitMethods.cs:39:5:52:5 | {...} | ExitMethods.cs:40:9:51:9 | try {...} ... | |
| ExitMethods.cs:40:9:51:9 | try {...} ... | ExitMethods.cs:41:9:43:9 | {...} | |
| ExitMethods.cs:41:9:43:9 | {...} | ExitMethods.cs:42:13:42:31 | ...; | |
-| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | exception(ArgumentException) |
-| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | exception(Exception) |
+| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | exception |
+| ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | ExitMethods.cs:44:9:47:9 | [exception: Exception] catch (...) {...} | exception |
| ExitMethods.cs:42:13:42:31 | ...; | ExitMethods.cs:42:25:42:29 | false | |
| ExitMethods.cs:42:25:42:29 | false | ExitMethods.cs:42:13:42:30 | call to method ErrorAlways | |
| ExitMethods.cs:44:9:47:9 | [exception: ArgumentException] catch (...) {...} | ExitMethods.cs:45:9:47:9 | {...} | match |
@@ -1743,12 +1743,12 @@
| ExitMethods.cs:54:10:54:11 | enter M7 | ExitMethods.cs:55:5:58:5 | {...} | |
| ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | ExitMethods.cs:54:10:54:11 | exit M7 | |
| ExitMethods.cs:55:5:58:5 | {...} | ExitMethods.cs:56:9:56:23 | ...; | |
-| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | exception(Exception) |
+| ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | ExitMethods.cs:54:10:54:11 | exit M7 (abnormal) | exception |
| ExitMethods.cs:56:9:56:23 | ...; | ExitMethods.cs:56:9:56:22 | call to method ErrorAlways2 | |
| ExitMethods.cs:60:10:60:11 | enter M8 | ExitMethods.cs:61:5:64:5 | {...} | |
| ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | ExitMethods.cs:60:10:60:11 | exit M8 | |
| ExitMethods.cs:61:5:64:5 | {...} | ExitMethods.cs:62:9:62:23 | ...; | |
-| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | exception(Exception) |
+| ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | ExitMethods.cs:60:10:60:11 | exit M8 (abnormal) | exception |
| ExitMethods.cs:62:9:62:23 | ...; | ExitMethods.cs:62:9:62:22 | call to method ErrorAlways3 | |
| ExitMethods.cs:66:17:66:26 | enter ErrorMaybe | ExitMethods.cs:67:5:70:5 | {...} | |
| ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe | |
@@ -1757,7 +1757,7 @@
| ExitMethods.cs:68:9:69:34 | if (...) ... | ExitMethods.cs:68:13:68:13 | access to parameter b | |
| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (normal) | false |
| ExitMethods.cs:68:13:68:13 | access to parameter b | ExitMethods.cs:69:19:69:33 | object creation of type Exception | true |
-| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | exception(Exception) |
+| ExitMethods.cs:69:13:69:34 | throw ...; | ExitMethods.cs:66:17:66:26 | exit ErrorMaybe (abnormal) | exception |
| ExitMethods.cs:69:19:69:33 | object creation of type Exception | ExitMethods.cs:69:13:69:34 | throw ...; | |
| ExitMethods.cs:72:17:72:27 | enter ErrorAlways | ExitMethods.cs:73:5:78:5 | {...} | |
| ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | ExitMethods.cs:72:17:72:27 | exit ErrorAlways | |
@@ -1765,19 +1765,19 @@
| ExitMethods.cs:74:9:77:45 | if (...) ... | ExitMethods.cs:74:13:74:13 | access to parameter b | |
| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:75:19:75:33 | object creation of type Exception | true |
| ExitMethods.cs:74:13:74:13 | access to parameter b | ExitMethods.cs:77:41:77:43 | "b" | false |
-| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception(Exception) |
+| ExitMethods.cs:75:13:75:34 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception |
| ExitMethods.cs:75:19:75:33 | object creation of type Exception | ExitMethods.cs:75:13:75:34 | throw ...; | |
-| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception(ArgumentException) |
+| ExitMethods.cs:77:13:77:45 | throw ...; | ExitMethods.cs:72:17:72:27 | exit ErrorAlways (abnormal) | exception |
| ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | ExitMethods.cs:77:13:77:45 | throw ...; | |
| ExitMethods.cs:77:41:77:43 | "b" | ExitMethods.cs:77:19:77:44 | object creation of type ArgumentException | |
| ExitMethods.cs:80:17:80:28 | enter ErrorAlways2 | ExitMethods.cs:81:5:83:5 | {...} | |
| ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 | |
| ExitMethods.cs:81:5:83:5 | {...} | ExitMethods.cs:82:15:82:29 | object creation of type Exception | |
-| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | exception(Exception) |
+| ExitMethods.cs:82:9:82:30 | throw ...; | ExitMethods.cs:80:17:80:28 | exit ErrorAlways2 (abnormal) | exception |
| ExitMethods.cs:82:15:82:29 | object creation of type Exception | ExitMethods.cs:82:9:82:30 | throw ...; | |
| ExitMethods.cs:85:17:85:28 | enter ErrorAlways3 | ExitMethods.cs:85:41:85:55 | object creation of type Exception | |
| ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 | |
-| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | exception(Exception) |
+| ExitMethods.cs:85:35:85:55 | throw ... | ExitMethods.cs:85:17:85:28 | exit ErrorAlways3 (abnormal) | exception |
| ExitMethods.cs:85:41:85:55 | object creation of type Exception | ExitMethods.cs:85:35:85:55 | throw ... | |
| ExitMethods.cs:87:10:87:13 | enter Exit | ExitMethods.cs:88:5:90:5 | {...} | |
| ExitMethods.cs:87:10:87:13 | exit Exit (abnormal) | ExitMethods.cs:87:10:87:13 | exit Exit | |
@@ -1813,7 +1813,7 @@
| ExitMethods.cs:112:29:112:29 | (...) ... | ExitMethods.cs:112:33:112:37 | access to parameter input | |
| ExitMethods.cs:112:29:112:37 | ... / ... | ExitMethods.cs:112:16:112:76 | ... ? ... : ... | |
| ExitMethods.cs:112:33:112:37 | access to parameter input | ExitMethods.cs:112:29:112:37 | ... / ... | |
-| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | exception(ArgumentException) |
+| ExitMethods.cs:112:41:112:76 | throw ... | ExitMethods.cs:110:13:110:21 | exit ThrowExpr (abnormal) | exception |
| ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | ExitMethods.cs:112:41:112:76 | throw ... | |
| ExitMethods.cs:112:69:112:75 | "input" | ExitMethods.cs:112:47:112:76 | object creation of type ArgumentException | |
| ExitMethods.cs:115:16:115:34 | enter ExtensionMethodCall | ExitMethods.cs:116:5:118:5 | {...} | |
@@ -1830,26 +1830,26 @@
| ExitMethods.cs:120:17:120:32 | enter FailingAssertion | ExitMethods.cs:121:5:124:5 | {...} | |
| ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | ExitMethods.cs:120:17:120:32 | exit FailingAssertion | |
| ExitMethods.cs:121:5:124:5 | {...} | ExitMethods.cs:122:9:122:29 | ...; | |
-| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | exception(AssertFailedException) |
+| ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | ExitMethods.cs:120:17:120:32 | exit FailingAssertion (abnormal) | exception |
| ExitMethods.cs:122:9:122:29 | ...; | ExitMethods.cs:122:23:122:27 | false | |
| ExitMethods.cs:122:23:122:27 | false | ExitMethods.cs:122:9:122:28 | [assertion failure] call to method IsTrue | false |
| ExitMethods.cs:126:17:126:33 | enter FailingAssertion2 | ExitMethods.cs:127:5:130:5 | {...} | |
| ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 | |
| ExitMethods.cs:127:5:130:5 | {...} | ExitMethods.cs:128:9:128:27 | ...; | |
-| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | exception(AssertFailedException) |
+| ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | ExitMethods.cs:126:17:126:33 | exit FailingAssertion2 (abnormal) | exception |
| ExitMethods.cs:128:9:128:26 | this access | ExitMethods.cs:128:9:128:26 | call to method FailingAssertion | |
| ExitMethods.cs:128:9:128:27 | ...; | ExitMethods.cs:128:9:128:26 | this access | |
| ExitMethods.cs:132:10:132:20 | enter AssertFalse | ExitMethods.cs:132:48:132:48 | access to parameter b | |
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | |
| ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | ExitMethods.cs:132:10:132:20 | exit AssertFalse | |
-| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | exception(AssertFailedException) |
+| ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (abnormal) | exception |
| ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | ExitMethods.cs:132:10:132:20 | exit AssertFalse (normal) | |
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion failure] call to method IsFalse | true |
| ExitMethods.cs:132:48:132:48 | access to parameter b | ExitMethods.cs:132:33:132:49 | [assertion success] call to method IsFalse | false |
| ExitMethods.cs:134:17:134:33 | enter FailingAssertion3 | ExitMethods.cs:135:5:138:5 | {...} | |
| ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 | |
| ExitMethods.cs:135:5:138:5 | {...} | ExitMethods.cs:136:9:136:26 | ...; | |
-| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | exception(AssertFailedException) |
+| ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | ExitMethods.cs:134:17:134:33 | exit FailingAssertion3 (abnormal) | exception |
| ExitMethods.cs:136:9:136:25 | this access | ExitMethods.cs:136:21:136:24 | true | |
| ExitMethods.cs:136:9:136:26 | ...; | ExitMethods.cs:136:9:136:25 | this access | |
| ExitMethods.cs:136:21:136:24 | true | ExitMethods.cs:136:9:136:25 | [assertion failure] call to method AssertFalse | true |
@@ -1859,11 +1859,11 @@
| ExitMethods.cs:142:9:145:53 | if (...) ... | ExitMethods.cs:142:13:142:13 | access to parameter b | |
| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:143:13:143:43 | ...; | true |
| ExitMethods.cs:142:13:142:13 | access to parameter b | ExitMethods.cs:145:13:145:53 | ...; | false |
-| ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception(ArgumentException) |
+| ExitMethods.cs:143:13:143:42 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception |
| ExitMethods.cs:143:13:143:43 | ...; | ExitMethods.cs:143:41:143:41 | access to parameter e | |
| ExitMethods.cs:143:41:143:41 | access to parameter e | ExitMethods.cs:143:13:143:42 | call to method Throw | |
| ExitMethods.cs:145:13:145:44 | call to method Capture | ExitMethods.cs:145:13:145:52 | call to method Throw | |
-| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception(Exception) |
+| ExitMethods.cs:145:13:145:52 | call to method Throw | ExitMethods.cs:140:17:140:42 | exit ExceptionDispatchInfoThrow (abnormal) | exception |
| ExitMethods.cs:145:13:145:53 | ...; | ExitMethods.cs:145:43:145:43 | access to parameter e | |
| ExitMethods.cs:145:43:145:43 | access to parameter e | ExitMethods.cs:145:13:145:44 | call to method Capture | |
| Extensions.cs:5:23:5:29 | enter ToInt32 | Extensions.cs:6:5:8:5 | {...} | |
@@ -1912,18 +1912,18 @@
| Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... | |
| Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:10:9:12:9 | {...} | |
| Finally.cs:10:9:12:9 | {...} | Finally.cs:11:13:11:38 | ...; | |
-| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | [finally: exception] {...} | exception |
| Finally.cs:11:13:11:37 | call to method WriteLine | Finally.cs:14:9:16:9 | {...} | |
| Finally.cs:11:13:11:38 | ...; | Finally.cs:11:31:11:36 | "Try1" | |
| Finally.cs:11:31:11:36 | "Try1" | Finally.cs:11:13:11:37 | call to method WriteLine | |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:15:13:15:41 | [finally: exception] ...; | |
| Finally.cs:14:9:16:9 | {...} | Finally.cs:15:13:15:41 | ...; | |
-| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | exception(Exception) |
+| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (abnormal) | exception |
| Finally.cs:15:13:15:40 | call to method WriteLine | Finally.cs:7:10:7:11 | exit M1 (normal) | |
| Finally.cs:15:13:15:41 | ...; | Finally.cs:15:31:15:39 | "Finally" | |
-| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | |
+| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:15:31:15:39 | [finally: exception] "Finally" | |
| Finally.cs:15:31:15:39 | "Finally" | Finally.cs:15:13:15:40 | call to method WriteLine | |
-| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | |
+| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | |
| Finally.cs:19:10:19:11 | enter M2 | Finally.cs:20:5:52:5 | {...} | |
| Finally.cs:19:10:19:11 | exit M2 (abnormal) | Finally.cs:19:10:19:11 | exit M2 | |
| Finally.cs:19:10:19:11 | exit M2 (normal) | Finally.cs:19:10:19:11 | exit M2 | |
@@ -1931,7 +1931,7 @@
| Finally.cs:21:9:51:9 | try {...} ... | Finally.cs:22:9:25:9 | {...} | |
| Finally.cs:22:9:25:9 | {...} | Finally.cs:23:13:23:38 | ...; | |
| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:24:13:24:19 | return ...; | |
-| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | exception(Exception) |
+| Finally.cs:23:13:23:37 | call to method WriteLine | Finally.cs:26:9:29:9 | [exception: Exception] catch (...) {...} | exception |
| Finally.cs:23:13:23:38 | ...; | Finally.cs:23:31:23:36 | "Try2" | |
| Finally.cs:23:31:23:36 | "Try2" | Finally.cs:23:13:23:37 | call to method WriteLine | |
| Finally.cs:24:13:24:19 | return ...; | Finally.cs:49:9:51:9 | [finally: return] {...} | return |
@@ -1940,7 +1940,7 @@
| Finally.cs:26:38:26:39 | [exception: Exception] IOException ex | Finally.cs:26:48:26:51 | [exception: Exception] true | |
| Finally.cs:26:48:26:51 | [exception: Exception] true | Finally.cs:27:9:29:9 | {...} | true |
| Finally.cs:27:9:29:9 | {...} | Finally.cs:28:13:28:18 | throw ...; | |
-| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | exception(IOException) |
+| Finally.cs:28:13:28:18 | throw ...; | Finally.cs:49:9:51:9 | [finally: exception] {...} | exception |
| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | match |
| Finally.cs:30:9:40:9 | [exception: Exception] catch (...) {...} | Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | no-match |
| Finally.cs:30:41:30:42 | [exception: Exception] ArgumentException ex | Finally.cs:31:9:40:9 | {...} | |
@@ -1949,28 +1949,24 @@
| Finally.cs:33:13:35:13 | {...} | Finally.cs:34:17:34:32 | if (...) ... | |
| Finally.cs:34:17:34:32 | if (...) ... | Finally.cs:34:21:34:24 | true | |
| Finally.cs:34:21:34:24 | true | Finally.cs:34:27:34:32 | throw ...; | true |
-| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | exception(ArgumentException) |
-| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | |
-| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | |
-| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | |
+| Finally.cs:34:27:34:32 | throw ...; | Finally.cs:37:13:39:13 | [finally: exception] {...} | exception |
+| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | |
+| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:49:9:51:9 | [finally: exception] {...} | exception |
+| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:38:17:38:44 | [finally: exception] throw ...; | |
+| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | |
| Finally.cs:41:9:43:9 | [exception: Exception] catch (...) {...} | Finally.cs:42:9:43:9 | {...} | match |
| Finally.cs:42:9:43:9 | {...} | Finally.cs:49:9:51:9 | {...} | |
-| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | |
-| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:50:13:50:41 | [finally: exception] ...; | |
| Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:50:13:50:41 | [finally: return] ...; | |
| Finally.cs:49:9:51:9 | {...} | Finally.cs:50:13:50:41 | ...; | |
-| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception(Exception) |
-| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception(IOException) |
+| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (abnormal) | exception |
| Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (normal) | return |
| Finally.cs:50:13:50:40 | call to method WriteLine | Finally.cs:19:10:19:11 | exit M2 (normal) | |
| Finally.cs:50:13:50:41 | ...; | Finally.cs:50:31:50:39 | "Finally" | |
-| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | |
-| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | |
+| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:50:31:50:39 | [finally: exception] "Finally" | |
| Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:50:31:50:39 | [finally: return] "Finally" | |
| Finally.cs:50:31:50:39 | "Finally" | Finally.cs:50:13:50:40 | call to method WriteLine | |
-| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | |
-| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | |
+| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | |
| Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | |
| Finally.cs:54:10:54:11 | enter M3 | Finally.cs:55:5:72:5 | {...} | |
| Finally.cs:54:10:54:11 | exit M3 (abnormal) | Finally.cs:54:10:54:11 | exit M3 | |
@@ -1979,7 +1975,7 @@
| Finally.cs:56:9:71:9 | try {...} ... | Finally.cs:57:9:60:9 | {...} | |
| Finally.cs:57:9:60:9 | {...} | Finally.cs:58:13:58:38 | ...; | |
| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:59:13:59:19 | return ...; | |
-| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | exception(Exception) |
+| Finally.cs:58:13:58:37 | call to method WriteLine | Finally.cs:61:9:64:9 | [exception: Exception] catch (...) {...} | exception |
| Finally.cs:58:13:58:38 | ...; | Finally.cs:58:31:58:36 | "Try3" | |
| Finally.cs:58:31:58:36 | "Try3" | Finally.cs:58:13:58:37 | call to method WriteLine | |
| Finally.cs:59:13:59:19 | return ...; | Finally.cs:69:9:71:9 | [finally: return] {...} | return |
@@ -1988,30 +1984,26 @@
| Finally.cs:61:38:61:39 | [exception: Exception] IOException ex | Finally.cs:61:48:61:51 | [exception: Exception] true | |
| Finally.cs:61:48:61:51 | [exception: Exception] true | Finally.cs:62:9:64:9 | {...} | true |
| Finally.cs:62:9:64:9 | {...} | Finally.cs:63:13:63:18 | throw ...; | |
-| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | exception(IOException) |
+| Finally.cs:63:13:63:18 | throw ...; | Finally.cs:69:9:71:9 | [finally: exception] {...} | exception |
| Finally.cs:65:9:67:9 | [exception: Exception] catch (...) {...} | Finally.cs:65:26:65:26 | [exception: Exception] Exception e | match |
| Finally.cs:65:26:65:26 | [exception: Exception] Exception e | Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | |
| Finally.cs:65:35:65:35 | [exception: Exception] access to local variable e | Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | |
| Finally.cs:65:35:65:43 | [exception: Exception] access to property Message | Finally.cs:65:48:65:51 | [exception: Exception] null | |
| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:66:9:67:9 | {...} | true |
-| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | Finally.cs:69:9:71:9 | [finally: exception] {...} | exception |
| Finally.cs:65:48:65:51 | [exception: Exception] null | Finally.cs:65:35:65:51 | [exception: Exception] ... != ... | |
| Finally.cs:66:9:67:9 | {...} | Finally.cs:69:9:71:9 | {...} | |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | |
-| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:70:13:70:41 | [finally: exception] ...; | |
| Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:70:13:70:41 | [finally: return] ...; | |
| Finally.cs:69:9:71:9 | {...} | Finally.cs:70:13:70:41 | ...; | |
-| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception(Exception) |
-| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception(IOException) |
+| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (abnormal) | exception |
| Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (normal) | return |
| Finally.cs:70:13:70:40 | call to method WriteLine | Finally.cs:54:10:54:11 | exit M3 (normal) | |
| Finally.cs:70:13:70:41 | ...; | Finally.cs:70:31:70:39 | "Finally" | |
-| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | |
-| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | |
+| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:70:31:70:39 | [finally: exception] "Finally" | |
| Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:70:31:70:39 | [finally: return] "Finally" | |
| Finally.cs:70:31:70:39 | "Finally" | Finally.cs:70:13:70:40 | call to method WriteLine | |
-| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | |
-| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | |
+| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | |
| Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | |
| Finally.cs:74:10:74:11 | enter M4 | Finally.cs:75:5:101:5 | {...} | |
| Finally.cs:74:10:74:11 | exit M4 (abnormal) | Finally.cs:74:10:74:11 | exit M4 | |
@@ -2078,49 +2070,49 @@
| Finally.cs:92:30:92:30 | [finally: break] 3 | Finally.cs:92:25:92:30 | [finally: break] ... == ... | |
| Finally.cs:92:30:92:30 | [finally: continue] 3 | Finally.cs:92:25:92:30 | [finally: continue] ... == ... | |
| Finally.cs:92:30:92:30 | [finally: return] 3 | Finally.cs:92:25:92:30 | [finally: return] ... == ... | |
-| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:93:25:93:46 | [finally: break] throw ...; | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | exception |
+| Finally.cs:93:25:93:46 | [finally: continue] throw ...; | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | exception |
+| Finally.cs:93:25:93:46 | [finally: return] throw ...; | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | exception |
+| Finally.cs:93:25:93:46 | throw ...; | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | exception |
| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: break] throw ...; | |
-| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | exception |
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: continue] throw ...; | |
-| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | exception |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:93:25:93:46 | [finally: return] throw ...; | |
-| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | exception |
| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:93:25:93:46 | throw ...; | |
-| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | |
+| Finally.cs:93:31:93:45 | object creation of type Exception | Finally.cs:96:17:98:17 | [finally(1): exception] {...} | exception |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally(1): exception] ...; | |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:97:21:97:24 | [finally: break] ...; | |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:97:21:97:24 | [finally: continue] ...; | |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:97:21:97:24 | [finally: return] ...; | |
| Finally.cs:96:17:98:17 | {...} | Finally.cs:97:21:97:24 | ...; | |
-| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | |
-| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | |
+| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | |
+| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | |
| Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:97:21:97:23 | [finally: break] ...-- | |
-| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | |
+| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | |
| Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:97:21:97:23 | [finally: continue] ...-- | |
-| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | |
+| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | |
| Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:97:21:97:23 | [finally: return] ...-- | |
| Finally.cs:97:21:97:21 | access to local variable i | Finally.cs:97:21:97:23 | ...-- | |
| Finally.cs:97:21:97:23 | ...-- | Finally.cs:77:16:77:16 | access to local variable i | |
-| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) |
-| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) |
+| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception |
+| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception |
| Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:74:10:74:11 | exit M4 (normal) | break |
-| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) |
+| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception |
| Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:77:16:77:16 | access to local variable i | continue |
-| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception(Exception) |
+| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:74:10:74:11 | exit M4 (abnormal) | exception |
| Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:74:10:74:11 | exit M4 (normal) | return |
| Finally.cs:97:21:97:24 | ...; | Finally.cs:97:21:97:21 | access to local variable i | |
-| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | |
-| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | |
+| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | |
+| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | |
| Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:97:21:97:21 | [finally: break] access to local variable i | |
-| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | |
+| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | |
| Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | |
-| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | |
+| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | |
| Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:97:21:97:21 | [finally: return] access to local variable i | |
| Finally.cs:103:10:103:11 | enter M5 | Finally.cs:104:5:119:5 | {...} | |
| Finally.cs:103:10:103:11 | exit M5 (abnormal) | Finally.cs:103:10:103:11 | exit M5 | |
@@ -2130,147 +2122,97 @@
| Finally.cs:106:9:111:9 | {...} | Finally.cs:107:13:108:23 | if (...) ... | |
| Finally.cs:107:13:108:23 | if (...) ... | Finally.cs:107:17:107:21 | this access | |
| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:107:17:107:28 | access to property Length | |
-| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) |
+| Finally.cs:107:17:107:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception |
| Finally.cs:107:17:107:21 | this access | Finally.cs:107:17:107:21 | access to field Field | |
| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:107:33:107:33 | 0 | |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) |
+| Finally.cs:107:17:107:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception |
| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:108:17:108:23 | return ...; | true |
| Finally.cs:107:17:107:33 | ... == ... | Finally.cs:109:13:110:49 | if (...) ... | false |
| Finally.cs:107:33:107:33 | 0 | Finally.cs:107:17:107:33 | ... == ... | |
| Finally.cs:108:17:108:23 | return ...; | Finally.cs:113:9:118:9 | [finally: return] {...} | return |
| Finally.cs:109:13:110:49 | if (...) ... | Finally.cs:109:17:109:21 | this access | |
| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:109:17:109:28 | access to property Length | |
-| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) |
+| Finally.cs:109:17:109:21 | access to field Field | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception |
| Finally.cs:109:17:109:21 | this access | Finally.cs:109:17:109:21 | access to field Field | |
| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:109:33:109:33 | 1 | |
-| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | exception(NullReferenceException) |
+| Finally.cs:109:17:109:28 | access to property Length | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception |
| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | true |
| Finally.cs:109:17:109:33 | ... == ... | Finally.cs:113:9:118:9 | {...} | false |
| Finally.cs:109:33:109:33 | 1 | Finally.cs:109:17:109:33 | ... == ... | |
-| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | exception(OutOfMemoryException) |
+| Finally.cs:110:17:110:49 | throw ...; | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception |
| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:110:17:110:49 | throw ...; | |
-| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | |
-| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | |
+| Finally.cs:110:23:110:48 | object creation of type OutOfMemoryException | Finally.cs:113:9:118:9 | [finally: exception] {...} | exception |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | |
| Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:114:13:115:41 | [finally: return] if (...) ... | |
| Finally.cs:113:9:118:9 | {...} | Finally.cs:114:13:115:41 | if (...) ... | |
-| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | |
-| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | |
-| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | |
+| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:114:19:114:23 | [finally: exception] this access | |
| Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:114:19:114:23 | [finally: return] this access | |
| Finally.cs:114:13:115:41 | if (...) ... | Finally.cs:114:19:114:23 | this access | |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | false |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | false |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | false |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | false |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | false |
| Finally.cs:114:17:114:36 | [false] !... | Finally.cs:116:13:117:37 | if (...) ... | false |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | true |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | true |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | true |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:115:17:115:41 | [finally: exception] ...; | true |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:115:17:115:41 | [finally: return] ...; | true |
| Finally.cs:114:17:114:36 | [true] !... | Finally.cs:115:17:115:41 | ...; | true |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | |
+| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:114:19:114:30 | [finally: exception] access to property Length | |
+| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:114:19:114:23 | [finally: exception] access to field Field | |
| Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:114:19:114:30 | [finally: return] access to property Length | |
| Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:114:19:114:23 | [finally: return] access to field Field | |
| Finally.cs:114:19:114:23 | access to field Field | Finally.cs:114:19:114:30 | access to property Length | |
| Finally.cs:114:19:114:23 | this access | Finally.cs:114:19:114:23 | access to field Field | |
-| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | |
-| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | |
-| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | |
+| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:114:35:114:35 | [finally: exception] 0 | |
| Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:114:35:114:35 | [finally: return] 0 | |
| Finally.cs:114:19:114:30 | access to property Length | Finally.cs:114:35:114:35 | 0 | |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [false] !... | true |
| Finally.cs:114:19:114:35 | ... == ... | Finally.cs:114:17:114:36 | [true] !... | false |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | true |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | false |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | true |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | false |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | true |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | false |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [false, finally: exception] !... | true |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:114:17:114:36 | [true, finally: exception] !... | false |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [false, finally: return] !... | true |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:114:17:114:36 | [true, finally: return] !... | false |
| Finally.cs:114:35:114:35 | 0 | Finally.cs:114:19:114:35 | ... == ... | |
-| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | |
-| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | |
-| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | |
+| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:114:19:114:35 | [finally: exception] ... == ... | |
| Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:114:19:114:35 | [finally: return] ... == ... | |
-| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | |
-| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | |
-| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | |
+| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | |
| Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:116:13:117:37 | [finally: return] if (...) ... | |
| Finally.cs:115:17:115:40 | call to method WriteLine | Finally.cs:116:13:117:37 | if (...) ... | |
| Finally.cs:115:17:115:41 | ...; | Finally.cs:115:35:115:39 | this access | |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:115:35:115:39 | [finally: exception] this access | |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:115:35:115:39 | [finally: return] this access | |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | |
+| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | |
+| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:115:35:115:39 | [finally: exception] access to field Field | |
| Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | |
| Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:115:35:115:39 | [finally: return] access to field Field | |
| Finally.cs:115:35:115:39 | access to field Field | Finally.cs:115:17:115:40 | call to method WriteLine | |
| Finally.cs:115:35:115:39 | this access | Finally.cs:115:35:115:39 | access to field Field | |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:116:17:116:21 | [finally: exception] this access | |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:116:17:116:21 | [finally: return] this access | |
| Finally.cs:116:13:117:37 | if (...) ... | Finally.cs:116:17:116:21 | this access | |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | |
+| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:116:17:116:28 | [finally: exception] access to property Length | |
+| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:116:17:116:21 | [finally: exception] access to field Field | |
| Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:116:17:116:28 | [finally: return] access to property Length | |
| Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:116:17:116:21 | [finally: return] access to field Field | |
| Finally.cs:116:17:116:21 | access to field Field | Finally.cs:116:17:116:28 | access to property Length | |
| Finally.cs:116:17:116:21 | this access | Finally.cs:116:17:116:21 | access to field Field | |
-| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | |
-| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | |
-| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | |
+| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:116:32:116:32 | [finally: exception] 0 | |
| Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:116:32:116:32 | [finally: return] 0 | |
| Finally.cs:116:17:116:28 | access to property Length | Finally.cs:116:32:116:32 | 0 | |
| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | false |
| Finally.cs:116:17:116:32 | ... > ... | Finally.cs:117:17:117:37 | ...; | true |
-| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(Exception) |
-| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | true |
-| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(NullReferenceException) |
-| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | true |
-| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(OutOfMemoryException) |
-| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | true |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:117:17:117:37 | [finally: exception] ...; | true |
| Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:103:10:103:11 | exit M5 (normal) | return |
| Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:117:17:117:37 | [finally: return] ...; | true |
| Finally.cs:116:32:116:32 | 0 | Finally.cs:116:17:116:32 | ... > ... | |
-| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | |
-| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | |
-| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | |
+| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:116:17:116:32 | [finally: exception] ... > ... | |
| Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:116:17:116:32 | [finally: return] ... > ... | |
-| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(Exception) |
-| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(NullReferenceException) |
-| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception(OutOfMemoryException) |
+| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (abnormal) | exception |
| Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (normal) | return |
| Finally.cs:117:17:117:36 | call to method WriteLine | Finally.cs:103:10:103:11 | exit M5 (normal) | |
| Finally.cs:117:17:117:37 | ...; | Finally.cs:117:35:117:35 | 1 | |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:117:35:117:35 | [finally: exception] 1 | |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:117:35:117:35 | [finally: return] 1 | |
| Finally.cs:117:35:117:35 | 1 | Finally.cs:117:17:117:36 | call to method WriteLine | |
-| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | |
-| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | |
-| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | |
+| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | |
| Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | |
| Finally.cs:121:10:121:11 | enter M6 | Finally.cs:122:5:131:5 | {...} | |
| Finally.cs:121:10:121:11 | exit M6 (normal) | Finally.cs:121:10:121:11 | exit M6 | |
@@ -2288,18 +2230,18 @@
| Finally.cs:134:5:145:5 | {...} | Finally.cs:135:9:143:9 | try {...} ... | |
| Finally.cs:135:9:143:9 | try {...} ... | Finally.cs:136:9:138:9 | {...} | |
| Finally.cs:136:9:138:9 | {...} | Finally.cs:137:13:137:37 | ...; | |
-| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | [finally: exception] {...} | exception |
| Finally.cs:137:13:137:36 | call to method WriteLine | Finally.cs:140:9:143:9 | {...} | |
| Finally.cs:137:13:137:37 | ...; | Finally.cs:137:31:137:35 | "Try" | |
| Finally.cs:137:31:137:35 | "Try" | Finally.cs:137:13:137:36 | call to method WriteLine | |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:141:41:141:42 | [finally: exception] "" | |
| Finally.cs:140:9:143:9 | {...} | Finally.cs:141:41:141:42 | "" | |
-| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception(ArgumentException) |
-| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception(ArgumentException) |
-| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | |
+| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception |
+| Finally.cs:141:13:141:44 | throw ...; | Finally.cs:133:10:133:11 | exit M7 (abnormal) | exception |
+| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:141:13:141:44 | [finally: exception] throw ...; | |
| Finally.cs:141:19:141:43 | object creation of type ArgumentException | Finally.cs:141:13:141:44 | throw ...; | |
| Finally.cs:141:41:141:42 | "" | Finally.cs:141:19:141:43 | object creation of type ArgumentException | |
-| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | |
+| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | |
| Finally.cs:147:10:147:11 | enter M8 | Finally.cs:148:5:170:5 | {...} | |
| Finally.cs:147:10:147:11 | exit M8 (abnormal) | Finally.cs:147:10:147:11 | exit M8 | |
| Finally.cs:147:10:147:11 | exit M8 (normal) | Finally.cs:147:10:147:11 | exit M8 | |
@@ -2311,129 +2253,89 @@
| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | true |
| Finally.cs:151:17:151:28 | ... == ... | Finally.cs:155:9:169:9 | {...} | false |
| Finally.cs:151:25:151:28 | null | Finally.cs:151:17:151:28 | ... == ... | |
-| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | exception(ArgumentNullException) |
+| Finally.cs:152:17:152:50 | throw ...; | Finally.cs:155:9:169:9 | [finally: exception] {...} | exception |
| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:152:17:152:50 | throw ...; | |
-| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | |
+| Finally.cs:152:23:152:49 | object creation of type ArgumentNullException | Finally.cs:155:9:169:9 | [finally: exception] {...} | exception |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | |
| Finally.cs:155:9:169:9 | {...} | Finally.cs:156:13:168:13 | try {...} ... | |
-| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | |
-| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | |
+| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:157:13:160:13 | [finally: exception] {...} | |
| Finally.cs:156:13:168:13 | try {...} ... | Finally.cs:157:13:160:13 | {...} | |
-| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | |
-| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | |
+| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | |
| Finally.cs:157:13:160:13 | {...} | Finally.cs:158:17:159:45 | if (...) ... | |
-| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | |
-| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | |
+| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | |
| Finally.cs:158:17:159:45 | if (...) ... | Finally.cs:158:21:158:24 | access to parameter args | |
-| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | |
-| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | |
+| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:158:21:158:31 | [finally: exception] access to property Length | |
| Finally.cs:158:21:158:24 | access to parameter args | Finally.cs:158:21:158:31 | access to property Length | |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | exception(Exception) |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | exception(NullReferenceException) |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | exception(Exception) |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | exception(NullReferenceException) |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:158:36:158:36 | [finally: exception] 1 | |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | exception |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | exception |
| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:158:36:158:36 | 1 | |
-| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception(Exception) |
-| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | exception(NullReferenceException) |
+| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception |
+| Finally.cs:158:21:158:31 | access to property Length | Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | exception |
| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:147:10:147:11 | exit M8 (normal) | false |
| Finally.cs:158:21:158:36 | ... == ... | Finally.cs:159:41:159:43 | "1" | true |
-| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(ArgumentNullException) |
-| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | true |
-| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(Exception) |
-| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | true |
+| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception |
+| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:159:41:159:43 | [finally: exception] "1" | true |
| Finally.cs:158:36:158:36 | 1 | Finally.cs:158:21:158:36 | ... == ... | |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | |
-| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | exception(Exception) |
-| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | exception(Exception) |
-| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception(Exception) |
-| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | |
-| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | exception(Exception) |
-| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | |
-| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | exception(Exception) |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:158:21:158:36 | [finally: exception] ... == ... | |
+| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | exception |
+| Finally.cs:159:21:159:45 | throw ...; | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception |
+| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:159:21:159:45 | [finally: exception] throw ...; | |
+| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | exception |
| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:159:21:159:45 | throw ...; | |
-| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception(Exception) |
+| Finally.cs:159:27:159:44 | object creation of type Exception | Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | exception |
| Finally.cs:159:41:159:43 | "1" | Finally.cs:159:27:159:44 | object creation of type Exception | |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | |
| Finally.cs:161:13:164:13 | [exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: Exception] Exception e | match |
| Finally.cs:161:13:164:13 | [exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | match |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | match |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | match |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | match |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | match |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | match |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | match |
| Finally.cs:161:30:161:30 | [exception: Exception] Exception e | Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | |
| Finally.cs:161:30:161:30 | [exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | |
| Finally.cs:161:39:161:39 | [exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | |
| Finally.cs:161:39:161:39 | [exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | |
| Finally.cs:161:39:161:47 | [exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [exception: Exception] "1" | |
| Finally.cs:161:39:161:47 | [exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | |
| Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:162:13:164:13 | {...} | true |
| Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false |
| Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | {...} | true |
| Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | true |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | false |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:162:13:164:13 | [finally: exception] {...} | true |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:165:13:168:13 | [finally: exception] catch {...} | false |
| Finally.cs:161:52:161:54 | [exception: Exception] "1" | Finally.cs:161:39:161:54 | [exception: Exception] ... == ... | |
| Finally.cs:161:52:161:54 | [exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [exception: NullReferenceException] ... == ... | |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:163:17:163:43 | [finally: exception] ...; | |
| Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:43 | ...; | |
-| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(ArgumentNullException) |
-| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(Exception) |
+| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception |
| Finally.cs:163:17:163:42 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (normal) | |
| Finally.cs:163:17:163:43 | ...; | Finally.cs:163:35:163:38 | access to parameter args | |
-| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | |
-| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | |
-| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | |
-| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | |
+| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | |
+| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:163:40:163:40 | [finally: exception] 0 | |
| Finally.cs:163:35:163:38 | access to parameter args | Finally.cs:163:40:163:40 | 0 | |
-| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | |
-| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | |
+| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | |
| Finally.cs:163:35:163:41 | access to array element | Finally.cs:163:17:163:42 | call to method WriteLine | |
| Finally.cs:163:40:163:40 | 0 | Finally.cs:163:35:163:41 | access to array element | |
-| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | |
-| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | |
+| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:163:35:163:41 | [finally: exception] access to array element | |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:166:13:168:13 | [finally: exception] {...} | |
| Finally.cs:165:13:168:13 | catch {...} | Finally.cs:166:13:168:13 | {...} | |
-| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | |
-| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | |
+| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:167:17:167:38 | [finally: exception] ...; | |
| Finally.cs:166:13:168:13 | {...} | Finally.cs:167:17:167:38 | ...; | |
-| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(ArgumentNullException) |
-| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception(Exception) |
+| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (abnormal) | exception |
| Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:147:10:147:11 | exit M8 (normal) | |
| Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | |
-| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | |
-| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | |
+| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:167:35:167:36 | [finally: exception] "" | |
| Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine | |
-| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | |
-| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | |
+| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | |
| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} | |
| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | |
| Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA | |
@@ -2455,64 +2357,45 @@
| Finally.cs:180:13:180:43 | if (...) ... | Finally.cs:180:17:180:18 | access to parameter b1 | |
| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | true |
| Finally.cs:180:17:180:18 | access to parameter b1 | Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | false |
-| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | exception(ExceptionA) |
+| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | exception |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | |
-| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | exception(Exception) |
+| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | exception |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | |
-| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | |
| Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | |
-| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | |
-| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | |
+| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | |
| Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | |
-| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | |
-| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | |
+| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | |
| Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | |
-| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | |
-| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | |
+| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (normal) | false |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(ExceptionA) |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
-| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception(ExceptionB) |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(ExceptionB) |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(ExceptionB) |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | true |
+| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | |
-| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception(Exception) |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(Exception) |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception(Exception) |
-| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) |
+| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | exception |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | exception |
+| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | match |
| Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | match |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(Exception) |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | match |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | true |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | |
| Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | |
-| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | |
-| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | |
+| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | |
| Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | Finally.cs:176:10:176:11 | exit M9 (normal) | false |
-| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
-| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(ExceptionC) |
-| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception(ExceptionC) |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | |
+| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | true |
+| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:176:10:176:11 | exit M9 (abnormal) | exception |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:190:25:190:47 | [finally: exception] throw ...; | |
| Finally.cs:195:10:195:12 | enter M10 | Finally.cs:196:5:214:5 | {...} | |
| Finally.cs:195:10:195:12 | exit M10 (abnormal) | Finally.cs:195:10:195:12 | exit M10 | |
| Finally.cs:195:10:195:12 | exit M10 (normal) | Finally.cs:195:10:195:12 | exit M10 | |
@@ -2522,102 +2405,59 @@
| Finally.cs:199:13:199:43 | if (...) ... | Finally.cs:199:17:199:18 | access to parameter b1 | |
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:199:27:199:42 | object creation of type ExceptionA | true |
| Finally.cs:199:17:199:18 | access to parameter b1 | Finally.cs:202:9:212:9 | {...} | false |
-| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) |
+| Finally.cs:199:21:199:43 | throw ...; | Finally.cs:202:9:212:9 | [finally: exception] {...} | exception |
| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:199:21:199:43 | throw ...; | |
-| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | |
-| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | |
+| Finally.cs:199:27:199:42 | object creation of type ExceptionA | Finally.cs:202:9:212:9 | [finally: exception] {...} | exception |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | |
| Finally.cs:202:9:212:9 | {...} | Finally.cs:203:13:210:13 | try {...} ... | |
-| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | |
-| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | |
+| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:204:13:206:13 | [finally: exception] {...} | |
| Finally.cs:203:13:210:13 | try {...} ... | Finally.cs:204:13:206:13 | {...} | |
-| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | |
-| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | |
+| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | |
| Finally.cs:204:13:206:13 | {...} | Finally.cs:205:17:205:47 | if (...) ... | |
-| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | |
-| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | |
+| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | |
| Finally.cs:205:17:205:47 | if (...) ... | Finally.cs:205:21:205:22 | access to parameter b2 | |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | true |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | false |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | true |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | false |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | true |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:208:13:210:13 | [finally: exception] {...} | false |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:205:31:205:46 | object creation of type ExceptionB | true |
| Finally.cs:205:21:205:22 | access to parameter b2 | Finally.cs:208:13:210:13 | {...} | false |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | exception(ExceptionB) |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | exception(ExceptionB) |
-| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | exception(ExceptionB) |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | exception |
+| Finally.cs:205:25:205:47 | throw ...; | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | exception |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:205:25:205:47 | [finally: exception] throw ...; | |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | exception |
| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:205:25:205:47 | throw ...; | |
-| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | |
-| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | |
+| Finally.cs:205:31:205:46 | object creation of type ExceptionB | Finally.cs:208:13:210:13 | [finally(1): exception] {...} | exception |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | |
| Finally.cs:208:13:210:13 | {...} | Finally.cs:209:17:209:47 | if (...) ... | |
-| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | |
-| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | |
+| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | |
+| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | |
+| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | |
| Finally.cs:209:17:209:47 | if (...) ... | Finally.cs:209:21:209:22 | access to parameter b3 | |
-| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) |
-| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionB) |
-| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionB) |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | false |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionB) |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | true |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | false |
+| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception |
+| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception |
+| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | true |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | true |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:211:13:211:29 | [finally: exception] ...; | false |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:31:209:46 | object creation of type ExceptionC | true |
| Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | false |
-| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionC) |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | |
+| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception |
+| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception |
+| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception |
+| Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:209:25:209:47 | [finally: exception] throw ...; | |
| Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | |
-| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | |
-| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | |
+| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:211:26:211:28 | [finally: exception] "0" | |
| Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | |
| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | |
-| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(Exception) |
-| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception(ExceptionA) |
+| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception |
| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:211:13:211:16 | [finally: exception] this access | |
| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | |
-| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | |
-| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | |
+| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:211:13:211:28 | [finally: exception] ... = ... | |
| Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | |
| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (normal) | |
| Finally.cs:213:9:213:25 | ...; | Finally.cs:213:9:213:12 | this access | |
@@ -2627,7 +2467,7 @@
| Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | |
| Finally.cs:218:9:229:9 | try {...} ... | Finally.cs:219:9:221:9 | {...} | |
| Finally.cs:219:9:221:9 | {...} | Finally.cs:220:13:220:37 | ...; | |
-| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:222:9:225:9 | catch {...} | exception(Exception) |
+| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:222:9:225:9 | catch {...} | exception |
| Finally.cs:220:13:220:36 | call to method WriteLine | Finally.cs:227:9:229:9 | {...} | |
| Finally.cs:220:13:220:37 | ...; | Finally.cs:220:31:220:35 | "Try" | |
| Finally.cs:220:31:220:35 | "Try" | Finally.cs:220:13:220:36 | call to method WriteLine | |
@@ -2654,88 +2494,55 @@
| Finally.cs:239:17:240:43 | if (...) ... | Finally.cs:239:21:239:22 | access to parameter b1 | |
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:240:27:240:42 | object creation of type ExceptionA | true |
| Finally.cs:239:21:239:22 | access to parameter b1 | Finally.cs:243:13:253:13 | {...} | false |
-| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) |
+| Finally.cs:240:21:240:43 | throw ...; | Finally.cs:243:13:253:13 | [finally: exception] {...} | exception |
| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:240:21:240:43 | throw ...; | |
-| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | |
-| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | |
+| Finally.cs:240:27:240:42 | object creation of type ExceptionA | Finally.cs:243:13:253:13 | [finally: exception] {...} | exception |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | |
| Finally.cs:243:13:253:13 | {...} | Finally.cs:244:17:252:17 | try {...} ... | |
-| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | |
-| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | |
+| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:245:17:248:17 | [finally: exception] {...} | |
| Finally.cs:244:17:252:17 | try {...} ... | Finally.cs:245:17:248:17 | {...} | |
-| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | |
-| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | |
+| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | |
| Finally.cs:245:17:248:17 | {...} | Finally.cs:246:21:247:47 | if (...) ... | |
-| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | |
-| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | |
+| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | |
| Finally.cs:246:21:247:47 | if (...) ... | Finally.cs:246:25:246:26 | access to parameter b2 | |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | true |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | false |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | true |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | false |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | true |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:250:17:252:17 | [finally: exception] {...} | false |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:247:31:247:46 | object creation of type ExceptionA | true |
| Finally.cs:246:25:246:26 | access to parameter b2 | Finally.cs:250:17:252:17 | {...} | false |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | exception(ExceptionA) |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | exception(ExceptionA) |
-| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | exception(ExceptionA) |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | exception |
+| Finally.cs:247:25:247:47 | throw ...; | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | exception |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:247:25:247:47 | [finally: exception] throw ...; | |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | exception |
| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:247:25:247:47 | throw ...; | |
-| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | |
-| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | |
+| Finally.cs:247:31:247:46 | object creation of type ExceptionA | Finally.cs:250:17:252:17 | [finally(1): exception] {...} | exception |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally(1): exception] ...; | |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:251:21:251:55 | [finally: exception] ...; | |
| Finally.cs:250:17:252:17 | {...} | Finally.cs:251:21:251:55 | ...; | |
-| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | exception(ExceptionA) |
+| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception |
+| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception |
+| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception |
| Finally.cs:251:21:251:54 | call to method WriteLine | Finally.cs:254:13:254:45 | ...; | |
| Finally.cs:251:21:251:55 | ...; | Finally.cs:251:39:251:53 | "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | |
+| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | |
+| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | |
+| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | |
| Finally.cs:251:39:251:53 | "Inner finally" | Finally.cs:251:21:251:54 | call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | |
-| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | |
+| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | |
+| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | |
+| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | [finally: exception] {...} | exception |
| Finally.cs:254:13:254:44 | call to method WriteLine | Finally.cs:257:9:259:9 | {...} | |
| Finally.cs:254:13:254:45 | ...; | Finally.cs:254:31:254:43 | "Mid finally" | |
| Finally.cs:254:31:254:43 | "Mid finally" | Finally.cs:254:13:254:44 | call to method WriteLine | |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:258:13:258:47 | [finally: exception] ...; | |
| Finally.cs:257:9:259:9 | {...} | Finally.cs:258:13:258:47 | ...; | |
-| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | exception(Exception) |
-| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | exception(ExceptionA) |
+| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (abnormal) | exception |
| Finally.cs:258:13:258:46 | call to method WriteLine | Finally.cs:260:9:260:34 | ...; | |
| Finally.cs:258:13:258:47 | ...; | Finally.cs:258:31:258:45 | "Outer finally" | |
-| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | |
-| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | |
+| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | |
| Finally.cs:258:31:258:45 | "Outer finally" | Finally.cs:258:13:258:46 | call to method WriteLine | |
-| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | |
-| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | |
+| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | |
| Finally.cs:260:9:260:33 | call to method WriteLine | Finally.cs:233:10:233:12 | exit M12 (normal) | |
| Finally.cs:260:9:260:34 | ...; | Finally.cs:260:27:260:32 | "Done" | |
| Finally.cs:260:27:260:32 | "Done" | Finally.cs:260:9:260:33 | call to method WriteLine | |
@@ -2745,28 +2552,28 @@
| Finally.cs:264:5:274:5 | {...} | Finally.cs:265:9:273:9 | try {...} ... | |
| Finally.cs:265:9:273:9 | try {...} ... | Finally.cs:266:9:268:9 | {...} | |
| Finally.cs:266:9:268:9 | {...} | Finally.cs:267:13:267:35 | ...; | |
-| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | exception(Exception) |
+| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | [finally: exception] {...} | exception |
| Finally.cs:267:13:267:34 | call to method WriteLine | Finally.cs:270:9:273:9 | {...} | |
| Finally.cs:267:13:267:35 | ...; | Finally.cs:267:31:267:33 | "1" | |
| Finally.cs:267:31:267:33 | "1" | Finally.cs:267:13:267:34 | call to method WriteLine | |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:271:13:271:35 | [finally: exception] ...; | |
| Finally.cs:270:9:273:9 | {...} | Finally.cs:271:13:271:35 | ...; | |
-| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | |
+| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:272:13:272:19 | [finally: exception] ...; | |
| Finally.cs:271:13:271:34 | call to method WriteLine | Finally.cs:272:13:272:19 | ...; | |
| Finally.cs:271:13:271:35 | ...; | Finally.cs:271:31:271:33 | "3" | |
-| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | |
+| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:271:31:271:33 | [finally: exception] "3" | |
| Finally.cs:271:31:271:33 | "3" | Finally.cs:271:13:271:34 | call to method WriteLine | |
-| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | |
-| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | |
+| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | |
+| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:272:18:272:18 | [finally: exception] 3 | |
| Finally.cs:272:13:272:13 | access to parameter i | Finally.cs:272:18:272:18 | 3 | |
| Finally.cs:272:13:272:18 | ... + ... | Finally.cs:272:13:272:18 | ... = ... | |
| Finally.cs:272:13:272:18 | ... = ... | Finally.cs:263:10:263:12 | exit M13 (normal) | |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | exception(Exception) |
+| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:272:13:272:18 | [finally: exception] ... = ... | |
+| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:263:10:263:12 | exit M13 (abnormal) | exception |
| Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | |
-| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | |
+| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | |
| Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | |
-| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | |
+| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:272:13:272:18 | [finally: exception] ... + ... | |
| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} | |
| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | |
| Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach | |
@@ -3159,7 +2966,7 @@
| LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | LoopUnrolling.cs:51:13:51:23 | goto ...; | |
| LoopUnrolling.cs:50:16:50:36 | ...; | LoopUnrolling.cs:50:34:50:34 | access to local variable x | |
| LoopUnrolling.cs:50:34:50:34 | access to local variable x | LoopUnrolling.cs:50:16:50:35 | call to method WriteLine | |
-| LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:50:9:50:13 | Label: | goto(Label) |
+| LoopUnrolling.cs:51:13:51:23 | goto ...; | LoopUnrolling.cs:50:9:50:13 | Label: | goto |
| LoopUnrolling.cs:55:10:55:11 | enter M7 | LoopUnrolling.cs:56:5:65:5 | {...} | |
| LoopUnrolling.cs:55:10:55:11 | exit M7 (normal) | LoopUnrolling.cs:55:10:55:11 | exit M7 | |
| LoopUnrolling.cs:56:5:65:5 | {...} | LoopUnrolling.cs:57:9:57:48 | ... ...; | |
@@ -3261,27 +3068,27 @@
| MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | |
| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | |
| MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | |
-| MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | exception |
| MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | throw ... | |
| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationA.cs:7:25:7:39 | {...} | |
| MultiImplementationA.cs:7:21:7:23 | enter get_P2 | MultiImplementationB.cs:4:25:4:37 | {...} | |
| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | |
| MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | MultiImplementationA.cs:7:21:7:23 | exit get_P2 | |
| MultiImplementationA.cs:7:25:7:39 | {...} | MultiImplementationA.cs:7:33:7:36 | null | |
-| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationA.cs:7:27:7:37 | throw ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (abnormal) | exception |
| MultiImplementationA.cs:7:33:7:36 | null | MultiImplementationA.cs:7:27:7:37 | throw ...; | |
| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationA.cs:7:45:7:59 | {...} | |
| MultiImplementationA.cs:7:41:7:43 | enter set_P2 | MultiImplementationB.cs:4:43:4:45 | {...} | |
| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | |
| MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | MultiImplementationA.cs:7:41:7:43 | exit set_P2 | |
| MultiImplementationA.cs:7:45:7:59 | {...} | MultiImplementationA.cs:7:53:7:56 | null | |
-| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationA.cs:7:47:7:57 | throw ...; | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (abnormal) | exception |
| MultiImplementationA.cs:7:53:7:56 | null | MultiImplementationA.cs:7:47:7:57 | throw ...; | |
| MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:29:8:32 | null | |
| MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | |
| MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | MultiImplementationA.cs:8:16:8:16 | exit M | |
| MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | exit M | |
-| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | exception(NullReferenceException) |
+| MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | exception |
| MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:23:8:32 | throw ... | |
| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:20:13:20 | 0 | |
| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | |
@@ -3347,7 +3154,7 @@
| MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | |
| MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:34:30:37 | null | |
| MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | |
-| MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | exception |
| MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:28:30:37 | throw ... | |
| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | |
| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | |
@@ -3359,12 +3166,12 @@
| MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | MultiImplementationA.cs:36:9:36:10 | exit M1 | |
| MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | MultiImplementationA.cs:36:9:36:10 | exit M1 | |
| MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:22:36:25 | null | |
-| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | exception |
| MultiImplementationA.cs:36:22:36:25 | null | MultiImplementationA.cs:36:16:36:26 | throw ...; | |
| MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:14:37:28 | {...} | |
| MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | MultiImplementationA.cs:37:9:37:10 | exit M2 | |
| MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:22:37:25 | null | |
-| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | exception |
| MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:16:37:26 | throw ...; | |
| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | |
| MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | |
@@ -3377,29 +3184,29 @@
| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:20:11:20 | 1 | |
| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | |
| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:20 | ... = ... | |
-| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | exception(NullReferenceException) |
+| MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | exception |
| MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:31:12:40 | throw ... | |
| MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:48:13:51 | null | |
-| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | exception(NullReferenceException) |
+| MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | exception |
| MultiImplementationB.cs:13:48:13:51 | null | MultiImplementationB.cs:13:42:13:52 | throw ...; | |
| MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationA.cs:15:54:15:56 | exit set_Item (normal) | |
| MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | |
| MultiImplementationB.cs:16:9:16:31 | M2(...) | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | |
| MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:27:16:30 | null | |
| MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | |
-| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | exception |
| MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:21:16:30 | throw ... | |
| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:11:16:11:16 | this access | |
| MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:30:18:33 | null | |
-| MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | exception |
| MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | |
| MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:27:19:29 | {...} | |
| MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | |
| MultiImplementationB.cs:19:27:19:29 | {...} | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | |
| MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:19:20:22 | null | |
-| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | exception(NullReferenceException) |
+| MultiImplementationB.cs:20:13:20:23 | throw ...; | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | exception |
| MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationB.cs:20:13:20:23 | throw ...; | |
-| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | exception(NullReferenceException) |
+| MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | exception |
| MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | throw ... | |
| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:32:22:34 | ... = ... | |
| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:34:22:34 | 1 | |
@@ -3772,7 +3579,7 @@
| PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:20:45:20:53 | nameof(...) | true |
| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [false] ... is ... | no-match |
| PostDominance.cs:19:18:19:21 | null | PostDominance.cs:19:13:19:21 | [true] ... is ... | match |
-| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | exception(ArgumentNullException) |
+| PostDominance.cs:20:13:20:55 | throw ...; | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | exception |
| PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | PostDominance.cs:20:13:20:55 | throw ...; | |
| PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:20:19:20:54 | object creation of type ArgumentNullException | |
| PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:17:10:17:11 | exit M3 (normal) | |
@@ -3867,12 +3674,12 @@
| Switch.cs:16:13:16:19 | case ...: | Switch.cs:16:18:16:18 | 0 | |
| Switch.cs:16:18:16:18 | 0 | Switch.cs:17:23:17:37 | object creation of type Exception | match |
| Switch.cs:16:18:16:18 | 0 | Switch.cs:18:13:18:22 | case ...: | no-match |
-| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception(Exception) |
+| Switch.cs:17:17:17:38 | throw ...; | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception |
| Switch.cs:17:23:17:37 | object creation of type Exception | Switch.cs:17:17:17:38 | throw ...; | |
| Switch.cs:18:13:18:22 | case ...: | Switch.cs:18:18:18:21 | null | |
| Switch.cs:18:18:18:21 | null | Switch.cs:19:17:19:29 | goto default; | match |
| Switch.cs:18:18:18:21 | null | Switch.cs:20:13:20:23 | case ...: | no-match |
-| Switch.cs:19:17:19:29 | goto default; | Switch.cs:30:13:30:20 | default: | goto(default) |
+| Switch.cs:19:17:19:29 | goto default; | Switch.cs:30:13:30:20 | default: | goto |
| Switch.cs:20:13:20:23 | case ...: | Switch.cs:20:18:20:22 | Int32 i | |
| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:21:17:22:27 | if (...) ... | match |
| Switch.cs:20:18:20:22 | Int32 i | Switch.cs:24:13:24:56 | case ...: | no-match |
@@ -3882,7 +3689,7 @@
| Switch.cs:21:21:21:29 | ... == ... | Switch.cs:23:27:23:27 | 0 | false |
| Switch.cs:21:26:21:29 | null | Switch.cs:21:21:21:29 | ... == ... | |
| Switch.cs:22:21:22:27 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return |
-| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:16:13:16:19 | case ...: | goto(0) |
+| Switch.cs:23:17:23:28 | goto case ...; | Switch.cs:16:13:16:19 | case ...: | goto |
| Switch.cs:23:27:23:27 | 0 | Switch.cs:23:17:23:28 | goto case ...; | |
| Switch.cs:24:13:24:56 | case ...: | Switch.cs:24:18:24:25 | String s | |
| Switch.cs:24:18:24:25 | String s | Switch.cs:24:32:24:32 | access to local variable s | match |
@@ -3905,16 +3712,16 @@
| Switch.cs:27:13:27:39 | case ...: | Switch.cs:27:18:27:25 | Double d | |
| Switch.cs:27:18:27:25 | Double d | Switch.cs:27:32:27:38 | call to method Throw | match |
| Switch.cs:27:18:27:25 | Double d | Switch.cs:30:13:30:20 | default: | no-match |
-| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception(Exception) |
+| Switch.cs:27:32:27:38 | call to method Throw | Switch.cs:10:10:10:11 | exit M2 (abnormal) | exception |
| Switch.cs:28:13:28:17 | Label: | Switch.cs:29:17:29:23 | return ...; | |
| Switch.cs:29:17:29:23 | return ...; | Switch.cs:10:10:10:11 | exit M2 (normal) | return |
| Switch.cs:30:13:30:20 | default: | Switch.cs:31:17:31:27 | goto ...; | |
-| Switch.cs:31:17:31:27 | goto ...; | Switch.cs:28:13:28:17 | Label: | goto(Label) |
+| Switch.cs:31:17:31:27 | goto ...; | Switch.cs:28:13:28:17 | Label: | goto |
| Switch.cs:35:10:35:11 | enter M3 | Switch.cs:36:5:42:5 | {...} | |
| Switch.cs:35:10:35:11 | exit M3 (abnormal) | Switch.cs:35:10:35:11 | exit M3 | |
| Switch.cs:36:5:42:5 | {...} | Switch.cs:37:9:41:9 | switch (...) {...} | |
| Switch.cs:37:9:41:9 | switch (...) {...} | Switch.cs:37:17:37:23 | call to method Throw | |
-| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | exit M3 (abnormal) | exception(Exception) |
+| Switch.cs:37:17:37:23 | call to method Throw | Switch.cs:35:10:35:11 | exit M3 (abnormal) | exception |
| Switch.cs:44:10:44:11 | enter M4 | Switch.cs:45:5:53:5 | {...} | |
| Switch.cs:44:10:44:11 | exit M4 (normal) | Switch.cs:44:10:44:11 | exit M4 | |
| Switch.cs:45:5:53:5 | {...} | Switch.cs:46:9:52:9 | switch (...) {...} | |
@@ -4013,7 +3820,7 @@
| Switch.cs:108:17:108:17 | 1 | Switch.cs:108:16:108:17 | -... | |
| Switch.cs:111:17:111:21 | enter Throw | Switch.cs:111:34:111:48 | object creation of type Exception | |
| Switch.cs:111:17:111:21 | exit Throw (abnormal) | Switch.cs:111:17:111:21 | exit Throw | |
-| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | exit Throw (abnormal) | exception(Exception) |
+| Switch.cs:111:28:111:48 | throw ... | Switch.cs:111:17:111:21 | exit Throw (abnormal) | exception |
| Switch.cs:111:34:111:48 | object creation of type Exception | Switch.cs:111:28:111:48 | throw ... | |
| Switch.cs:113:9:113:11 | enter M10 | Switch.cs:114:5:121:5 | {...} | |
| Switch.cs:113:9:113:11 | exit M10 (normal) | Switch.cs:113:9:113:11 | exit M10 | |
@@ -4126,7 +3933,7 @@
| Switch.cs:156:28:156:31 | true | Switch.cs:156:41:156:45 | false | no-match |
| Switch.cs:156:28:156:38 | ... => ... | Switch.cs:156:17:156:54 | ... switch { ... } | |
| Switch.cs:156:36:156:38 | "a" | Switch.cs:156:28:156:38 | ... => ... | |
-| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | exit M15 (abnormal) | exception(InvalidOperationException) |
+| Switch.cs:156:41:156:45 | false | Switch.cs:154:10:154:12 | exit M15 (abnormal) | exception |
| Switch.cs:156:41:156:45 | false | Switch.cs:156:50:156:52 | "b" | match |
| Switch.cs:156:41:156:52 | ... => ... | Switch.cs:156:17:156:54 | ... switch { ... } | |
| Switch.cs:156:50:156:52 | "b" | Switch.cs:156:41:156:52 | ... => ... | |
@@ -4361,7 +4168,7 @@
| cflow.cs:42:17:42:38 | call to method WriteLine | cflow.cs:43:27:43:27 | 2 | |
| cflow.cs:42:17:42:39 | ...; | cflow.cs:42:35:42:37 | "1" | |
| cflow.cs:42:35:42:37 | "1" | cflow.cs:42:17:42:38 | call to method WriteLine | |
-| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:44:13:44:19 | case ...: | goto(2) |
+| cflow.cs:43:17:43:28 | goto case ...; | cflow.cs:44:13:44:19 | case ...: | goto |
| cflow.cs:43:27:43:27 | 2 | cflow.cs:43:17:43:28 | goto case ...; | |
| cflow.cs:44:13:44:19 | case ...: | cflow.cs:44:18:44:18 | 2 | |
| cflow.cs:44:18:44:18 | 2 | cflow.cs:45:17:45:39 | ...; | match |
@@ -4369,7 +4176,7 @@
| cflow.cs:45:17:45:38 | call to method WriteLine | cflow.cs:46:27:46:27 | 1 | |
| cflow.cs:45:17:45:39 | ...; | cflow.cs:45:35:45:37 | "2" | |
| cflow.cs:45:35:45:37 | "2" | cflow.cs:45:17:45:38 | call to method WriteLine | |
-| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:41:13:41:19 | case ...: | goto(1) |
+| cflow.cs:46:17:46:28 | goto case ...; | cflow.cs:41:13:41:19 | case ...: | goto |
| cflow.cs:46:27:46:27 | 1 | cflow.cs:46:17:46:28 | goto case ...; | |
| cflow.cs:47:13:47:19 | case ...: | cflow.cs:47:18:47:18 | 3 | |
| cflow.cs:47:18:47:18 | 3 | cflow.cs:48:17:48:39 | ...; | match |
@@ -4407,7 +4214,7 @@
| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [false] !... | true |
| cflow.cs:63:23:63:33 | ... == ... | cflow.cs:63:21:63:34 | [true] !... | false |
| cflow.cs:63:32:63:33 | "" | cflow.cs:63:23:63:33 | ... == ... | |
-| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | exit Switch (abnormal) | exception(NullReferenceException) |
+| cflow.cs:64:21:64:55 | throw ...; | cflow.cs:37:17:37:22 | exit Switch (abnormal) | exception |
| cflow.cs:64:27:64:54 | object creation of type NullReferenceException | cflow.cs:64:21:64:55 | throw ...; | |
| cflow.cs:65:17:65:22 | break; | cflow.cs:67:16:67:16 | access to parameter a | break |
| cflow.cs:67:9:67:17 | return ...; | cflow.cs:37:17:37:22 | exit Switch (normal) | return |
@@ -4462,7 +4269,7 @@
| cflow.cs:92:13:92:27 | call to method Equals | cflow.cs:94:9:94:29 | ...; | false |
| cflow.cs:92:20:92:20 | access to parameter s | cflow.cs:92:23:92:26 | null | |
| cflow.cs:92:23:92:26 | null | cflow.cs:92:13:92:27 | call to method Equals | |
-| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | exit M3 (abnormal) | exception(ArgumentNullException) |
+| cflow.cs:93:13:93:49 | throw ...; | cflow.cs:90:18:90:19 | exit M3 (abnormal) | exception |
| cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | cflow.cs:93:13:93:49 | throw ...; | |
| cflow.cs:93:45:93:47 | "s" | cflow.cs:93:19:93:48 | object creation of type ArgumentNullException | |
| cflow.cs:94:9:94:28 | call to method WriteLine | cflow.cs:96:9:97:55 | if (...) ... | |
@@ -4777,7 +4584,7 @@
| cflow.cs:200:61:200:61 | access to local variable b | cflow.cs:200:40:200:61 | [true] ... && ... | true |
| cflow.cs:201:9:205:9 | {...} | cflow.cs:202:13:204:13 | {...} | |
| cflow.cs:202:13:204:13 | {...} | cflow.cs:203:23:203:37 | object creation of type Exception | |
-| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | exception(Exception) |
+| cflow.cs:203:17:203:38 | throw ...; | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | exception |
| cflow.cs:203:23:203:37 | object creation of type Exception | cflow.cs:203:17:203:38 | throw ...; | |
| cflow.cs:208:10:208:11 | enter Do | cflow.cs:209:5:222:5 | {...} | |
| cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | |
@@ -4873,7 +4680,7 @@
| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:244:31:244:41 | goto ...; | true |
| cflow.cs:244:13:244:28 | ... > ... | cflow.cs:246:9:258:9 | switch (...) {...} | false |
| cflow.cs:244:28:244:28 | 0 | cflow.cs:244:13:244:28 | ... > ... | |
-| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto(Label) |
+| cflow.cs:244:31:244:41 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto |
| cflow.cs:246:9:258:9 | switch (...) {...} | cflow.cs:246:17:246:21 | this access | |
| cflow.cs:246:17:246:21 | access to field Field | cflow.cs:246:17:246:28 | access to property Length | |
| cflow.cs:246:17:246:21 | this access | cflow.cs:246:17:246:21 | access to field Field | |
@@ -4883,7 +4690,7 @@
| cflow.cs:248:13:248:19 | case ...: | cflow.cs:248:18:248:18 | 0 | |
| cflow.cs:248:18:248:18 | 0 | cflow.cs:249:17:249:29 | goto default; | match |
| cflow.cs:248:18:248:18 | 0 | cflow.cs:250:13:250:19 | case ...: | no-match |
-| cflow.cs:249:17:249:29 | goto default; | cflow.cs:255:13:255:20 | default: | goto(default) |
+| cflow.cs:249:17:249:29 | goto default; | cflow.cs:255:13:255:20 | default: | goto |
| cflow.cs:250:13:250:19 | case ...: | cflow.cs:250:18:250:18 | 1 | |
| cflow.cs:250:18:250:18 | 1 | cflow.cs:251:17:251:37 | ...; | match |
| cflow.cs:250:18:250:18 | 1 | cflow.cs:253:13:253:19 | case ...: | no-match |
@@ -4894,7 +4701,7 @@
| cflow.cs:253:13:253:19 | case ...: | cflow.cs:253:18:253:18 | 2 | |
| cflow.cs:253:18:253:18 | 2 | cflow.cs:254:17:254:27 | goto ...; | match |
| cflow.cs:253:18:253:18 | 2 | cflow.cs:255:13:255:20 | default: | no-match |
-| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto(Label) |
+| cflow.cs:254:17:254:27 | goto ...; | cflow.cs:242:5:242:9 | Label: | goto |
| cflow.cs:255:13:255:20 | default: | cflow.cs:256:17:256:37 | ...; | |
| cflow.cs:256:17:256:36 | call to method WriteLine | cflow.cs:257:17:257:22 | break; | |
| cflow.cs:256:17:256:37 | ...; | cflow.cs:256:35:256:35 | 0 | |
diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected
index 7c5a64b7155..81c15438679 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected
+++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected
@@ -508,65 +508,45 @@ booleanNode
| Finally.cs:180:21:180:43 | [b1 (line 176): true] throw ...; | b1 (line 176): true |
| Finally.cs:180:27:180:42 | [b1 (line 176): true] object creation of type ExceptionA | b1 (line 176): true |
| Finally.cs:183:9:192:9 | [b1 (line 176): false] {...} | b1 (line 176): false |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | b1 (line 176): true |
-| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | b1 (line 176): true |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | b1 (line 176): true |
| Finally.cs:184:13:191:13 | [b1 (line 176): false] try {...} ... | b1 (line 176): false |
-| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | b1 (line 176): true |
-| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | b1 (line 176): true |
+| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | b1 (line 176): true |
| Finally.cs:185:13:187:13 | [b1 (line 176): false] {...} | b1 (line 176): false |
-| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | b1 (line 176): true |
-| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | b1 (line 176): true |
+| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | b1 (line 176): true |
| Finally.cs:186:17:186:47 | [b1 (line 176): false] if (...) ... | b1 (line 176): false |
-| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | b1 (line 176): true |
-| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | b1 (line 176): true |
+| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | b1 (line 176): true |
| Finally.cs:186:21:186:22 | [b1 (line 176): false] access to parameter b2 | b1 (line 176): false |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | b1 (line 176): true |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | b1 (line 176): true |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | b1 (line 176): true |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | b1 (line 176): false |
| Finally.cs:186:25:186:47 | [b1 (line 176): false, b2 (line 176): true] throw ...; | b2 (line 176): true |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | b1 (line 176): true |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | b2 (line 176): true |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | b1 (line 176): true |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | b2 (line 176): true |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | b1 (line 176): true |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | b2 (line 176): true |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): false |
| Finally.cs:186:31:186:46 | [b1 (line 176): false, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): true |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): true |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b1 (line 176): true |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | b2 (line 176): true |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b1 (line 176): false |
| Finally.cs:188:13:191:13 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
| Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b1 (line 176): false |
| Finally.cs:188:13:191:13 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b1 (line 176): true |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | b2 (line 176): true |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b1 (line 176): false |
| Finally.cs:188:38:188:39 | [exception: Exception, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b1 (line 176): false |
| Finally.cs:188:38:188:39 | [exception: ExceptionB, b1 (line 176): false, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b1 (line 176): true |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | b2 (line 176): true |
| Finally.cs:189:13:191:13 | [b1 (line 176): false] {...} | b1 (line 176): false |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | b1 (line 176): true |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | b1 (line 176): true |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | b1 (line 176): true |
| Finally.cs:190:17:190:47 | [b1 (line 176): false] if (...) ... | b1 (line 176): false |
-| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | b1 (line 176): true |
-| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | b1 (line 176): true |
+| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | b1 (line 176): true |
| Finally.cs:190:21:190:22 | [b1 (line 176): false] access to parameter b1 | b1 (line 176): false |
-| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | b1 (line 176): true |
-| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | b1 (line 176): true |
+| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | b1 (line 176): true |
| LoopUnrolling.cs:58:9:64:9 | [b (line 55): false] foreach (... ... in ...) ... | b (line 55): false |
| LoopUnrolling.cs:58:9:64:9 | [b (line 55): true] foreach (... ... in ...) ... | b (line 55): true |
| LoopUnrolling.cs:58:22:58:22 | [b (line 55): false] String x | b (line 55): false |
@@ -614,41 +594,33 @@ finallyNode
| BreakInTry.cs:67:21:67:31 | [finally: return] ... == ... | BreakInTry.cs:58:9:70:9 | try {...} ... |
| BreakInTry.cs:67:28:67:31 | [finally: return] null | BreakInTry.cs:58:9:70:9 | try {...} ... |
| BreakInTry.cs:68:21:68:26 | [finally: return] break; | BreakInTry.cs:58:9:70:9 | try {...} ... |
-| CompileTimeOperators.cs:36:9:38:9 | [finally: goto(End)] {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
-| CompileTimeOperators.cs:37:13:37:40 | [finally: goto(End)] call to method WriteLine | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
-| CompileTimeOperators.cs:37:13:37:41 | [finally: goto(End)] ...; | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
-| CompileTimeOperators.cs:37:31:37:39 | [finally: goto(End)] "Finally" | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
-| Finally.cs:14:9:16:9 | [finally: exception(Exception)] {...} | Finally.cs:9:9:16:9 | try {...} ... |
-| Finally.cs:15:13:15:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:9:9:16:9 | try {...} ... |
-| Finally.cs:15:13:15:41 | [finally: exception(Exception)] ...; | Finally.cs:9:9:16:9 | try {...} ... |
-| Finally.cs:15:31:15:39 | [finally: exception(Exception)] "Finally" | Finally.cs:9:9:16:9 | try {...} ... |
-| Finally.cs:37:13:39:13 | [finally: exception(ArgumentException)] {...} | Finally.cs:32:13:39:13 | try {...} ... |
-| Finally.cs:38:17:38:44 | [finally: exception(ArgumentException)] throw ...; | Finally.cs:32:13:39:13 | try {...} ... |
-| Finally.cs:38:23:38:43 | [finally: exception(ArgumentException)] object creation of type Exception | Finally.cs:32:13:39:13 | try {...} ... |
-| Finally.cs:38:37:38:42 | [finally: exception(ArgumentException)] "Boo!" | Finally.cs:32:13:39:13 | try {...} ... |
-| Finally.cs:49:9:51:9 | [finally: exception(Exception)] {...} | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:49:9:51:9 | [finally: exception(IOException)] {...} | Finally.cs:21:9:51:9 | try {...} ... |
+| CompileTimeOperators.cs:36:9:38:9 | [finally: goto] {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
+| CompileTimeOperators.cs:37:13:37:40 | [finally: goto] call to method WriteLine | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
+| CompileTimeOperators.cs:37:13:37:41 | [finally: goto] ...; | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
+| CompileTimeOperators.cs:37:31:37:39 | [finally: goto] "Finally" | CompileTimeOperators.cs:30:9:38:9 | try {...} ... |
+| Finally.cs:14:9:16:9 | [finally: exception] {...} | Finally.cs:9:9:16:9 | try {...} ... |
+| Finally.cs:15:13:15:40 | [finally: exception] call to method WriteLine | Finally.cs:9:9:16:9 | try {...} ... |
+| Finally.cs:15:13:15:41 | [finally: exception] ...; | Finally.cs:9:9:16:9 | try {...} ... |
+| Finally.cs:15:31:15:39 | [finally: exception] "Finally" | Finally.cs:9:9:16:9 | try {...} ... |
+| Finally.cs:37:13:39:13 | [finally: exception] {...} | Finally.cs:32:13:39:13 | try {...} ... |
+| Finally.cs:38:17:38:44 | [finally: exception] throw ...; | Finally.cs:32:13:39:13 | try {...} ... |
+| Finally.cs:38:23:38:43 | [finally: exception] object creation of type Exception | Finally.cs:32:13:39:13 | try {...} ... |
+| Finally.cs:38:37:38:42 | [finally: exception] "Boo!" | Finally.cs:32:13:39:13 | try {...} ... |
+| Finally.cs:49:9:51:9 | [finally: exception] {...} | Finally.cs:21:9:51:9 | try {...} ... |
| Finally.cs:49:9:51:9 | [finally: return] {...} | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:50:13:50:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:50:13:50:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... |
+| Finally.cs:50:13:50:40 | [finally: exception] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... |
| Finally.cs:50:13:50:40 | [finally: return] call to method WriteLine | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:50:13:50:41 | [finally: exception(Exception)] ...; | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:50:13:50:41 | [finally: exception(IOException)] ...; | Finally.cs:21:9:51:9 | try {...} ... |
+| Finally.cs:50:13:50:41 | [finally: exception] ...; | Finally.cs:21:9:51:9 | try {...} ... |
| Finally.cs:50:13:50:41 | [finally: return] ...; | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:50:31:50:39 | [finally: exception(Exception)] "Finally" | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:50:31:50:39 | [finally: exception(IOException)] "Finally" | Finally.cs:21:9:51:9 | try {...} ... |
+| Finally.cs:50:31:50:39 | [finally: exception] "Finally" | Finally.cs:21:9:51:9 | try {...} ... |
| Finally.cs:50:31:50:39 | [finally: return] "Finally" | Finally.cs:21:9:51:9 | try {...} ... |
-| Finally.cs:69:9:71:9 | [finally: exception(Exception)] {...} | Finally.cs:56:9:71:9 | try {...} ... |
-| Finally.cs:69:9:71:9 | [finally: exception(IOException)] {...} | Finally.cs:56:9:71:9 | try {...} ... |
+| Finally.cs:69:9:71:9 | [finally: exception] {...} | Finally.cs:56:9:71:9 | try {...} ... |
| Finally.cs:69:9:71:9 | [finally: return] {...} | Finally.cs:56:9:71:9 | try {...} ... |
-| Finally.cs:70:13:70:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... |
-| Finally.cs:70:13:70:40 | [finally: exception(IOException)] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... |
+| Finally.cs:70:13:70:40 | [finally: exception] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... |
| Finally.cs:70:13:70:40 | [finally: return] call to method WriteLine | Finally.cs:56:9:71:9 | try {...} ... |
-| Finally.cs:70:13:70:41 | [finally: exception(Exception)] ...; | Finally.cs:56:9:71:9 | try {...} ... |
-| Finally.cs:70:13:70:41 | [finally: exception(IOException)] ...; | Finally.cs:56:9:71:9 | try {...} ... |
+| Finally.cs:70:13:70:41 | [finally: exception] ...; | Finally.cs:56:9:71:9 | try {...} ... |
| Finally.cs:70:13:70:41 | [finally: return] ...; | Finally.cs:56:9:71:9 | try {...} ... |
-| Finally.cs:70:31:70:39 | [finally: exception(Exception)] "Finally" | Finally.cs:56:9:71:9 | try {...} ... |
-| Finally.cs:70:31:70:39 | [finally: exception(IOException)] "Finally" | Finally.cs:56:9:71:9 | try {...} ... |
+| Finally.cs:70:31:70:39 | [finally: exception] "Finally" | Finally.cs:56:9:71:9 | try {...} ... |
| Finally.cs:70:31:70:39 | [finally: return] "Finally" | Finally.cs:56:9:71:9 | try {...} ... |
| Finally.cs:89:13:99:13 | [finally: break] {...} | Finally.cs:79:13:99:13 | try {...} ... |
| Finally.cs:89:13:99:13 | [finally: continue] {...} | Finally.cs:79:13:99:13 | try {...} ... |
@@ -677,351 +649,190 @@ finallyNode
| Finally.cs:93:31:93:45 | [finally: break] object creation of type Exception | Finally.cs:79:13:99:13 | try {...} ... |
| Finally.cs:93:31:93:45 | [finally: continue] object creation of type Exception | Finally.cs:79:13:99:13 | try {...} ... |
| Finally.cs:93:31:93:45 | [finally: return] object creation of type Exception | Finally.cs:79:13:99:13 | try {...} ... |
-| Finally.cs:96:17:98:17 | [finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:96:17:98:17 | [finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:96:17:98:17 | [finally: break, finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:96:17:98:17 | [finally: break] {...} | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:96:17:98:17 | [finally: continue, finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:96:17:98:17 | [finally: continue] {...} | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception(Exception)] {...} | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:96:17:98:17 | [finally: return, finally(1): exception] {...} | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:96:17:98:17 | [finally: return] {...} | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:21 | [finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:21 | [finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:21 | [finally: break, finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:21 | [finally: break] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:21 | [finally: continue, finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:21 | [finally: continue] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception(Exception)] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:21 | [finally: return, finally(1): exception] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:21 | [finally: return] access to local variable i | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:23 | [finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:23 | [finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:23 | [finally: break, finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:23 | [finally: break] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:23 | [finally: continue, finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:23 | [finally: continue] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception(Exception)] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:23 | [finally: return, finally(1): exception] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:23 | [finally: return] ...-- | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:24 | [finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:24 | [finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:24 | [finally: break, finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:24 | [finally: break] ...; | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:24 | [finally: continue, finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:24 | [finally: continue] ...; | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception(Exception)] ...; | Finally.cs:90:17:98:17 | try {...} ... |
+| Finally.cs:97:21:97:24 | [finally: return, finally(1): exception] ...; | Finally.cs:90:17:98:17 | try {...} ... |
| Finally.cs:97:21:97:24 | [finally: return] ...; | Finally.cs:90:17:98:17 | try {...} ... |
-| Finally.cs:113:9:118:9 | [finally: exception(Exception)] {...} | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:113:9:118:9 | [finally: exception(NullReferenceException)] {...} | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:113:9:118:9 | [finally: exception(OutOfMemoryException)] {...} | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:113:9:118:9 | [finally: exception] {...} | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:113:9:118:9 | [finally: return] {...} | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:13:115:41 | [finally: exception(Exception)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:13:115:41 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:13:115:41 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:13:115:41 | [finally: exception] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:13:115:41 | [finally: return] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:17:114:36 | [false, finally: exception(Exception)] !... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:17:114:36 | [false, finally: exception(NullReferenceException)] !... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:17:114:36 | [false, finally: exception(OutOfMemoryException)] !... | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:17:114:36 | [false, finally: exception] !... | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:17:114:36 | [false, finally: return] !... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(Exception)] !... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(NullReferenceException)] !... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:17:114:36 | [true, finally: exception(OutOfMemoryException)] !... | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:17:114:36 | [true, finally: exception] !... | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:17:114:36 | [true, finally: return] !... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:23 | [finally: exception(Exception)] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:23 | [finally: exception(NullReferenceException)] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:23 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:19:114:23 | [finally: exception] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:19:114:23 | [finally: exception] this access | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:19:114:23 | [finally: return] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:19:114:23 | [finally: return] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:30 | [finally: exception(Exception)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:30 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:30 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:19:114:30 | [finally: exception] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:19:114:30 | [finally: return] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:35 | [finally: exception(Exception)] ... == ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:35 | [finally: exception(NullReferenceException)] ... == ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:19:114:35 | [finally: exception(OutOfMemoryException)] ... == ... | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:19:114:35 | [finally: exception] ... == ... | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:19:114:35 | [finally: return] ... == ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:35:114:35 | [finally: exception(Exception)] 0 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:35:114:35 | [finally: exception(NullReferenceException)] 0 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:114:35:114:35 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:114:35:114:35 | [finally: exception] 0 | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:114:35:114:35 | [finally: return] 0 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:17:115:40 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:17:115:40 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:17:115:40 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:115:17:115:40 | [finally: exception] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:115:17:115:40 | [finally: return] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:17:115:41 | [finally: exception(Exception)] ...; | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:17:115:41 | [finally: exception(NullReferenceException)] ...; | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:17:115:41 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:115:17:115:41 | [finally: exception] ...; | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:115:17:115:41 | [finally: return] ...; | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:35:115:39 | [finally: exception(Exception)] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:35:115:39 | [finally: exception(NullReferenceException)] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:115:35:115:39 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:115:35:115:39 | [finally: exception] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:115:35:115:39 | [finally: exception] this access | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:115:35:115:39 | [finally: return] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:115:35:115:39 | [finally: return] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:13:117:37 | [finally: exception(Exception)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:13:117:37 | [finally: exception(NullReferenceException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:13:117:37 | [finally: exception(OutOfMemoryException)] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:116:13:117:37 | [finally: exception] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:116:13:117:37 | [finally: return] if (...) ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:21 | [finally: exception(Exception)] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:21 | [finally: exception(NullReferenceException)] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:21 | [finally: exception(OutOfMemoryException)] this access | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:116:17:116:21 | [finally: exception] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:116:17:116:21 | [finally: exception] this access | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:116:17:116:21 | [finally: return] access to field Field | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:116:17:116:21 | [finally: return] this access | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:28 | [finally: exception(Exception)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:28 | [finally: exception(NullReferenceException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:28 | [finally: exception(OutOfMemoryException)] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:116:17:116:28 | [finally: exception] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:116:17:116:28 | [finally: return] access to property Length | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:32 | [finally: exception(Exception)] ... > ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:32 | [finally: exception(NullReferenceException)] ... > ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:17:116:32 | [finally: exception(OutOfMemoryException)] ... > ... | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:116:17:116:32 | [finally: exception] ... > ... | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:116:17:116:32 | [finally: return] ... > ... | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:32:116:32 | [finally: exception(Exception)] 0 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:32:116:32 | [finally: exception(NullReferenceException)] 0 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:116:32:116:32 | [finally: exception(OutOfMemoryException)] 0 | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:116:32:116:32 | [finally: exception] 0 | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:116:32:116:32 | [finally: return] 0 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:17:117:36 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:17:117:36 | [finally: exception(NullReferenceException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:17:117:36 | [finally: exception(OutOfMemoryException)] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:117:17:117:36 | [finally: exception] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:117:17:117:36 | [finally: return] call to method WriteLine | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:17:117:37 | [finally: exception(Exception)] ...; | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:17:117:37 | [finally: exception(NullReferenceException)] ...; | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:17:117:37 | [finally: exception(OutOfMemoryException)] ...; | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:117:17:117:37 | [finally: exception] ...; | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:117:17:117:37 | [finally: return] ...; | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:35:117:35 | [finally: exception(Exception)] 1 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:35:117:35 | [finally: exception(NullReferenceException)] 1 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:117:35:117:35 | [finally: exception(OutOfMemoryException)] 1 | Finally.cs:105:9:118:9 | try {...} ... |
+| Finally.cs:117:35:117:35 | [finally: exception] 1 | Finally.cs:105:9:118:9 | try {...} ... |
| Finally.cs:117:35:117:35 | [finally: return] 1 | Finally.cs:105:9:118:9 | try {...} ... |
-| Finally.cs:140:9:143:9 | [finally: exception(Exception)] {...} | Finally.cs:135:9:143:9 | try {...} ... |
-| Finally.cs:141:13:141:44 | [finally: exception(Exception)] throw ...; | Finally.cs:135:9:143:9 | try {...} ... |
-| Finally.cs:141:19:141:43 | [finally: exception(Exception)] object creation of type ArgumentException | Finally.cs:135:9:143:9 | try {...} ... |
-| Finally.cs:141:41:141:42 | [finally: exception(Exception)] "" | Finally.cs:135:9:143:9 | try {...} ... |
-| Finally.cs:155:9:169:9 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:155:9:169:9 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:156:13:168:13 | [finally: exception(ArgumentNullException)] try {...} ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:156:13:168:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:157:13:160:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:157:13:160:13 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:17:159:45 | [finally: exception(ArgumentNullException)] if (...) ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:17:159:45 | [finally: exception(Exception)] if (...) ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:21:158:24 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:21:158:24 | [finally: exception(Exception)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:21:158:31 | [finally: exception(ArgumentNullException)] access to property Length | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:21:158:31 | [finally: exception(Exception)] access to property Length | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:21:158:36 | [finally: exception(ArgumentNullException)] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:21:158:36 | [finally: exception(Exception)] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:36:158:36 | [finally: exception(ArgumentNullException)] 1 | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:158:36:158:36 | [finally: exception(Exception)] 1 | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:159:21:159:45 | [finally: exception(ArgumentNullException)] throw ...; | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:159:21:159:45 | [finally: exception(Exception)] throw ...; | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:159:27:159:44 | [finally: exception(ArgumentNullException)] object creation of type Exception | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:159:27:159:44 | [finally: exception(Exception)] object creation of type Exception | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:159:41:159:43 | [finally: exception(ArgumentNullException)] "1" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:159:41:159:43 | [finally: exception(Exception)] "1" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: Exception] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:13:164:13 | [finally: exception(ArgumentNullException), exception: NullReferenceException] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: Exception] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:13:164:13 | [finally: exception(Exception), exception: NullReferenceException] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: Exception] Exception e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:30:161:30 | [finally: exception(ArgumentNullException), exception: NullReferenceException] Exception e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: Exception] Exception e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:30:161:30 | [finally: exception(Exception), exception: NullReferenceException] Exception e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: Exception] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:39 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: Exception] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:39 | [finally: exception(Exception), exception: NullReferenceException] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: Exception] access to property Message | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:47 | [finally: exception(ArgumentNullException), exception: NullReferenceException] access to property Message | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: Exception] access to property Message | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:47 | [finally: exception(Exception), exception: NullReferenceException] access to property Message | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: Exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: Exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:39:161:54 | [finally: exception(Exception), exception: NullReferenceException] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: Exception] "1" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:52:161:54 | [finally: exception(ArgumentNullException), exception: NullReferenceException] "1" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: Exception] "1" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:161:52:161:54 | [finally: exception(Exception), exception: NullReferenceException] "1" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:162:13:164:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:162:13:164:13 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:17:163:42 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:17:163:42 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:17:163:43 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:17:163:43 | [finally: exception(Exception)] ...; | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:35:163:38 | [finally: exception(ArgumentNullException)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:35:163:38 | [finally: exception(Exception)] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:35:163:41 | [finally: exception(ArgumentNullException)] access to array element | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:35:163:41 | [finally: exception(Exception)] access to array element | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:40:163:40 | [finally: exception(ArgumentNullException)] 0 | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:163:40:163:40 | [finally: exception(Exception)] 0 | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:165:13:168:13 | [finally: exception(ArgumentNullException)] catch {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:165:13:168:13 | [finally: exception(Exception)] catch {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:166:13:168:13 | [finally: exception(ArgumentNullException)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:166:13:168:13 | [finally: exception(Exception)] {...} | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:167:17:167:37 | [finally: exception(ArgumentNullException)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:167:17:167:37 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:167:17:167:38 | [finally: exception(ArgumentNullException)] ...; | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:167:17:167:38 | [finally: exception(Exception)] ...; | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:167:35:167:36 | [finally: exception(ArgumentNullException)] "" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:167:35:167:36 | [finally: exception(Exception)] "" | Finally.cs:149:9:169:9 | try {...} ... |
-| Finally.cs:183:9:192:9 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:183:9:192:9 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:184:13:191:13 | [finally: exception(Exception), b1 (line 176): true] try {...} ... | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:184:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] try {...} ... | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:185:13:187:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:185:13:187:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:17:186:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:17:186:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:21:186:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:21:186:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:25:186:47 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:25:186:47 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:31:186:46 | [finally: exception(Exception), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:186:31:186:46 | [finally: exception(ExceptionA), b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:13:191:13 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:13:191:13 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:38:188:39 | [finally: exception(Exception), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:188:38:188:39 | [finally: exception(ExceptionA), exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:189:13:191:13 | [finally: exception(Exception), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:189:13:191:13 | [finally: exception(ExceptionA), b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:17:190:47 | [finally: exception(Exception), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:17:190:47 | [finally: exception(ExceptionA), b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:21:190:22 | [finally: exception(Exception), b1 (line 176): true] access to parameter b1 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:21:190:22 | [finally: exception(ExceptionA), b1 (line 176): true] access to parameter b1 | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:25:190:47 | [finally: exception(Exception)] throw ...; | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:25:190:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:31:190:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:190:31:190:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:178:9:192:9 | try {...} ... |
-| Finally.cs:202:9:212:9 | [finally: exception(Exception)] {...} | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:202:9:212:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:203:13:210:13 | [finally: exception(Exception)] try {...} ... | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:203:13:210:13 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:204:13:206:13 | [finally: exception(Exception)] {...} | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:204:13:206:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:17:205:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:17:205:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:21:205:22 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:21:205:22 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:25:205:47 | [finally: exception(Exception)] throw ...; | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:25:205:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:31:205:46 | [finally: exception(Exception)] object creation of type ExceptionB | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:205:31:205:46 | [finally: exception(ExceptionA)] object creation of type ExceptionB | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally(1): exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally(1): exception(ExceptionB)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception), finally(1): exception(ExceptionB)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally: exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:208:13:210:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally(1): exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:17:209:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally(1): exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally: exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(Exception)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:21:209:22 | [finally: exception(ExceptionA)] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally(1): exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally(1): exception(ExceptionB)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally: exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(Exception)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:25:209:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally: exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(Exception)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA), finally(1): exception(ExceptionB)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:209:31:209:46 | [finally: exception(ExceptionA)] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
-| Finally.cs:211:13:211:16 | [finally: exception(Exception)] this access | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:211:13:211:16 | [finally: exception(ExceptionA)] this access | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:211:13:211:28 | [finally: exception(Exception)] ... = ... | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:211:13:211:28 | [finally: exception(ExceptionA)] ... = ... | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:211:13:211:29 | [finally: exception(Exception)] ...; | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:211:13:211:29 | [finally: exception(ExceptionA)] ...; | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:211:26:211:28 | [finally: exception(Exception)] "0" | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:211:26:211:28 | [finally: exception(ExceptionA)] "0" | Finally.cs:197:9:212:9 | try {...} ... |
-| Finally.cs:243:13:253:13 | [finally: exception(Exception)] {...} | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:243:13:253:13 | [finally: exception(ExceptionA)] {...} | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:244:17:252:17 | [finally: exception(Exception)] try {...} ... | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:244:17:252:17 | [finally: exception(ExceptionA)] try {...} ... | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:245:17:248:17 | [finally: exception(Exception)] {...} | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:245:17:248:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:246:21:247:47 | [finally: exception(Exception)] if (...) ... | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:246:21:247:47 | [finally: exception(ExceptionA)] if (...) ... | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:246:25:246:26 | [finally: exception(Exception)] access to parameter b2 | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:246:25:246:26 | [finally: exception(ExceptionA)] access to parameter b2 | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:247:25:247:47 | [finally: exception(Exception)] throw ...; | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:247:25:247:47 | [finally: exception(ExceptionA)] throw ...; | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:247:31:247:46 | [finally: exception(Exception)] object creation of type ExceptionA | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:247:31:247:46 | [finally: exception(ExceptionA)] object creation of type ExceptionA | Finally.cs:237:13:253:13 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally(1): exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally(1): exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception), finally(1): exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally: exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(Exception)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:250:17:252:17 | [finally: exception(ExceptionA)] {...} | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally(1): exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(Exception)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:54 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally(1): exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally(1): exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception), finally(1): exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally: exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(Exception)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:21:251:55 | [finally: exception(ExceptionA)] ...; | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally(1): exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally: exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(Exception)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA), finally(1): exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:251:39:251:53 | [finally: exception(ExceptionA)] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
-| Finally.cs:257:9:259:9 | [finally: exception(Exception)] {...} | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:257:9:259:9 | [finally: exception(ExceptionA)] {...} | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:258:13:258:46 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:258:13:258:46 | [finally: exception(ExceptionA)] call to method WriteLine | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:258:13:258:47 | [finally: exception(Exception)] ...; | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:258:13:258:47 | [finally: exception(ExceptionA)] ...; | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:258:31:258:45 | [finally: exception(Exception)] "Outer finally" | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:258:31:258:45 | [finally: exception(ExceptionA)] "Outer finally" | Finally.cs:235:9:259:9 | try {...} ... |
-| Finally.cs:270:9:273:9 | [finally: exception(Exception)] {...} | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:271:13:271:34 | [finally: exception(Exception)] call to method WriteLine | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:271:13:271:35 | [finally: exception(Exception)] ...; | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:271:31:271:33 | [finally: exception(Exception)] "3" | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:272:13:272:13 | [finally: exception(Exception)] access to parameter i | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... + ... | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:272:13:272:18 | [finally: exception(Exception)] ... = ... | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:272:13:272:19 | [finally: exception(Exception)] ...; | Finally.cs:265:9:273:9 | try {...} ... |
-| Finally.cs:272:18:272:18 | [finally: exception(Exception)] 3 | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:140:9:143:9 | [finally: exception] {...} | Finally.cs:135:9:143:9 | try {...} ... |
+| Finally.cs:141:13:141:44 | [finally: exception] throw ...; | Finally.cs:135:9:143:9 | try {...} ... |
+| Finally.cs:141:19:141:43 | [finally: exception] object creation of type ArgumentException | Finally.cs:135:9:143:9 | try {...} ... |
+| Finally.cs:141:41:141:42 | [finally: exception] "" | Finally.cs:135:9:143:9 | try {...} ... |
+| Finally.cs:155:9:169:9 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:156:13:168:13 | [finally: exception] try {...} ... | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:157:13:160:13 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:158:17:159:45 | [finally: exception] if (...) ... | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:158:21:158:24 | [finally: exception] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:158:21:158:31 | [finally: exception] access to property Length | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:158:21:158:36 | [finally: exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:158:36:158:36 | [finally: exception] 1 | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:159:21:159:45 | [finally: exception] throw ...; | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:159:27:159:44 | [finally: exception] object creation of type Exception | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:159:41:159:43 | [finally: exception] "1" | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: Exception] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:13:164:13 | [finally: exception, exception: NullReferenceException] catch (...) {...} | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: Exception] Exception e | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:30:161:30 | [finally: exception, exception: NullReferenceException] Exception e | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: Exception] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:39:161:39 | [finally: exception, exception: NullReferenceException] access to local variable e | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: Exception] access to property Message | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:39:161:47 | [finally: exception, exception: NullReferenceException] access to property Message | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: Exception] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:39:161:54 | [finally: exception, exception: NullReferenceException] ... == ... | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: Exception] "1" | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:161:52:161:54 | [finally: exception, exception: NullReferenceException] "1" | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:162:13:164:13 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:163:17:163:42 | [finally: exception] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:163:17:163:43 | [finally: exception] ...; | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:163:35:163:38 | [finally: exception] access to parameter args | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:163:35:163:41 | [finally: exception] access to array element | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:163:40:163:40 | [finally: exception] 0 | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:165:13:168:13 | [finally: exception] catch {...} | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:166:13:168:13 | [finally: exception] {...} | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:167:17:167:37 | [finally: exception] call to method WriteLine | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:167:17:167:38 | [finally: exception] ...; | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:167:35:167:36 | [finally: exception] "" | Finally.cs:149:9:169:9 | try {...} ... |
+| Finally.cs:183:9:192:9 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:184:13:191:13 | [finally: exception, b1 (line 176): true] try {...} ... | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:185:13:187:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:186:17:186:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:186:21:186:22 | [finally: exception, b1 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:186:25:186:47 | [finally: exception, b1 (line 176): true, b2 (line 176): true] throw ...; | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:186:31:186:46 | [finally: exception, b1 (line 176): true, b2 (line 176): true] object creation of type ExceptionB | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:188:13:191:13 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] catch (...) {...} | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: Exception, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:188:38:188:39 | [finally: exception, exception: ExceptionB, b1 (line 176): true, b2 (line 176): true] access to parameter b2 | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:189:13:191:13 | [finally: exception, b1 (line 176): true] {...} | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:190:17:190:47 | [finally: exception, b1 (line 176): true] if (...) ... | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:190:21:190:22 | [finally: exception, b1 (line 176): true] access to parameter b1 | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:190:25:190:47 | [finally: exception] throw ...; | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:190:31:190:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:178:9:192:9 | try {...} ... |
+| Finally.cs:202:9:212:9 | [finally: exception] {...} | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:203:13:210:13 | [finally: exception] try {...} ... | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:204:13:206:13 | [finally: exception] {...} | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:205:17:205:47 | [finally: exception] if (...) ... | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:205:21:205:22 | [finally: exception] access to parameter b2 | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:205:25:205:47 | [finally: exception] throw ...; | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:205:31:205:46 | [finally: exception] object creation of type ExceptionB | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:208:13:210:13 | [finally(1): exception] {...} | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:208:13:210:13 | [finally: exception, finally(1): exception] {...} | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:208:13:210:13 | [finally: exception] {...} | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:17:209:47 | [finally(1): exception] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:17:209:47 | [finally: exception, finally(1): exception] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:17:209:47 | [finally: exception] if (...) ... | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:21:209:22 | [finally(1): exception] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:21:209:22 | [finally: exception, finally(1): exception] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:21:209:22 | [finally: exception] access to parameter b3 | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:25:209:47 | [finally(1): exception] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:25:209:47 | [finally: exception, finally(1): exception] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:25:209:47 | [finally: exception] throw ...; | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:31:209:46 | [finally(1): exception] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:31:209:46 | [finally: exception, finally(1): exception] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:209:31:209:46 | [finally: exception] object creation of type ExceptionC | Finally.cs:203:13:210:13 | try {...} ... |
+| Finally.cs:211:13:211:16 | [finally: exception] this access | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:211:13:211:28 | [finally: exception] ... = ... | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:211:13:211:29 | [finally: exception] ...; | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:211:26:211:28 | [finally: exception] "0" | Finally.cs:197:9:212:9 | try {...} ... |
+| Finally.cs:243:13:253:13 | [finally: exception] {...} | Finally.cs:237:13:253:13 | try {...} ... |
+| Finally.cs:244:17:252:17 | [finally: exception] try {...} ... | Finally.cs:237:13:253:13 | try {...} ... |
+| Finally.cs:245:17:248:17 | [finally: exception] {...} | Finally.cs:237:13:253:13 | try {...} ... |
+| Finally.cs:246:21:247:47 | [finally: exception] if (...) ... | Finally.cs:237:13:253:13 | try {...} ... |
+| Finally.cs:246:25:246:26 | [finally: exception] access to parameter b2 | Finally.cs:237:13:253:13 | try {...} ... |
+| Finally.cs:247:25:247:47 | [finally: exception] throw ...; | Finally.cs:237:13:253:13 | try {...} ... |
+| Finally.cs:247:31:247:46 | [finally: exception] object creation of type ExceptionA | Finally.cs:237:13:253:13 | try {...} ... |
+| Finally.cs:250:17:252:17 | [finally(1): exception] {...} | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:250:17:252:17 | [finally: exception, finally(1): exception] {...} | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:250:17:252:17 | [finally: exception] {...} | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:21:251:54 | [finally(1): exception] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:21:251:54 | [finally: exception, finally(1): exception] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:21:251:54 | [finally: exception] call to method WriteLine | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:21:251:55 | [finally(1): exception] ...; | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:21:251:55 | [finally: exception, finally(1): exception] ...; | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:21:251:55 | [finally: exception] ...; | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:39:251:53 | [finally(1): exception] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:39:251:53 | [finally: exception, finally(1): exception] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:251:39:251:53 | [finally: exception] "Inner finally" | Finally.cs:244:17:252:17 | try {...} ... |
+| Finally.cs:257:9:259:9 | [finally: exception] {...} | Finally.cs:235:9:259:9 | try {...} ... |
+| Finally.cs:258:13:258:46 | [finally: exception] call to method WriteLine | Finally.cs:235:9:259:9 | try {...} ... |
+| Finally.cs:258:13:258:47 | [finally: exception] ...; | Finally.cs:235:9:259:9 | try {...} ... |
+| Finally.cs:258:31:258:45 | [finally: exception] "Outer finally" | Finally.cs:235:9:259:9 | try {...} ... |
+| Finally.cs:270:9:273:9 | [finally: exception] {...} | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:271:13:271:34 | [finally: exception] call to method WriteLine | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:271:13:271:35 | [finally: exception] ...; | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:271:31:271:33 | [finally: exception] "3" | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:272:13:272:13 | [finally: exception] access to parameter i | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:272:13:272:18 | [finally: exception] ... + ... | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:272:13:272:18 | [finally: exception] ... = ... | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:272:13:272:19 | [finally: exception] ...; | Finally.cs:265:9:273:9 | try {...} ... |
+| Finally.cs:272:18:272:18 | [finally: exception] 3 | Finally.cs:265:9:273:9 | try {...} ... |
| cflow.cs:274:9:276:9 | [finally: return] {...} | cflow.cs:268:9:276:9 | try {...} ... |
| cflow.cs:275:13:275:41 | [finally: return] call to method WriteLine | cflow.cs:268:9:276:9 | try {...} ... |
| cflow.cs:275:13:275:42 | [finally: return] ...; | cflow.cs:268:9:276:9 | try {...} ... |
diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql
index fb937bfbd9f..3f4ed835fc2 100644
--- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql
+++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.ql
@@ -12,7 +12,7 @@ class MyFinallySplitControlFlowNode extends ElementNode {
exists(Splitting::FinallySplitting::FinallySplitType type |
type = this.getASplit().(FinallySplit).getType()
|
- not type instanceof SuccessorTypes::NormalSuccessor
+ not type instanceof DirectSuccessor
)
}
diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected
index b8a976a78a6..2c4b9de438e 100644
--- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected
+++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected
@@ -45,9 +45,9 @@
| patterns.cs:110:25:110:25 | 0 | patterns.cs:110:22:110:26 | (..., ...) | semmle.label | successor |
| patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:13:111:17 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:111:13:111:17 | ( ... ) | patterns.cs:111:14:111:14 | 1 | semmle.label | match |
-| patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) |
+| patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception |
| patterns.cs:111:13:111:17 | [match] { ... } | patterns.cs:111:23:111:23 | 0 | semmle.label | match |
-| patterns.cs:111:13:111:17 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) |
+| patterns.cs:111:13:111:17 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception |
| patterns.cs:111:13:111:26 | ... => ... | patterns.cs:108:24:112:9 | ... switch { ... } | semmle.label | successor |
| patterns.cs:111:14:111:14 | 1 | patterns.cs:111:13:111:17 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:111:14:111:14 | 1 | patterns.cs:111:16:111:16 | 0 | semmle.label | match |
@@ -89,9 +89,9 @@
| patterns.cs:118:32:118:33 | access to local variable x2 | patterns.cs:118:28:118:34 | (..., ...) | semmle.label | successor |
| patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:13:119:28 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:119:13:119:28 | ( ... ) | patterns.cs:119:14:119:19 | Int32 x2 | semmle.label | match |
-| patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) |
+| patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception |
| patterns.cs:119:13:119:28 | [match] { ... } | patterns.cs:119:34:119:34 | 0 | semmle.label | match |
-| patterns.cs:119:13:119:28 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception(InvalidOperationException) |
+| patterns.cs:119:13:119:28 | [no-match] { ... } | patterns.cs:98:10:98:20 | exit Expressions (abnormal) | semmle.label | exception |
| patterns.cs:119:13:119:38 | ... => ... | patterns.cs:115:20:120:9 | ... switch { ... } | semmle.label | successor |
| patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:13:119:28 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:119:14:119:19 | Int32 x2 | patterns.cs:119:22:119:27 | Int32 y2 | semmle.label | match |
@@ -148,7 +148,7 @@
| patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | [match] { ... } | semmle.label | match |
| patterns.cs:130:17:130:17 | 2 | patterns.cs:130:13:130:18 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:130:23:130:23 | 2 | patterns.cs:130:13:130:23 | ... => ... | semmle.label | successor |
-| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception(InvalidOperationException) |
+| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception |
| patterns.cs:131:13:131:22 | (..., ...) | patterns.cs:131:27:131:27 | 3 | semmle.label | match |
| patterns.cs:131:13:131:27 | ... => ... | patterns.cs:126:17:132:9 | ... switch { ... } | semmle.label | successor |
| patterns.cs:131:18:131:18 | Int32 x | patterns.cs:131:21:131:21 | _ | semmle.label | successor |
@@ -162,9 +162,9 @@
| patterns.cs:136:17:143:13 | ... switch { ... } | patterns.cs:136:13:143:13 | ... = ... | semmle.label | successor |
| patterns.cs:138:17:138:17 | 1 | patterns.cs:138:28:138:50 | object creation of type ArgumentException | semmle.label | match |
| patterns.cs:138:17:138:17 | 1 | patterns.cs:139:17:139:17 | 2 | semmle.label | no-match |
-| patterns.cs:138:22:138:50 | throw ... | patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | semmle.label | exception(ArgumentException) |
+| patterns.cs:138:22:138:50 | throw ... | patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | semmle.label | exception |
| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:138:22:138:50 | throw ... | semmle.label | successor |
-| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | semmle.label | exception(Exception) |
+| patterns.cs:138:28:138:50 | object creation of type ArgumentException | patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | semmle.label | exception |
| patterns.cs:139:17:139:17 | 2 | patterns.cs:139:22:139:22 | 3 | semmle.label | match |
| patterns.cs:139:17:139:17 | 2 | patterns.cs:140:17:140:24 | Object y | semmle.label | no-match |
| patterns.cs:139:17:139:22 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor |
@@ -187,16 +187,16 @@
| patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:17:142:36 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:142:17:142:24 | access to type MyStruct | patterns.cs:142:31:142:32 | 10 | semmle.label | match |
| patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:142:41:142:41 | 6 | semmle.label | match |
-| patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception(InvalidOperationException) |
-| patterns.cs:142:17:142:36 | [no-match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception(InvalidOperationException) |
+| patterns.cs:142:17:142:36 | [match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception |
+| patterns.cs:142:17:142:36 | [no-match] { ... } | patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | semmle.label | exception |
| patterns.cs:142:17:142:41 | ... => ... | patterns.cs:136:17:143:13 | ... switch { ... } | semmle.label | successor |
| patterns.cs:142:26:142:34 | [match] { ... } | patterns.cs:142:17:142:36 | [match] { ... } | semmle.label | match |
| patterns.cs:142:26:142:34 | [no-match] { ... } | patterns.cs:142:17:142:36 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:142:31:142:32 | 10 | patterns.cs:142:26:142:34 | [match] { ... } | semmle.label | match |
| patterns.cs:142:31:142:32 | 10 | patterns.cs:142:26:142:34 | [no-match] { ... } | semmle.label | no-match |
| patterns.cs:142:41:142:41 | 6 | patterns.cs:142:17:142:41 | ... => ... | semmle.label | successor |
-| patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception(ArgumentException) |
-| patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception(Exception) |
+| patterns.cs:145:9:148:9 | [exception: ArgumentException] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception |
+| patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | patterns.cs:123:10:123:21 | exit Expressions2 (abnormal) | semmle.label | exception |
| patterns.cs:145:9:148:9 | [exception: Exception] catch (...) {...} | patterns.cs:145:41:145:42 | [exception: Exception] InvalidOperationException ex | semmle.label | match |
| patterns.cs:145:9:148:9 | [exception: InvalidOperationException] catch (...) {...} | patterns.cs:145:41:145:42 | [exception: InvalidOperationException] InvalidOperationException ex | semmle.label | match |
| patterns.cs:145:41:145:42 | [exception: Exception] InvalidOperationException ex | patterns.cs:146:9:148:9 | {...} | semmle.label | successor |
diff --git a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.cs b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.cs
index 9470b4536dc..109be4aa995 100644
--- a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.cs
+++ b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.cs
@@ -233,3 +233,33 @@ public interface InterfaceB
{
void Foo(A2 a, object o, bool cond);
}
+
+public class A3
+{
+ public virtual void M1(object o)
+ {
+ this.M2(o);
+ }
+
+ public virtual void M2(object o)
+ {
+ Sink(o); // should not have flow
+ }
+
+ public static void Sink(object o)
+ {
+ }
+}
+
+public class A4 : A3
+{
+ public override void M2(object o)
+ {
+ Sink(o); // should have flow
+ }
+
+ private void CallM1()
+ {
+ base.M1(new object());
+ }
+}
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 dfe1a951b27..955202f6afd 100644
--- a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected
+++ b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected
@@ -59,6 +59,10 @@ edges
| CallSensitivityFlow.cs:187:13:187:13 | access to local variable o : Object | CallSensitivityFlow.cs:188:14:188:14 | access to local variable o | provenance | |
| CallSensitivityFlow.cs:187:17:187:30 | call to method CallMOut : Object | CallSensitivityFlow.cs:187:13:187:13 | access to local variable o : Object | provenance | |
| CallSensitivityFlow.cs:205:40:205:40 | o : Object | CallSensitivityFlow.cs:208:18:208:18 | access to parameter o | provenance | |
+| CallSensitivityFlow.cs:239:35:239:35 | o : Object | CallSensitivityFlow.cs:241:17:241:17 | access to parameter o : Object | provenance | |
+| CallSensitivityFlow.cs:241:17:241:17 | access to parameter o : Object | CallSensitivityFlow.cs:256:36:256:36 | o : Object | provenance | |
+| CallSensitivityFlow.cs:256:36:256:36 | o : Object | CallSensitivityFlow.cs:258:14:258:14 | access to parameter o | provenance | |
+| CallSensitivityFlow.cs:263:17:263:28 | object creation of type Object : Object | CallSensitivityFlow.cs:239:35:239:35 | o : Object | provenance | |
nodes
| CallSensitivityFlow.cs:7:38:7:38 | o : Object | semmle.label | o : Object |
| CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | semmle.label | access to parameter o : Object |
@@ -132,6 +136,11 @@ nodes
| CallSensitivityFlow.cs:188:14:188:14 | access to local variable o | semmle.label | access to local variable o |
| CallSensitivityFlow.cs:205:40:205:40 | o : Object | semmle.label | o : Object |
| CallSensitivityFlow.cs:208:18:208:18 | access to parameter o | semmle.label | access to parameter o |
+| CallSensitivityFlow.cs:239:35:239:35 | o : Object | semmle.label | o : Object |
+| CallSensitivityFlow.cs:241:17:241:17 | access to parameter o : Object | semmle.label | access to parameter o : Object |
+| CallSensitivityFlow.cs:256:36:256:36 | o : Object | semmle.label | o : Object |
+| CallSensitivityFlow.cs:258:14:258:14 | access to parameter o | semmle.label | access to parameter o |
+| CallSensitivityFlow.cs:263:17:263:28 | object creation of type Object : Object | semmle.label | object creation of type Object : Object |
subpaths
| CallSensitivityFlow.cs:85:26:85:37 | object creation of type Object : Object | CallSensitivityFlow.cs:7:38:7:38 | o : Object | CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | CallSensitivityFlow.cs:85:14:85:44 | call to method FlowThrough |
| CallSensitivityFlow.cs:105:26:105:37 | object creation of type Object : Object | CallSensitivityFlow.cs:7:38:7:38 | o : Object | CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | CallSensitivityFlow.cs:105:14:105:41 | call to method FlowThrough |
@@ -156,3 +165,4 @@ subpaths
| CallSensitivityFlow.cs:172:37:172:48 | object creation of type Object : Object | CallSensitivityFlow.cs:172:37:172:48 | object creation of type Object : Object | CallSensitivityFlow.cs:188:14:188:14 | access to local variable o | $@ | CallSensitivityFlow.cs:188:14:188:14 | access to local variable o | access to local variable o |
| CallSensitivityFlow.cs:182:21:182:32 | object creation of type Object : Object | CallSensitivityFlow.cs:182:21:182:32 | object creation of type Object : Object | CallSensitivityFlow.cs:208:18:208:18 | access to parameter o | $@ | CallSensitivityFlow.cs:208:18:208:18 | access to parameter o | access to parameter o |
| CallSensitivityFlow.cs:185:21:185:32 | object creation of type Object : Object | CallSensitivityFlow.cs:185:21:185:32 | object creation of type Object : Object | CallSensitivityFlow.cs:164:14:164:14 | access to parameter o | $@ | CallSensitivityFlow.cs:164:14:164:14 | access to parameter o | access to parameter o |
+| CallSensitivityFlow.cs:263:17:263:28 | object creation of type Object : Object | CallSensitivityFlow.cs:263:17:263:28 | object creation of type Object : Object | CallSensitivityFlow.cs:258:14:258:14 | access to parameter o | $@ | CallSensitivityFlow.cs:258:14:258:14 | access to parameter o | access to parameter o |
diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected
index a87c1fea375..36e23003fcc 100644
--- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected
+++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected
@@ -20882,24 +20882,33 @@ summary
| System.Xml;XmlDictionaryReader;CreateDictionaryReader;(System.Xml.XmlReader);Argument[0];ReturnValue;value;dfc-generated |
| System.Xml;XmlDictionaryReader;CreateMtomReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated |
| System.Xml;XmlDictionaryReader;CreateMtomReader;(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
-| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
-| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[0].Element;ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[0];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[3];Argument[3].Parameter[delegate-self];value;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;manual |
| System.Xml;XmlDictionaryReader;GetAttribute;(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryReader;GetNonAtomizedNames;(System.String,System.String);Argument[this];Argument[0];taint;df-generated |
| System.Xml;XmlDictionaryReader;GetNonAtomizedNames;(System.String,System.String);Argument[this];Argument[1];taint;df-generated |
-| System.Xml;XmlDictionaryReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlDictionaryReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];Argument[1];taint;df-generated |
-| System.Xml;XmlDictionaryReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlDictionaryReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlDictionaryReader;ReadContentAsBase64;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadContentAsBinHex;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadContentAsBinHex;(System.Int32);Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadContentAsChars;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
| System.Xml;XmlDictionaryReader;ReadContentAsQualifiedName;(System.String,System.String);Argument[this];Argument[0];taint;df-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsQualifiedName;(System.String,System.String);Argument[this];Argument[1];taint;df-generated |
-| System.Xml;XmlDictionaryReader;ReadContentAsString;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlDictionaryReader;ReadContentAsString;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlDictionaryReader;ReadContentAsString;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsString;(System.String[],System.Int32);Argument[0].Element;ReturnValue;value;dfc-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsString;(System.Xml.XmlDictionaryString[],System.Int32);Argument[0].Element.Property[System.Xml.XmlDictionaryString.Value];ReturnValue;value;dfc-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsUniqueId;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlDictionaryReader;ReadElementContentAsString;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlDictionaryReader;ReadElementContentAsBase64;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadElementContentAsBinHex;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadElementContentAsString;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlDictionaryReader;ReadElementContentAsUniqueId;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlDictionaryReader;ReadString;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlDictionaryReader;ReadString;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlDictionaryReader;ReadString;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryReader;get_Quotas;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryString;ToString;();Argument[this].SyntheticField[System.Xml.XmlDictionaryString._value];ReturnValue;value;dfc-generated |
@@ -21261,30 +21270,28 @@ summary
| System.Xml;XmlNodeList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual |
| System.Xml;XmlNodeList;Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlNodeList;get_ItemOf;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlNodeReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlNodeReader;GetNamespacesInScope;(System.Xml.XmlNamespaceScope);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlNodeReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-generated |
+| System.Xml;XmlNodeReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-manual |
| System.Xml;XmlNodeReader;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlNodeReader;MoveToAttribute;(System.String);Argument[0];Argument[this];taint;df-generated |
-| System.Xml;XmlNodeReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlNodeReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlNodeReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlNodeReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlNodeReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;dfc-generated |
-| System.Xml;XmlNodeReader;ReadString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;ReadString;();Argument[this];ReturnValue;taint;dfc-generated |
+| System.Xml;XmlNodeReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlNodeReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlNodeReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlNodeReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlNodeReader;ReadString;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlNodeReader;XmlNodeReader;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlNodeReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;get_LocalName;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;get_Name;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;get_NameTable;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;get_Prefix;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;get_SchemaInfo;();Argument[this];ReturnValue;value;dfc-generated |
-| System.Xml;XmlNodeReader;get_Value;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlNodeReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;get_LocalName;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;get_Name;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;get_NameTable;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;get_Prefix;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlNodeReader;get_SchemaInfo;();Argument[this];ReturnValue;value;dfc-manual |
+| System.Xml;XmlNodeReader;get_Value;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlNodeReader;get_XmlLang;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlNotation;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlNotation;WriteContentTo;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated |
@@ -21337,60 +21344,58 @@ summary
| System.Xml;XmlReader;Create;(System.String,System.Xml.XmlReaderSettings);Argument[0];ReturnValue;taint;manual |
| System.Xml;XmlReader;Create;(System.String,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);Argument[0];ReturnValue;taint;manual |
| System.Xml;XmlReader;Create;(System.Xml.XmlReader,System.Xml.XmlReaderSettings);Argument[0];ReturnValue;taint;manual |
-| System.Xml;XmlReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;GetValueAsync;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-generated |
+| System.Xml;XmlReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;GetValueAsync;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-manual |
| System.Xml;XmlReader;MoveToAttribute;(System.String);Argument[0];Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];Argument[1];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsObject;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsStringAsync;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsObject;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsObjectAsync;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadContentAsString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsStringAsync;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];Argument[1];taint;df-generated |
| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[this];Argument[1];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsObject;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsObject;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsString;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementString;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementString;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadInnerXml;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadOuterXml;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadSubtree;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Item;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_LocalName;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Name;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_NameTable;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Prefix;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_SchemaInfo;();Argument[this];ReturnValue;value;dfc-generated |
+| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsObject;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsObject;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsString;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementString;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementString;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadInnerXml;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadInnerXmlAsync;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadOuterXml;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadOuterXmlAsync;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadSubtree;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadValueChunk;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadValueChunkAsync;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Item;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Item;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_LocalName;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Name;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_NameTable;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Prefix;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_SchemaInfo;();Argument[this];ReturnValue;value;dfc-manual |
| System.Xml;XmlReader;get_Settings;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Value;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlReader;get_Value;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlReader;get_XmlLang;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlReaderSettings;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Xml;XmlReaderSettings;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -21430,43 +21435,44 @@ summary
| System.Xml;XmlText;get_ParentNode;();Argument[this];ReturnValue;taint;manual |
| System.Xml;XmlText;get_PreviousText;();Argument[this];ReturnValue;taint;manual |
| System.Xml;XmlText;get_Value;();Argument[this];ReturnValue;taint;manual |
-| System.Xml;XmlTextReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;GetNamespacesInScope;(System.Xml.XmlNamespaceScope);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;GetRemainder;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlTextReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;GetNamespacesInScope;(System.Xml.XmlNamespaceScope);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;GetRemainder;();Argument[this];ReturnValue;taint;manual |
| System.Xml;XmlTextReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-generated |
+| System.Xml;XmlTextReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-manual |
| System.Xml;XmlTextReader;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlTextReader;MoveToAttribute;(System.String);Argument[0];Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;dfc-generated |
-| System.Xml;XmlTextReader;ReadString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;ReadString;();Argument[this];ReturnValue;taint;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];taint;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.Stream,System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];value;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.TextReader,System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];value;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];taint;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._nameTable];value;dfc-generated |
-| System.Xml;XmlTextReader;get_BaseURI;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];ReturnValue;value;df-generated |
-| System.Xml;XmlTextReader;get_BaseURI;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];ReturnValue;value;dfc-generated |
-| System.Xml;XmlTextReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_BaseURI;();Argument[this];ReturnValue;taint;dfc-generated |
+| System.Xml;XmlTextReader;ReadBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadChars;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.TextReader);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.TextReader,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.Stream);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.Stream,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.TextReader);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.TextReader,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlTextReader;get_Encoding;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_LocalName;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_Name;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_NameTable;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._nameTable];ReturnValue;value;df-generated |
-| System.Xml;XmlTextReader;get_NameTable;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._nameTable];ReturnValue;value;dfc-generated |
-| System.Xml;XmlTextReader;get_NameTable;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_NameTable;();Argument[this];ReturnValue;taint;dfc-generated |
-| System.Xml;XmlTextReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_Prefix;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_Value;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlTextReader;get_LocalName;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;get_Name;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;get_NameTable;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;get_Prefix;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlTextReader;get_Value;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlTextReader;get_XmlLang;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlTextReader;set_XmlResolver;(System.Xml.XmlResolver);Argument[0];Argument[this];taint;df-generated |
| System.Xml;XmlTextWriter;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated |
@@ -21541,37 +21547,35 @@ summary
| System.Xml;XmlUrlResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated |
| System.Xml;XmlUrlResolver;set_Credentials;(System.Net.ICredentials);Argument[0];Argument[this];taint;df-generated |
| System.Xml;XmlUrlResolver;set_Proxy;(System.Net.IWebProxy);Argument[0];Argument[this];taint;df-generated |
-| System.Xml;XmlValidatingReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlValidatingReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlValidatingReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlValidatingReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlValidatingReader;GetNamespacesInScope;(System.Xml.XmlNamespaceScope);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlValidatingReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-generated |
+| System.Xml;XmlValidatingReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-manual |
| System.Xml;XmlValidatingReader;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlValidatingReader;MoveToAttribute;(System.String);Argument[0];Argument[this];taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;dfc-generated |
-| System.Xml;XmlValidatingReader;ReadString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadString;();Argument[this];ReturnValue;taint;dfc-generated |
+| System.Xml;XmlValidatingReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlValidatingReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlValidatingReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlValidatingReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlValidatingReader;ReadString;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlValidatingReader;ReadTypedValue;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlValidatingReader;XmlValidatingReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
| System.Xml;XmlValidatingReader;XmlValidatingReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
| System.Xml;XmlValidatingReader;XmlValidatingReader;(System.Xml.XmlReader);Argument[0];Argument[this];taint;df-generated |
| System.Xml;XmlValidatingReader;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
-| System.Xml;XmlValidatingReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlValidatingReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlValidatingReader;get_Encoding;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;get_LocalName;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;get_Name;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;get_NameTable;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;get_Prefix;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlValidatingReader;get_LocalName;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlValidatingReader;get_Name;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlValidatingReader;get_NameTable;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlValidatingReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlValidatingReader;get_Prefix;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlValidatingReader;get_Reader;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlValidatingReader;get_SchemaType;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlValidatingReader;get_Schemas;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;get_Value;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlValidatingReader;get_Value;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlValidatingReader;get_XmlLang;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlValidatingReader;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Xml;XmlWhitespace;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;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 ef56fb2f1e2..25ac85e9548 100644
--- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected
+++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected
@@ -16210,17 +16210,28 @@
| System.Xml;XmlDictionaryReader;CreateDictionaryReader;(System.Xml.XmlReader);Argument[0];ReturnValue;value;dfc-generated |
| System.Xml;XmlDictionaryReader;CreateMtomReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[7];Argument[7].Parameter[delegate-self];value;hq-generated |
| System.Xml;XmlDictionaryReader;CreateMtomReader;(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
-| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated |
-| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[0].Element;ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[5];Argument[5].Parameter[delegate-self];value;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[0];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose);Argument[3];Argument[3].Parameter[delegate-self];value;manual |
+| System.Xml;XmlDictionaryReader;CreateTextReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;manual |
| System.Xml;XmlDictionaryReader;GetAttribute;(System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryReader;GetNonAtomizedNames;(System.String,System.String);Argument[this];Argument[0];taint;df-generated |
| System.Xml;XmlDictionaryReader;GetNonAtomizedNames;(System.String,System.String);Argument[this];Argument[1];taint;df-generated |
+| System.Xml;XmlDictionaryReader;ReadContentAsBase64;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadContentAsBinHex;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadContentAsBinHex;(System.Int32);Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadContentAsChars;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
| System.Xml;XmlDictionaryReader;ReadContentAsQualifiedName;(System.String,System.String);Argument[this];Argument[0];taint;df-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsQualifiedName;(System.String,System.String);Argument[this];Argument[1];taint;df-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsString;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsString;(System.String[],System.Int32);Argument[0].Element;ReturnValue;value;dfc-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsString;(System.Xml.XmlDictionaryString[],System.Int32);Argument[0].Element.Property[System.Xml.XmlDictionaryString.Value];ReturnValue;value;dfc-generated |
| System.Xml;XmlDictionaryReader;ReadContentAsUniqueId;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlDictionaryReader;ReadElementContentAsBase64;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlDictionaryReader;ReadElementContentAsBinHex;();Argument[this];ReturnValue;taint;manual |
| System.Xml;XmlDictionaryReader;ReadElementContentAsUniqueId;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryReader;ReadString;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlDictionaryReader;get_Quotas;();Argument[this];ReturnValue;taint;df-generated |
@@ -16503,8 +16514,6 @@
| System.Xml;XmlNodeChangedEventHandler;BeginInvoke;(System.Object,System.Xml.XmlNodeChangedEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated |
| System.Xml;XmlNodeList;Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlNodeList;get_ItemOf;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated |
-| System.Xml;XmlNodeReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;dfc-generated |
| System.Xml;XmlNodeReader;XmlNodeReader;(System.Xml.XmlNode);Argument[0].Element;Argument[this];taint;df-generated |
| System.Xml;XmlNotation;get_PublicId;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlNotation;get_SystemId;();Argument[this];ReturnValue;taint;df-generated |
@@ -16539,60 +16548,58 @@
| System.Xml;XmlReader;Create;(System.String,System.Xml.XmlReaderSettings);Argument[0];ReturnValue;taint;manual |
| System.Xml;XmlReader;Create;(System.String,System.Xml.XmlReaderSettings,System.Xml.XmlParserContext);Argument[0];ReturnValue;taint;manual |
| System.Xml;XmlReader;Create;(System.Xml.XmlReader,System.Xml.XmlReaderSettings);Argument[0];ReturnValue;taint;manual |
-| System.Xml;XmlReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;GetValueAsync;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-generated |
+| System.Xml;XmlReader;GetAttribute;(System.Int32);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;GetAttribute;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;GetAttribute;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;GetValueAsync;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-manual |
| System.Xml;XmlReader;MoveToAttribute;(System.String);Argument[0];Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];Argument[1];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsObject;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadContentAsStringAsync;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlReader;ReadContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadContentAsObject;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsObjectAsync;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadContentAsString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadContentAsStringAsync;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];Argument[1];taint;df-generated |
| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[this];Argument[1];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[1];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsObject;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsObject;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementContentAsString;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementString;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadElementString;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadInnerXml;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadOuterXml;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadString;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;ReadSubtree;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Item;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_LocalName;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Name;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_NameTable;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Prefix;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_SchemaInfo;();Argument[this];ReturnValue;value;dfc-generated |
+| System.Xml;XmlReader;ReadElementContentAs;(System.Type,System.Xml.IXmlNamespaceResolver,System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsAsync;(System.Type,System.Xml.IXmlNamespaceResolver);Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBase64Async;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsBinHexAsync;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadElementContentAsObject;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsObject;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementContentAsString;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementString;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadElementString;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadInnerXml;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadInnerXmlAsync;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadOuterXml;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadOuterXmlAsync;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlReader;ReadString;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadSubtree;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;ReadValueChunk;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;ReadValueChunkAsync;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlReader;get_BaseURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Item;(System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Item;(System.String,System.String);Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_LocalName;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Name;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_NameTable;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_NamespaceURI;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_Prefix;();Argument[this];ReturnValue;taint;df-manual |
+| System.Xml;XmlReader;get_SchemaInfo;();Argument[this];ReturnValue;value;dfc-manual |
| System.Xml;XmlReader;get_Settings;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlReader;get_Value;();Argument[this];ReturnValue;taint;df-generated |
+| System.Xml;XmlReader;get_Value;();Argument[this];ReturnValue;taint;df-manual |
| System.Xml;XmlReader;get_XmlLang;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlReaderSettings;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
| System.Xml;XmlReaderSettings;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated |
@@ -16608,21 +16615,25 @@
| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated |
| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated |
| System.Xml;XmlText;SplitText;(System.Int32);Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;GetRemainder;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];taint;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.Stream,System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];value;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.TextReader,System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];value;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];taint;dfc-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
-| System.Xml;XmlTextReader;XmlTextReader;(System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._nameTable];value;dfc-generated |
-| System.Xml;XmlTextReader;get_BaseURI;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];ReturnValue;value;df-generated |
-| System.Xml;XmlTextReader;get_BaseURI;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._reportedBaseUri];ReturnValue;value;dfc-generated |
+| System.Xml;XmlTextReader;GetNamespacesInScope;(System.Xml.XmlNamespaceScope);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;GetRemainder;();Argument[this];ReturnValue;taint;manual |
+| System.Xml;XmlTextReader;ReadBase64;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadBinHex;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;ReadChars;(System.Char[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.TextReader);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.IO.TextReader,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.Stream);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.Stream,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.TextReader);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.IO.TextReader,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[0];Argument[this];taint;manual |
+| System.Xml;XmlTextReader;XmlTextReader;(System.Xml.XmlNameTable);Argument[0];Argument[this];taint;manual |
| System.Xml;XmlTextReader;get_Encoding;();Argument[this];ReturnValue;taint;df-generated |
-| System.Xml;XmlTextReader;get_NameTable;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._nameTable];ReturnValue;value;df-generated |
-| System.Xml;XmlTextReader;get_NameTable;();Argument[this].SyntheticField[System.Xml.XmlTextReader._impl].SyntheticField[System.Xml.XmlTextReaderImpl._nameTable];ReturnValue;value;dfc-generated |
| System.Xml;XmlTextReader;set_XmlResolver;(System.Xml.XmlResolver);Argument[0];Argument[this];taint;df-generated |
| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated |
| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated |
@@ -16653,8 +16664,6 @@
| System.Xml;XmlTextWriter;get_BaseStream;();Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter].Property[System.IO.StreamWriter.BaseStream];ReturnValue;value;dfc-generated |
| System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated |
| System.Xml;XmlUrlResolver;set_Proxy;(System.Net.IWebProxy);Argument[0];Argument[this];taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;df-generated |
-| System.Xml;XmlValidatingReader;ReadString;();Argument[this].Property[System.Xml.XmlReader.Value];ReturnValue;taint;dfc-generated |
| System.Xml;XmlValidatingReader;ReadTypedValue;();Argument[this];ReturnValue;taint;df-generated |
| System.Xml;XmlValidatingReader;XmlValidatingReader;(System.IO.Stream,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
| System.Xml;XmlValidatingReader;XmlValidatingReader;(System.String,System.Xml.XmlNodeType,System.Xml.XmlParserContext);Argument[2];Argument[this];taint;df-generated |
diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected
index 8d0e2b8261d..7fa4581f5aa 100644
--- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected
+++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDef.expected
@@ -35,7 +35,7 @@
| Capture.cs:248:36:248:36 | j | Capture.cs:251:13:251:17 | SSA def(j) |
| Consistency.cs:7:25:7:25 | b | Consistency.cs:7:25:7:25 | SSA param(b) |
| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) |
-| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) |
+| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) |
| Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) |
| Consistency.cs:26:13:26:19 | c.Field | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) |
| Consistency.cs:30:30:30:30 | c | Consistency.cs:32:9:32:29 | SSA def(c) |
diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected
index 272db29e6f4..02e4624488e 100644
--- a/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected
+++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaDefElement.expected
@@ -35,7 +35,7 @@
| Capture.cs:251:13:251:17 | SSA def(j) | Capture.cs:251:13:251:17 | ... = ... |
| Consistency.cs:7:25:7:25 | SSA param(b) | Consistency.cs:7:25:7:25 | b |
| Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... |
-| Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... |
+| Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... |
| Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:25:9:25:30 | call to method Out |
| Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | Consistency.cs:25:9:25:30 | call to method Out |
| Consistency.cs:32:9:32:29 | SSA def(c) | Consistency.cs:32:9:32:29 | ... = ... |
diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected
index 3dfc82d27ad..4a2158c6736 100644
--- a/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected
+++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaExplicitDef.expected
@@ -15,7 +15,7 @@
| Capture.cs:212:30:212:35 | exited | Capture.cs:212:30:212:71 | SSA def(exited) | Capture.cs:212:30:212:71 | EventHandler exited = ... |
| Capture.cs:248:36:248:36 | j | Capture.cs:251:13:251:17 | SSA def(j) | Capture.cs:251:13:251:17 | ... = ... |
| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... |
-| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... |
+| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:15:17:15:21 | Int32 i = ... |
| Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:25:29:25:29 | Consistency c |
| Consistency.cs:30:30:30:30 | c | Consistency.cs:32:9:32:29 | SSA def(c) | Consistency.cs:32:9:32:29 | ... = ... |
| Consistency.cs:44:11:44:11 | s | Consistency.cs:44:11:44:11 | SSA def(s) | Consistency.cs:44:11:44:11 | S s |
diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected
index 9daa4269711..cc6a0e59546 100644
--- a/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected
+++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaRead.expected
@@ -35,7 +35,7 @@
| Capture.cs:212:30:212:35 | exited | Capture.cs:212:30:212:71 | SSA def(exited) | Capture.cs:213:29:213:34 | access to local variable exited |
| Consistency.cs:7:25:7:25 | b | Consistency.cs:7:25:7:25 | SSA param(b) | Consistency.cs:11:17:11:17 | access to parameter b |
| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:16:17:16:17 | access to local variable i |
-| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:16:17:16:17 | access to local variable i |
+| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:16:17:16:17 | access to local variable i |
| Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:26:13:26:13 | access to local variable c |
| Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:27:13:27:13 | access to local variable c |
| Consistency.cs:26:13:26:19 | c.Field | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | Consistency.cs:26:13:26:19 | access to field Field |
diff --git a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected
index d0e6b073f01..1219abdfe45 100644
--- a/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected
+++ b/csharp/ql/test/library-tests/dataflow/ssa/SsaUltimateDef.expected
@@ -35,7 +35,7 @@
| Capture.cs:248:36:248:36 | j | Capture.cs:251:13:251:17 | SSA def(j) | Capture.cs:251:13:251:17 | SSA def(j) |
| Consistency.cs:7:25:7:25 | b | Consistency.cs:7:25:7:25 | SSA param(b) | Consistency.cs:7:25:7:25 | SSA param(b) |
| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | SSA def(i) | Consistency.cs:15:17:15:21 | SSA def(i) |
-| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) | Consistency.cs:15:17:15:21 | [finally: exception(Exception)] SSA def(i) |
+| Consistency.cs:15:17:15:17 | i | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) | Consistency.cs:15:17:15:21 | [finally: exception] SSA def(i) |
| Consistency.cs:25:29:25:29 | c | Consistency.cs:25:29:25:29 | SSA def(c) | Consistency.cs:25:29:25:29 | SSA def(c) |
| Consistency.cs:26:13:26:19 | c.Field | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) | Consistency.cs:25:29:25:29 | SSA qualifier def(c.Field) |
| Consistency.cs:30:30:30:30 | c | Consistency.cs:32:9:32:29 | SSA def(c) | Consistency.cs:32:9:32:29 | SSA def(c) |
diff --git a/csharp/ql/test/library-tests/goto/Goto1.expected b/csharp/ql/test/library-tests/goto/Goto1.expected
index e6c124726a3..0baaf5ef723 100644
--- a/csharp/ql/test/library-tests/goto/Goto1.expected
+++ b/csharp/ql/test/library-tests/goto/Goto1.expected
@@ -7,7 +7,7 @@
| goto.cs:5:5:20:5 | {...} | goto.cs:6:9:8:9 | {...} | semmle.label | successor |
| goto.cs:6:9:8:9 | {...} | goto.cs:7:13:7:14 | s1: | semmle.label | successor |
| goto.cs:7:13:7:14 | s1: | goto.cs:7:17:7:24 | goto ...; | semmle.label | successor |
-| goto.cs:7:17:7:24 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto(s2) |
+| goto.cs:7:17:7:24 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto |
| goto.cs:9:9:9:10 | s2: | goto.cs:9:13:9:27 | ... ...; | semmle.label | successor |
| goto.cs:9:13:9:27 | ... ...; | goto.cs:9:24:9:26 | "5" | semmle.label | successor |
| goto.cs:9:20:9:26 | String s = ... | goto.cs:10:9:18:9 | switch (...) {...} | semmle.label | successor |
@@ -18,24 +18,24 @@
| goto.cs:12:18:12:21 | null | goto.cs:12:24:12:25 | s3: | semmle.label | match |
| goto.cs:12:18:12:21 | null | goto.cs:13:13:13:21 | case ...: | semmle.label | no-match |
| goto.cs:12:24:12:25 | s3: | goto.cs:12:38:12:40 | "1" | semmle.label | successor |
-| goto.cs:12:28:12:41 | goto case ...; | goto.cs:13:13:13:21 | case ...: | semmle.label | goto(1) |
+| goto.cs:12:28:12:41 | goto case ...; | goto.cs:13:13:13:21 | case ...: | semmle.label | goto |
| goto.cs:12:38:12:40 | "1" | goto.cs:12:28:12:41 | goto case ...; | semmle.label | successor |
| goto.cs:13:13:13:21 | case ...: | goto.cs:13:18:13:20 | "1" | semmle.label | successor |
| goto.cs:13:18:13:20 | "1" | goto.cs:13:23:13:24 | s4: | semmle.label | match |
| goto.cs:13:18:13:20 | "1" | goto.cs:14:13:14:21 | case ...: | semmle.label | no-match |
| goto.cs:13:23:13:24 | s4: | goto.cs:13:37:13:39 | "2" | semmle.label | successor |
-| goto.cs:13:27:13:40 | goto case ...; | goto.cs:14:13:14:21 | case ...: | semmle.label | goto(2) |
+| goto.cs:13:27:13:40 | goto case ...; | goto.cs:14:13:14:21 | case ...: | semmle.label | goto |
| goto.cs:13:37:13:39 | "2" | goto.cs:13:27:13:40 | goto case ...; | semmle.label | successor |
| goto.cs:14:13:14:21 | case ...: | goto.cs:14:18:14:20 | "2" | semmle.label | successor |
| goto.cs:14:18:14:20 | "2" | goto.cs:14:23:14:24 | s5: | semmle.label | match |
| goto.cs:14:18:14:20 | "2" | goto.cs:15:13:15:21 | case ...: | semmle.label | no-match |
| goto.cs:14:23:14:24 | s5: | goto.cs:14:27:14:34 | goto ...; | semmle.label | successor |
-| goto.cs:14:27:14:34 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto(s2) |
+| goto.cs:14:27:14:34 | goto ...; | goto.cs:9:9:9:10 | s2: | semmle.label | goto |
| goto.cs:15:13:15:21 | case ...: | goto.cs:15:18:15:20 | "3" | semmle.label | successor |
| goto.cs:15:18:15:20 | "3" | goto.cs:15:23:15:24 | s6: | semmle.label | match |
| goto.cs:15:18:15:20 | "3" | goto.cs:16:13:16:21 | case ...: | semmle.label | no-match |
| goto.cs:15:23:15:24 | s6: | goto.cs:15:27:15:39 | goto default; | semmle.label | successor |
-| goto.cs:15:27:15:39 | goto default; | goto.cs:17:13:17:20 | default: | semmle.label | goto(default) |
+| goto.cs:15:27:15:39 | goto default; | goto.cs:17:13:17:20 | default: | semmle.label | goto |
| goto.cs:16:13:16:21 | case ...: | goto.cs:16:18:16:20 | "4" | semmle.label | successor |
| goto.cs:16:18:16:20 | "4" | goto.cs:16:23:16:24 | s7: | semmle.label | match |
| goto.cs:16:18:16:20 | "4" | goto.cs:17:13:17:20 | default: | semmle.label | no-match |
@@ -43,7 +43,7 @@
| goto.cs:16:27:16:32 | break; | goto.cs:19:9:19:10 | s9: | semmle.label | break |
| goto.cs:17:13:17:20 | default: | goto.cs:17:22:17:23 | s8: | semmle.label | successor |
| goto.cs:17:22:17:23 | s8: | goto.cs:17:36:17:39 | null | semmle.label | successor |
-| goto.cs:17:26:17:40 | goto case ...; | goto.cs:12:13:12:22 | case ...: | semmle.label | goto(null) |
+| goto.cs:17:26:17:40 | goto case ...; | goto.cs:12:13:12:22 | case ...: | semmle.label | goto |
| goto.cs:17:36:17:39 | null | goto.cs:17:26:17:40 | goto case ...; | semmle.label | successor |
| goto.cs:19:9:19:10 | s9: | goto.cs:19:12:19:12 | ; | semmle.label | successor |
| goto.cs:19:12:19:12 | ; | goto.cs:4:17:4:20 | exit Main (normal) | semmle.label | successor |
diff --git a/docs/codeql/ql-language-reference/expressions.rst b/docs/codeql/ql-language-reference/expressions.rst
index 5c73681f7aa..327cabb6181 100644
--- a/docs/codeql/ql-language-reference/expressions.rst
+++ b/docs/codeql/ql-language-reference/expressions.rst
@@ -625,7 +625,7 @@ Then the evaluation of the ``depth`` predicate proceeds as follows:
+-----------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Stage** | **depth** | **Comments** |
+===========+============================================+==========================================================================================================================================================================+
-| 0 | | We always begin with the empty set. |
+| 0 | | We always begin with the empty set. |
+-----------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 | ``(0, b), (0, d), (0, e)`` | The nodes with no children have depth 0. The recursive step for **a** and **c** fails to produce a value, since some of their children do not have values for ``depth``. |
+-----------+--------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
diff --git a/go/codeql-extractor.yml b/go/codeql-extractor.yml
index 49c8c75232f..af9fca0462f 100644
--- a/go/codeql-extractor.yml
+++ b/go/codeql-extractor.yml
@@ -9,6 +9,8 @@ column_kind: "utf8"
build_modes:
- autobuild
- manual
+default_queries:
+ - codeql/go-queries
github_api_languages:
- Go
scc_languages:
diff --git a/go/old-change-notes/2020-10-01-gomod-extraction.md b/go/old-change-notes/2020-10-01-gomod-extraction.md
index ca0c0c72d50..a975a15973a 100644
--- a/go/old-change-notes/2020-10-01-gomod-extraction.md
+++ b/go/old-change-notes/2020-10-01-gomod-extraction.md
@@ -1,2 +1,2 @@
lgtm,codescanning
-* The extractor now only extracts go.mod files belonging to extracted packages. In particular, vendored go.mod files will no longer be extracted unless the vendored package is explicitly passed to the extractor. This will remove unexpected `GoModExpr` and similar expressions seen by queries.
+* The extractor now only extracts go.mod files belonging to extracted packages. In particular, vendored go.mod files will no longer be extracted unless the vendored package is explicitly passed to the extractor. This will remove unexpected `GoModExpr` and similar expressions seen by queries.
diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md
index 596a873b2c5..c30f8de8bc9 100644
--- a/go/ql/consistency-queries/CHANGELOG.md
+++ b/go/ql/consistency-queries/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.30
+
+No user-facing changes.
+
## 1.0.29
No user-facing changes.
diff --git a/go/ql/consistency-queries/change-notes/released/1.0.30.md b/go/ql/consistency-queries/change-notes/released/1.0.30.md
new file mode 100644
index 00000000000..cb2cf6d0a27
--- /dev/null
+++ b/go/ql/consistency-queries/change-notes/released/1.0.30.md
@@ -0,0 +1,3 @@
+## 1.0.30
+
+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 8751a216238..f04640951de 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.29
+lastReleaseVersion: 1.0.30
diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml
index 2cac181bfb5..574d10a1752 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.30-dev
+version: 1.0.31-dev
groups:
- go
- queries
diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md
index 0ddd2c37449..686ac94e11b 100644
--- a/go/ql/lib/CHANGELOG.md
+++ b/go/ql/lib/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 4.3.3
+
+No user-facing changes.
+
## 4.3.2
No user-facing changes.
diff --git a/go/ql/lib/change-notes/2025-07-15-path-injection-sanitizers.md b/go/ql/lib/change-notes/2025-07-15-path-injection-sanitizers.md
new file mode 100644
index 00000000000..004eb973de3
--- /dev/null
+++ b/go/ql/lib/change-notes/2025-07-15-path-injection-sanitizers.md
@@ -0,0 +1,5 @@
+---
+category: minorAnalysis
+---
+* The second argument of the `CreateTemp` function, from the `os` package, is no longer a path-injection sink due to proper sanitization by Go.
+* The query "Uncontrolled data used in path expression" (`go/path-injection`) now detects sanitizing a path by adding `os.PathSeparator` or `\` to the beginning.
\ No newline at end of file
diff --git a/go/ql/lib/change-notes/released/4.3.3.md b/go/ql/lib/change-notes/released/4.3.3.md
new file mode 100644
index 00000000000..d6710bacd7f
--- /dev/null
+++ b/go/ql/lib/change-notes/released/4.3.3.md
@@ -0,0 +1,3 @@
+## 4.3.3
+
+No user-facing changes.
diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml
index 5b8421b639f..d7b7294771f 100644
--- a/go/ql/lib/codeql-pack.release.yml
+++ b/go/ql/lib/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 4.3.2
+lastReleaseVersion: 4.3.3
diff --git a/go/ql/lib/ext/os.model.yml b/go/ql/lib/ext/os.model.yml
index b4f074146b7..7d2070b53ba 100644
--- a/go/ql/lib/ext/os.model.yml
+++ b/go/ql/lib/ext/os.model.yml
@@ -28,7 +28,7 @@ extensions:
- ["os", "", False, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"]
- ["os", "", False, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"]
- ["os", "", False, "MkdirTemp", "", "", "Argument[0..1]", "path-injection", "manual"]
- - ["os", "", False, "CreateTemp", "", "", "Argument[0..1]", "path-injection", "manual"]
+ - ["os", "", False, "CreateTemp", "", "", "Argument[0]", "path-injection", "manual"]
- ["os", "", False, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"]
# command-injection
- ["os", "", False, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"]
diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml
index 2658d54432f..8c172af1e97 100644
--- a/go/ql/lib/qlpack.yml
+++ b/go/ql/lib/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/go-all
-version: 4.3.3-dev
+version: 4.3.4-dev
groups: go
dbscheme: go.dbscheme
extractor: go
diff --git a/go/ql/lib/semmle/go/Architectures.qll b/go/ql/lib/semmle/go/Architectures.qll
index e509de4bc68..bb4face2407 100644
--- a/go/ql/lib/semmle/go/Architectures.qll
+++ b/go/ql/lib/semmle/go/Architectures.qll
@@ -28,7 +28,7 @@ class Architecture extends string {
}
/**
- * Gets the integer and pointer type width for this architecture.
+ * Gets the integer and pointer type width for this architecture.
*
* As of the time of writing, this appears to always be identical -- there aren't
* Go architectures with 64-bit pointers but 32-bit ints, for example.
diff --git a/go/ql/lib/semmle/go/StringOps.qll b/go/ql/lib/semmle/go/StringOps.qll
index 351617abf9d..3463e4fdf87 100644
--- a/go/ql/lib/semmle/go/StringOps.qll
+++ b/go/ql/lib/semmle/go/StringOps.qll
@@ -306,11 +306,12 @@ module StringOps {
*/
class StringFormatCall extends DataFlow::CallNode {
string fmt;
- Range f;
StringFormatCall() {
- this = f.getACall() and
- fmt = this.getArgument(f.getFormatStringIndex()).getStringValue() and
+ exists(Range f |
+ this = f.getACall() and
+ fmt = this.getArgument(f.getFormatStringIndex()).getStringValue()
+ ) and
fmt.regexpMatch(getFormatComponentRegex() + "*")
}
diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll
index a770f047d65..20a147a6454 100644
--- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll
+++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll
@@ -994,7 +994,7 @@ module Public {
class ComponentReadNode extends ReadNode {
override IR::ComponentReadInstruction insn;
- /** Gets the data-flow node representing the base from which the field or element is read. */
+ /** Gets the data-flow node representing the base from which the field or element is read. */
Node getBase() { result = DataFlow::instructionNode(insn.getBase()) }
}
diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll
index 2cd1bbcc747..14ff455646c 100644
--- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll
+++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll
@@ -367,7 +367,7 @@ module BarrierGuard {
}
/**
- * Holds if `guard` marks a point in the control-flow graph where this node
+ * Holds if `guard` marks a point in the control-flow graph where `g`
* is known to validate `nd`, which is represented by `ap`.
*
* This predicate exists to enforce a good join order in `getAGuardedNode`.
@@ -378,7 +378,7 @@ module BarrierGuard {
}
/**
- * Holds if `guard` marks a point in the control-flow graph where this node
+ * Holds if `guard` marks a point in the control-flow graph where `g`
* is known to validate `nd`.
*/
private predicate guards(Node g, ControlFlow::ConditionGuardNode guard, Node nd) {
diff --git a/go/ql/lib/semmle/go/frameworks/Beego.qll b/go/ql/lib/semmle/go/frameworks/Beego.qll
index a9e296a1f97..952958cebf0 100644
--- a/go/ql/lib/semmle/go/frameworks/Beego.qll
+++ b/go/ql/lib/semmle/go/frameworks/Beego.qll
@@ -109,7 +109,7 @@ module Beego {
override string getAContentType() {
// Super-method provides content-types for `Body`, which requires us to search
- // for `ContentType` and `Header` calls against the same `BeegoOutput` instance
+ // for `ContentType` and `Header` calls against the same `BeegoOutput` instance
result = super.getAContentType()
or
// Specifically describe methods that set the content-type and body in one operation:
diff --git a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll
index 39db60de483..747f2ab0d08 100644
--- a/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll
+++ b/go/ql/lib/semmle/go/security/TaintedPathCustomizations.qll
@@ -87,7 +87,7 @@ module TaintedPath {
exists(DataFlow::CallNode cleanCall, StringOps::Concatenation concatNode |
cleanCall = any(Function f | f.hasQualifiedName("path/filepath", "Clean")).getACall() and
concatNode = cleanCall.getArgument(0) and
- concatNode.getOperand(0).asExpr().(StringLit).getValue() = "/" and
+ concatNode.getOperand(0).getStringValue().prefix(1) = ["/", "\\"] and
this = cleanCall.getResult()
)
}
diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md
index f86e390b56d..7ec3a3eab64 100644
--- a/go/ql/src/CHANGELOG.md
+++ b/go/ql/src/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.4.4
+
+No user-facing changes.
+
## 1.4.3
No user-facing changes.
diff --git a/go/ql/src/InconsistentCode/MissingErrorCheck.qhelp b/go/ql/src/InconsistentCode/MissingErrorCheck.qhelp
index d542a728cfe..0d5610e1391 100644
--- a/go/ql/src/InconsistentCode/MissingErrorCheck.qhelp
+++ b/go/ql/src/InconsistentCode/MissingErrorCheck.qhelp
@@ -22,7 +22,7 @@ the returned pointer.
-The corrected version of user checks err before using ptr.
+The corrected version of user checks err before using ptr.
diff --git a/go/ql/src/InconsistentCode/MissingErrorCheck.ql b/go/ql/src/InconsistentCode/MissingErrorCheck.ql
index 8e277c6ae74..6a68904427d 100644
--- a/go/ql/src/InconsistentCode/MissingErrorCheck.ql
+++ b/go/ql/src/InconsistentCode/MissingErrorCheck.ql
@@ -22,7 +22,7 @@ predicate isNil(DataFlow::Node node) { node = Builtin::nil().getARead() }
/**
* Matches if `call` may return a nil pointer alongside an error value.
*
- * This is both an over- and under-estimate: over in that we assume opaque functions may use this
+ * This is both an over- and under-estimate: over in that we assume opaque functions may use this
* convention, and under in that functions with bodies are only recognized if they use a literal
* `nil` for the pointer return value at some return site.
*/
diff --git a/go/ql/src/Security/CWE-327/InsecureTLS.ql b/go/ql/src/Security/CWE-327/InsecureTLS.ql
index a4a9ab1f549..dba6f2d54ca 100644
--- a/go/ql/src/Security/CWE-327/InsecureTLS.ql
+++ b/go/ql/src/Security/CWE-327/InsecureTLS.ql
@@ -211,7 +211,7 @@ module TlsInsecureCipherSuitesFlow = TaintTracking::Global
@javacompilation
- 1138
+ 2925
@kotlincompilation
- 2356
+ 2025
@diagnostic
- 57106
+ 705818
@externalDataElement
1
+
+ @location_default
+ 915359999
+
@file
- 1291911
+ 4338434
@folder
- 211876
+ 857155
@package
- 96053
+ 459294
@primitive
- 5690
+ 26329
@modifier
- 6259
+ 32179
@errortype
- 22
+ 2925
@classorinterface
- 22273131
+ 22649681
@kt_nullable_type
- 262
-
-
- @location_default
- 82315299
+ 264
@kt_notnull_type
- 156265
+ 161049
@kt_type_alias
- 707
+ 625
@fielddecl
- 210035
+ 204459
@field
- 2886451
+ 9378976
@constructor
- 1103682
+ 3016133
@method
- 15113893
+ 38724113
@param
- 16587479
+ 41491584
@exception
- 1232644
+ 3735793
@typevariable
- 864332
+ 1331077
@wildcard
- 458250
+ 590939
@typebound
- 581989
+ 827900
@array
- 190588
+ 608492
@import
- 356137
+ 525435
@block
- 707376
+ 853492
@ifstmt
- 188282
+ 191468
@forstmt
- 52504
+ 53708
@enhancedforstmt
- 21607
+ 21973
@whilestmt
- 13266
+ 13464
@dostmt
- 2251
+ 2289
@trystmt
- 58624
+ 59613
@switchstmt
- 10546
+ 10724
@synchronizedstmt
- 23121
+ 45951
@returnstmt
- 345793
+ 323816
@throwstmt
- 35917
+ 36523
@breakstmt
- 35329
+ 35926
@continuestmt
- 3257
+ 3312
@emptystmt
- 1561
+ 1868
@exprstmt
- 942102
-
-
- @assertstmt
- 15158
-
-
- @localvariabledeclstmt
- 318689
-
-
- @localtypedeclstmt
- 3532
-
-
- @constructorinvocationstmt
- 9165
-
-
- @superconstructorinvocationstmt
- 182518
-
-
- @case
- 107927
-
-
- @catchclause
- 55201
+ 958028
@labeledstmt
- 4493
+ 4490
+
+
+ @assertstmt
+ 15410
+
+
+ @localvariabledeclstmt
+ 486900
+
+
+ @localtypedeclstmt
+ 3483
+
+
+ @constructorinvocationstmt
+ 9319
+
+
+ @superconstructorinvocationstmt
+ 189390
+
+
+ @case
+ 109697
+
+
+ @catchclause
+ 56134
@yieldstmt
- 36
+ 44
@errorstmt
@@ -206,263 +206,275 @@
@whenbranch
- 207292
+ 204113
@arrayaccess
- 409677
+ 417372
@arraycreationexpr
- 69247
+ 70418
@arrayinit
- 405405
+ 579238
@assignexpr
- 465407
+ 473276
@assignaddexpr
- 17016
+ 17303
@assignsubexpr
- 3505
+ 3557
@assignmulexpr
- 2153
+ 2189
@assigndivexpr
- 1071
-
-
- @assignandexpr
- 3970
-
-
- @assignorexpr
- 14528
-
-
- @booleanliteral
- 524468
-
-
- @integerliteral
- 1151446
-
-
- @longliteral
- 185873
-
-
- @floatingpointliteral
- 2824967
-
-
- @doubleliteral
- 486619
-
-
- @characterliteral
- 40016
-
-
- @stringliteral
- 1262851
-
-
- @nullliteral
- 355806
-
-
- @mulexpr
- 204580
-
-
- @divexpr
- 36264
-
-
- @remexpr
- 3904
-
-
- @addexpr
- 176986
-
-
- @subexpr
- 84385
-
-
- @lshiftexpr
- 8736
-
-
- @rshiftexpr
- 4206
-
-
- @urshiftexpr
- 9643
-
-
- @andbitexpr
- 29089
-
-
- @orbitexpr
- 11594
-
-
- @xorbitexpr
- 1925
-
-
- @andlogicalexpr
- 36742
-
-
- @orlogicalexpr
- 31150
-
-
- @ltexpr
- 66249
-
-
- @gtexpr
- 17203
-
-
- @leexpr
- 10529
-
-
- @geexpr
- 13411
-
-
- @eqexpr
- 104273
-
-
- @neexpr
- 60975
-
-
- @postincexpr
- 41857
-
-
- @postdecexpr
- 11683
-
-
- @preincexpr
- 23714
-
-
- @predecexpr
- 3781
-
-
- @minusexpr
- 744379
-
-
- @plusexpr
- 53007
-
-
- @bitnotexpr
- 8186
-
-
- @lognotexpr
- 40110
-
-
- @castexpr
- 93185
-
-
- @newexpr
- 252083
-
-
- @conditionalexpr
- 16047
-
-
- @instanceofexpr
- 29542
-
-
- @localvariabledeclexpr
- 385272
-
-
- @typeliteral
- 98504
-
-
- @thisaccess
- 490120
-
-
- @superaccess
- 53021
-
-
- @varaccess
- 2434277
-
-
- @methodaccess
- 1512380
-
-
- @unannotatedtypeaccess
- 2374849
-
-
- @arraytypeaccess
- 120727
-
-
- @wildcardtypeaccess
- 78834
-
-
- @declannotation
- 6740832
+ 1090
@assignremexpr
- 62
+ 325
+
+
+ @assignandexpr
+ 4035
+
+
+ @assignorexpr
+ 17197
@assignxorexpr
- 1102
+ 1135
@assignlshiftexpr
- 916
+ 930
@assignrshiftexpr
- 1404
+ 1428
@assignurshiftexpr
- 431
+ 437
+
+
+ @booleanliteral
+ 1032682
+
+
+ @integerliteral
+ 1173075
+
+
+ @longliteral
+ 188939
+
+
+ @floatingpointliteral
+ 2878044
+
+
+ @doubleliteral
+ 494845
+
+
+ @characterliteral
+ 40611
+
+
+ @stringliteral
+ 2353526
+
+
+ @nullliteral
+ 361821
+
+
+ @mulexpr
+ 228663
+
+
+ @divexpr
+ 37220
+
+
+ @remexpr
+ 5205
+
+
+ @addexpr
+ 179978
+
+
+ @subexpr
+ 91953
+
+
+ @lshiftexpr
+ 8866
+
+
+ @rshiftexpr
+ 4269
+
+
+ @urshiftexpr
+ 9804
+
+
+ @andbitexpr
+ 29580
+
+
+ @orbitexpr
+ 8772
+
+
+ @xorbitexpr
+ 1958
+
+
+ @andlogicalexpr
+ 37363
+
+
+ @orlogicalexpr
+ 31676
+
+
+ @ltexpr
+ 67577
+
+
+ @gtexpr
+ 17459
+
+
+ @leexpr
+ 10707
+
+
+ @geexpr
+ 13638
+
+
+ @eqexpr
+ 106035
+
+
+ @neexpr
+ 62005
+
+
+ @postincexpr
+ 42560
+
+
+ @postdecexpr
+ 11880
+
+
+ @preincexpr
+ 24115
+
+
+ @predecexpr
+ 3845
+
+
+ @minusexpr
+ 758361
+
+
+ @plusexpr
+ 53903
+
+
+ @bitnotexpr
+ 8325
+
+
+ @lognotexpr
+ 40789
+
+
+ @castexpr
+ 94761
+
+
+ @newexpr
+ 256339
+
+
+ @conditionalexpr
+ 16319
+
+
+ @instanceofexpr
+ 30041
+
+
+ @localvariabledeclexpr
+ 547241
+
+
+ @typeliteral
+ 390900
+
+
+ @thisaccess
+ 454776
+
+
+ @superaccess
+ 35123
+
+
+ @varaccess
+ 2475431
+
+
+ @methodaccess
+ 1685726
+
+
+ @unannotatedtypeaccess
+ 2416174
+
+
+ @arraytypeaccess
+ 122768
+
+
+ @wildcardtypeaccess
+ 80161
+
+
+ @declannotation
+ 6854791
+
+
+ @uniontypeaccess
+ 2580
+
+
+ @lambdaexpr
+ 157421
+
+
+ @memberref
+ 24296
@parexpr
@@ -472,33 +484,21 @@
@packageaccess
1
-
- @uniontypeaccess
- 1010
-
-
- @lambdaexpr
- 152268
-
-
- @memberref
- 23859
-
@annotatedtypeaccess
- 1281
+ 1302
@typeannotation
- 1281
+ 1302
@intersectiontypeaccess
- 25
+ 31
@switchexpr
- 591
+ 628
@errorexpr
@@ -506,43 +506,43 @@
@whenexpr
- 116200
+ 114649
@getclassexpr
- 733
+ 568
@safecastexpr
- 6086
+ 6516
@implicitcastexpr
- 28817
+ 32568
@implicitnotnullexpr
- 163412
+ 159477
@implicitcoerciontounitexpr
- 73781
+ 72660
@notinstanceofexpr
- 3981
+ 4235
@stmtexpr
- 50550
+ 56622
@stringtemplateexpr
- 24879
+ 28942
@notnullexpr
- 23342
+ 11970
@unsafecoerceexpr
@@ -550,15 +550,15 @@
@valueeqexpr
- 85697
+ 81195
@valueneexpr
- 22980
+ 21432
@propertyref
- 8439
+ 11930
@recordpatternexpr
@@ -566,113 +566,113 @@
@localvar
- 385272
+ 547241
@module
- 6092
+ 131645
@requires
- 3190
+ 4159
@exports
- 26163
+ 336426
@opens
- 716
+ 14627
@uses
- 7884
+ 96539
@provides
- 1792
+ 2925
@javadoc
- 985091
+ 1001744
@javadocTag
- 335808
+ 341478
@javadocText
- 2502848
+ 2545161
@xmldtd
- 569
+ 578
@xmlelement
- 20510401
-
-
- @xmlattribute
- 24948200
+ 233696238
@xmlnamespace
- 2845
+ 17552
+
+
+ @xmlattribute
+ 281184985
@xmlcomment
- 20643577
+ 231835655
@xmlcharacters
- 19508174
+ 222401095
@config
- 1
+ 669552
@configName
- 1
+ 669552
@configValue
- 1
+ 669315
@ktcomment
- 116780
+ 122924
@ktcommentsection
- 74919
+ 78073
@kt_property
- 2989117
+ 3024536
compilations
- 2356
+ 2925
id
- 2356
+ 2925
kind
- 94
+ 2925
cwd
- 94
+ 2925
name
- 2356
+ 2925
@@ -686,7 +686,7 @@
1
2
- 2356
+ 2925
@@ -702,7 +702,7 @@
1
2
- 2356
+ 2925
@@ -718,7 +718,7 @@
1
2
- 2356
+ 2925
@@ -732,9 +732,9 @@
12
- 25
- 26
- 94
+ 1
+ 2
+ 2925
@@ -750,7 +750,7 @@
1
2
- 94
+ 2925
@@ -764,9 +764,9 @@
12
- 25
- 26
- 94
+ 1
+ 2
+ 2925
@@ -780,9 +780,9 @@
12
- 25
- 26
- 94
+ 1
+ 2
+ 2925
@@ -798,7 +798,7 @@
1
2
- 94
+ 2925
@@ -812,9 +812,9 @@
12
- 25
- 26
- 94
+ 1
+ 2
+ 2925
@@ -830,7 +830,7 @@
1
2
- 2356
+ 2925
@@ -846,7 +846,7 @@
1
2
- 2356
+ 2925
@@ -862,7 +862,7 @@
1
2
- 2356
+ 2925
@@ -872,30 +872,30 @@
compilation_started
- 2261
+ 2025
id
- 2261
+ 2025
compilation_info
- 4523
+ 8776
id
- 2261
+ 2925
info_key
- 188
+ 5850
info_value
- 188
+ 8776
@@ -909,7 +909,7 @@
2
3
- 2261
+ 2925
@@ -923,9 +923,9 @@
12
- 2
- 3
- 2261
+ 3
+ 4
+ 2925
@@ -939,9 +939,9 @@
12
- 24
- 25
- 188
+ 1
+ 2
+ 5850
@@ -957,7 +957,12 @@
1
2
- 188
+ 2925
+
+
+ 2
+ 3
+ 2925
@@ -971,9 +976,9 @@
12
- 24
- 25
- 188
+ 1
+ 2
+ 8776
@@ -989,7 +994,7 @@
1
2
- 188
+ 8776
@@ -999,19 +1004,19 @@
compilation_args
- 69266
+ 49952
id
- 2356
+ 2025
num
- 12062
+ 4387
arg
- 35151
+ 22360
@@ -1022,45 +1027,45 @@
12
+
+ 18
+ 19
+ 506
+
19
20
- 565
+ 590
20
21
- 753
+ 168
21
- 22
- 188
+ 23
+ 168
- 22
- 25
- 188
+ 24
+ 32
+ 168
32
- 33
- 188
+ 35
+ 168
- 34
- 43
- 188
+ 44
+ 52
+ 168
52
- 54
- 188
-
-
- 128
- 129
- 94
+ 53
+ 84
@@ -1073,45 +1078,45 @@
12
+
+ 18
+ 19
+ 506
+
19
20
- 565
+ 590
20
21
- 753
+ 168
21
- 22
- 188
+ 23
+ 168
- 22
- 25
- 188
+ 24
+ 32
+ 168
32
- 33
- 188
+ 35
+ 168
- 34
- 43
- 188
+ 44
+ 52
+ 168
52
- 54
- 188
-
-
- 127
- 128
- 94
+ 53
+ 84
@@ -1127,32 +1132,42 @@
1
2
- 7068
+ 84
2
+ 3
+ 590
+
+
+ 3
4
- 1036
+ 843
4
6
- 942
+ 253
+
+
+ 6
+ 7
+ 590
7
- 9
- 942
+ 10
+ 337
- 9
- 20
- 282
+ 11
+ 19
+ 168
- 25
- 26
- 1790
+ 24
+ 25
+ 1518
@@ -1168,32 +1183,47 @@
1
2
- 7350
+ 337
2
3
- 188
+ 1096
3
4
- 1507
+ 928
4
6
- 1036
+ 253
6
- 9
- 942
+ 7
+ 590
- 9
- 26
- 1036
+ 7
+ 10
+ 337
+
+
+ 10
+ 13
+ 337
+
+
+ 13
+ 20
+ 337
+
+
+ 24
+ 25
+ 168
@@ -1209,12 +1239,17 @@
1
2
- 32607
+ 20166
2
- 26
- 2544
+ 13
+ 1096
+
+
+ 24
+ 25
+ 1096
@@ -1230,12 +1265,12 @@
1
2
- 33078
+ 20588
2
- 12
- 2073
+ 13
+ 1771
@@ -1245,19 +1280,19 @@
compilation_expanded_args
- 69428
+ 85214
id
- 1138
+ 682
num
- 45527
+ 18653
arg
- 54632
+ 70928
@@ -1269,14 +1304,34 @@
12
- 42
- 43
- 569
+ 24
+ 25
+ 136
- 80
- 81
- 569
+ 25
+ 26
+ 272
+
+
+ 139
+ 140
+ 45
+
+
+ 143
+ 144
+ 90
+
+
+ 408
+ 409
+ 90
+
+
+ 410
+ 411
+ 45
@@ -1290,14 +1345,29 @@
12
- 40
- 41
- 569
+ 23
+ 24
+ 409
- 78
- 79
- 569
+ 137
+ 138
+ 45
+
+
+ 141
+ 142
+ 90
+
+
+ 407
+ 408
+ 90
+
+
+ 409
+ 410
+ 45
@@ -1313,12 +1383,27 @@
1
2
- 21625
+ 90
- 2
- 3
- 23901
+ 3
+ 4
+ 12056
+
+
+ 5
+ 6
+ 181
+
+
+ 6
+ 7
+ 5186
+
+
+ 12
+ 16
+ 1137
@@ -1333,13 +1418,28 @@
1
- 2
- 35283
+ 3
+ 1091
- 2
- 3
- 10243
+ 3
+ 4
+ 12056
+
+
+ 4
+ 6
+ 272
+
+
+ 6
+ 7
+ 5004
+
+
+ 8
+ 16
+ 227
@@ -1355,12 +1455,12 @@
1
2
- 42112
+ 69791
- 2
- 3
- 12519
+ 3
+ 16
+ 1137
@@ -1376,12 +1476,12 @@
1
2
- 53494
+ 70519
2
- 3
- 1138
+ 5
+ 409
@@ -1391,19 +1491,19 @@
compilation_compiling_files
- 60809
+ 67743
id
- 757
+ 682
num
- 9485
+ 17334
file
- 60809
+ 67743
@@ -1417,62 +1517,27 @@
1
2
- 104
+ 409
- 2
- 4
- 56
+ 111
+ 112
+ 45
- 4
- 7
- 60
+ 115
+ 116
+ 90
- 7
- 11
- 69
+ 379
+ 380
+ 90
- 11
- 15
- 56
-
-
- 15
- 22
- 60
-
-
- 22
- 31
- 65
-
-
- 32
- 47
- 65
-
-
- 51
- 88
- 69
-
-
- 93
- 151
- 60
-
-
- 163
- 367
- 60
-
-
- 441
- 2179
- 26
+ 381
+ 382
+ 45
@@ -1488,62 +1553,27 @@
1
2
- 104
+ 409
- 2
- 4
- 56
+ 111
+ 112
+ 45
- 4
- 7
- 60
+ 115
+ 116
+ 90
- 7
- 11
- 69
+ 379
+ 380
+ 90
- 11
- 15
- 56
-
-
- 15
- 22
- 60
-
-
- 22
- 31
- 65
-
-
- 32
- 47
- 65
-
-
- 51
- 88
- 69
-
-
- 93
- 151
- 60
-
-
- 163
- 367
- 60
-
-
- 441
- 2179
- 26
+ 381
+ 382
+ 45
@@ -1559,37 +1589,27 @@
1
2
- 4080
-
-
- 2
- 3
- 452
+ 90
3
4
- 2552
+ 12010
- 4
+ 5
+ 6
+ 181
+
+
+ 6
7
- 805
+ 5004
- 7
- 17
- 827
-
-
- 17
- 104
- 714
-
-
- 105
- 175
- 52
+ 15
+ 16
+ 45
@@ -1605,37 +1625,27 @@
1
2
- 4080
-
-
- 2
- 3
- 452
+ 90
3
4
- 2552
+ 12010
- 4
+ 5
+ 6
+ 181
+
+
+ 6
7
- 805
+ 5004
- 7
- 17
- 827
-
-
- 17
- 104
- 714
-
-
- 105
- 175
- 52
+ 15
+ 16
+ 45
@@ -1651,7 +1661,7 @@
1
2
- 60809
+ 67743
@@ -1667,7 +1677,7 @@
1
2
- 60809
+ 67743
@@ -1677,19 +1687,19 @@
compilation_compiling_files_completed
- 60809
+ 67743
id
- 757
+ 682
num
- 9485
+ 17334
result
- 4
+ 45
@@ -1703,62 +1713,27 @@
1
2
- 104
+ 409
- 2
- 4
- 56
+ 111
+ 112
+ 45
- 4
- 7
- 60
+ 115
+ 116
+ 90
- 7
- 11
- 69
+ 379
+ 380
+ 90
- 11
- 15
- 56
-
-
- 15
- 22
- 60
-
-
- 22
- 31
- 65
-
-
- 32
- 47
- 65
-
-
- 51
- 88
- 69
-
-
- 93
- 151
- 60
-
-
- 163
- 367
- 60
-
-
- 441
- 2179
- 26
+ 381
+ 382
+ 45
@@ -1774,7 +1749,7 @@
1
2
- 757
+ 682
@@ -1790,37 +1765,27 @@
1
2
- 4080
-
-
- 2
- 3
- 452
+ 90
3
4
- 2552
+ 12010
- 4
+ 5
+ 6
+ 181
+
+
+ 6
7
- 805
+ 5004
- 7
- 17
- 827
-
-
- 17
- 104
- 714
-
-
- 105
- 175
- 52
+ 15
+ 16
+ 45
@@ -1836,7 +1801,7 @@
1
2
- 9485
+ 17334
@@ -1850,9 +1815,9 @@
12
- 174
- 175
- 4
+ 15
+ 16
+ 45
@@ -1866,9 +1831,9 @@
12
- 2178
- 2179
- 4
+ 381
+ 382
+ 45
@@ -1878,23 +1843,23 @@
compilation_time
- 166778
+ 273705
id
- 238
+ 682
num
- 30464
+ 17379
kind
- 477
+ 181
seconds
- 83269
+ 135988
@@ -1906,14 +1871,29 @@
12
- 94
- 95
- 119
+ 2
+ 3
+ 409
- 255
- 256
- 119
+ 112
+ 113
+ 45
+
+
+ 116
+ 117
+ 90
+
+
+ 380
+ 381
+ 90
+
+
+ 382
+ 383
+ 45
@@ -1929,7 +1909,7 @@
4
5
- 238
+ 682
@@ -1943,14 +1923,29 @@
12
- 188
- 189
- 119
+ 4
+ 5
+ 409
- 510
- 511
- 119
+ 224
+ 225
+ 45
+
+
+ 232
+ 233
+ 90
+
+
+ 759
+ 760
+ 90
+
+
+ 764
+ 765
+ 45
@@ -1966,646 +1961,200 @@
1
2
- 19234
+ 90
-
- 2
- 3
- 11230
-
-
-
-
-
-
- num
- kind
-
-
- 12
-
-
- 4
- 5
- 30464
-
-
-
-
-
-
- num
- seconds
-
-
- 12
-
3
4
- 19353
+ 12010
5
6
- 11110
+ 181
+
+
+ 6
+ 7
+ 5004
+
+
+ 15
+ 16
+ 90
- kind
- id
-
-
- 12
-
-
- 2
- 3
- 477
-
-
-
-
-
-
- kind
- num
-
-
- 12
-
-
- 255
- 256
- 477
-
-
-
-
-
-
- kind
- seconds
-
-
- 12
-
-
- 1
- 2
- 238
-
-
- 348
- 349
- 119
-
-
- 349
- 350
- 119
-
-
-
-
-
-
- seconds
- id
-
-
- 12
-
-
- 1
- 2
- 83150
-
-
- 2
- 3
- 119
-
-
-
-
-
-
- seconds
- num
-
-
- 12
-
-
- 1
- 2
- 83150
-
-
- 255
- 256
- 119
-
-
-
-
-
-
- seconds
+ num
kind
12
- 1
- 2
- 83150
+ 4
+ 5
+ 17379
+
+
+
+
+
+ num
+ seconds
+
+
+ 12
+
3
4
- 119
-
-
-
-
-
-
-
-
- diagnostic_for
- 57106
-
-
- diagnostic
- 57106
-
-
- compilation
- 374
-
-
- file_number
- 6678
-
-
- file_number_diagnostic_number
- 1248
-
-
-
-
- diagnostic
- compilation
-
-
- 12
-
-
- 1
- 2
- 57106
-
-
-
-
-
-
- diagnostic
- file_number
-
-
- 12
-
-
- 1
- 2
- 57106
-
-
-
-
-
-
- diagnostic
- file_number_diagnostic_number
-
-
- 12
-
-
- 1
- 2
- 57106
-
-
-
-
-
-
- compilation
- diagnostic
-
-
- 12
-
-
- 1
- 2
- 124
-
-
- 34
- 35
- 62
-
-
- 266
- 267
- 62
-
-
- 303
- 304
- 62
-
-
- 310
- 311
- 62
-
-
-
-
-
-
- compilation
- file_number
-
-
- 12
-
-
- 1
- 2
- 124
-
-
- 14
- 15
- 62
-
-
- 102
- 103
- 124
-
-
- 104
- 105
- 62
-
-
-
-
-
-
- compilation
- file_number_diagnostic_number
-
-
- 12
-
-
- 1
- 2
- 124
-
-
- 8
- 9
- 62
-
-
- 15
- 16
- 62
-
-
- 20
- 21
- 124
-
-
-
-
-
-
- file_number
- diagnostic
-
-
- 12
-
-
- 1
- 5
- 312
-
-
- 6
- 7
- 3682
+ 90
7
8
- 312
+ 12010
- 8
- 9
- 686
-
-
- 9
+ 11
12
- 499
+ 181
- 12
- 15
- 561
+ 13
+ 14
+ 5004
- 17
- 30
- 561
-
-
- 47
- 48
- 62
+ 16
+ 32
+ 90
- file_number
- compilation
+ kind
+ id
12
-
- 1
- 3
- 436
-
-
- 3
- 4
- 5367
-
-
- 4
- 5
- 873
-
-
-
-
-
-
- file_number
- file_number_diagnostic_number
-
-
- 12
-
-
- 1
- 2
- 124
-
-
- 2
- 3
- 3994
-
-
- 3
- 4
- 873
-
-
- 4
- 5
- 312
-
-
- 5
- 6
- 436
-
-
- 6
- 8
- 499
-
-
- 8
- 21
- 436
-
-
-
-
-
-
- file_number_diagnostic_number
- diagnostic
-
-
- 12
-
-
- 2
- 3
- 312
-
-
- 3
- 4
- 124
-
-
- 5
- 6
- 124
-
-
- 7
- 8
- 124
-
-
- 9
- 10
- 62
-
-
- 12
- 13
- 62
-
-
- 21
- 22
- 62
-
-
- 25
- 26
- 62
-
-
- 39
- 40
- 62
-
-
- 47
- 48
- 62
-
-
- 77
- 78
- 62
-
-
- 321
- 322
- 62
-
-
- 324
- 325
- 62
-
-
-
-
-
-
- file_number_diagnostic_number
- compilation
-
-
- 12
-
-
- 2
- 3
- 312
-
-
- 3
- 4
- 436
-
-
- 4
- 5
- 436
-
-
- 6
- 7
- 62
-
-
-
-
-
-
- file_number_diagnostic_number
- file_number
-
-
- 12
-
-
- 1
- 2
- 312
-
-
- 2
- 3
- 124
-
-
- 3
- 4
- 124
-
-
- 4
- 5
- 124
-
-
- 5
- 6
- 62
-
-
- 7
- 8
- 62
-
-
- 12
- 13
- 62
-
15
16
- 62
+ 181
+
+
+
+
+
+
+ kind
+ num
+
+
+ 12
+
+
+ 382
+ 383
+ 181
+
+
+
+
+
+
+ kind
+ seconds
+
+
+ 12
+
+
+ 1
+ 2
+ 90
- 22
- 23
- 62
+ 1490
+ 1491
+ 45
- 27
- 28
- 62
+ 1499
+ 1500
+ 45
+
+
+
+
+
+
+ seconds
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 135806
- 41
- 42
- 62
+ 2
+ 16
+ 181
+
+
+
+
+
+
+ seconds
+ num
+
+
+ 12
+
+
+ 1
+ 2
+ 135715
- 105
- 106
- 62
+ 2
+ 383
+ 272
+
+
+
+
+
+
+ seconds
+ kind
+
+
+ 12
+
+
+ 1
+ 2
+ 135942
- 107
- 108
- 62
+ 3
+ 4
+ 45
@@ -2615,19 +2164,19 @@
compilation_compiler_times
- 2261
+ 2025
id
- 2261
+ 2025
cpu_seconds
- 94
+ 84
elapsed_seconds
- 2167
+ 2025
@@ -2641,7 +2190,7 @@
1
2
- 2261
+ 2025
@@ -2657,7 +2206,7 @@
1
2
- 2261
+ 2025
@@ -2673,7 +2222,7 @@
24
25
- 94
+ 84
@@ -2687,9 +2236,9 @@
12
- 23
- 24
- 94
+ 24
+ 25
+ 84
@@ -2705,12 +2254,7 @@
1
2
- 2073
-
-
- 2
- 3
- 94
+ 2025
@@ -2726,7 +2270,7 @@
1
2
- 2167
+ 2025
@@ -2736,23 +2280,23 @@
compilation_finished
- 2261
+ 2925
id
- 2261
+ 2925
cpu_seconds
- 94
+ 2925
elapsed_seconds
- 2261
+ 2925
result
- 94
+ 2925
@@ -2766,7 +2310,7 @@
1
2
- 2261
+ 2925
@@ -2782,7 +2326,7 @@
1
2
- 2261
+ 2925
@@ -2798,7 +2342,7 @@
1
2
- 2261
+ 2925
@@ -2812,9 +2356,9 @@
12
- 24
- 25
- 94
+ 1
+ 2
+ 2925
@@ -2828,9 +2372,9 @@
12
- 24
- 25
- 94
+ 1
+ 2
+ 2925
@@ -2846,7 +2390,7 @@
1
2
- 94
+ 2925
@@ -2862,7 +2406,7 @@
1
2
- 2261
+ 2925
@@ -2878,7 +2422,7 @@
1
2
- 2261
+ 2925
@@ -2894,7 +2438,7 @@
1
2
- 2261
+ 2925
@@ -2908,9 +2452,9 @@
12
- 24
- 25
- 94
+ 1
+ 2
+ 2925
@@ -2926,7 +2470,7 @@
1
2
- 94
+ 2925
@@ -2940,9 +2484,9 @@
12
- 24
- 25
- 94
+ 1
+ 2
+ 2925
@@ -2952,35 +2496,35 @@
diagnostics
- 57106
+ 705818
id
- 57106
+ 705818
generated_by
- 124
+ 2
severity
- 62
+ 8
error_tag
- 62
+ 2
error_message
- 1435
+ 48861
full_error_message
- 39319
+ 2
location
- 312
+ 361043
@@ -2994,7 +2538,7 @@
1
2
- 57106
+ 705818
@@ -3010,7 +2554,7 @@
1
2
- 57106
+ 705818
@@ -3026,7 +2570,7 @@
1
2
- 57106
+ 705818
@@ -3042,7 +2586,7 @@
1
2
- 57106
+ 705818
@@ -3058,7 +2602,7 @@
1
2
- 57106
+ 705818
@@ -3074,7 +2618,7 @@
1
2
- 57106
+ 705818
@@ -3088,14 +2632,9 @@
12
- 2
- 3
- 62
-
-
- 913
- 914
- 62
+ 330823
+ 330824
+ 2
@@ -3109,9 +2648,9 @@
12
- 1
- 2
- 124
+ 4
+ 5
+ 2
@@ -3127,7 +2666,7 @@
1
2
- 124
+ 2
@@ -3141,14 +2680,9 @@
12
- 2
- 3
- 62
-
-
- 21
- 22
- 62
+ 22902
+ 22903
+ 2
@@ -3164,12 +2698,7 @@
1
2
- 62
-
-
- 629
- 630
- 62
+ 2
@@ -3178,6 +2707,22 @@
generated_by
location
+
+
+ 12
+
+
+ 169224
+ 169225
+ 2
+
+
+
+
+
+
+ severity
+ id
12
@@ -3185,260 +2730,279 @@
1
2
- 62
+ 2
+
+
+ 3
+ 4
+ 2
+
+
+ 6
+ 7
+ 2
+
+
+ 330813
+ 330814
+ 2
+
+
+
+
+
+
+ severity
+ generated_by
+
+
+ 12
+
+
+ 1
+ 2
+ 8
+
+
+
+
+
+
+ severity
+ error_tag
+
+
+ 12
+
+
+ 1
+ 2
+ 8
+
+
+
+
+
+
+ severity
+ error_message
+
+
+ 12
+
+
+ 1
+ 2
+ 2
+
+
+ 3
+ 4
+ 4
+
+
+ 22895
+ 22896
+ 2
+
+
+
+
+
+
+ severity
+ full_error_message
+
+
+ 12
+
+
+ 1
+ 2
+ 8
+
+
+
+
+
+
+ severity
+ location
+
+
+ 12
+
+
+ 1
+ 2
+ 2
+
+
+ 2
+ 3
+ 2
+
+
+ 3
+ 4
+ 2
+
+
+ 169219
+ 169220
+ 2
+
+
+
+
+
+
+ error_tag
+ id
+
+
+ 12
+
+
+ 330823
+ 330824
+ 2
+
+
+
+
+
+
+ error_tag
+ generated_by
+
+
+ 12
+
+
+ 1
+ 2
+ 2
+
+
+
+
+
+
+ error_tag
+ severity
+
+
+ 12
+
+
+ 4
+ 5
+ 2
+
+
+
+
+
+
+ error_tag
+ error_message
+
+
+ 12
+
+
+ 22902
+ 22903
+ 2
+
+
+
+
+
+
+ error_tag
+ full_error_message
+
+
+ 12
+
+
+ 1
+ 2
+ 2
+
+
+
+
+
+
+ error_tag
+ location
+
+
+ 12
+
+
+ 169224
+ 169225
+ 2
+
+
+
+
+
+
+ error_message
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 6345
+
+
+ 2
+ 3
+ 7079
+
+
+ 3
+ 4
+ 4171
4
5
- 62
+ 4815
-
-
-
-
-
- severity
- id
-
-
- 12
-
-
- 915
- 916
- 62
-
-
-
-
-
-
- severity
- generated_by
-
-
- 12
-
-
- 2
- 3
- 62
-
-
-
-
-
-
- severity
- error_tag
-
-
- 12
-
-
- 1
- 2
- 62
-
-
-
-
-
-
- severity
- error_message
-
-
- 12
-
-
- 23
- 24
- 62
-
-
-
-
-
-
- severity
- full_error_message
-
-
- 12
-
-
- 630
- 631
- 62
-
-
-
-
-
-
- severity
- location
-
-
- 12
-
5
6
- 62
-
-
-
-
-
-
- error_tag
- id
-
-
- 12
-
-
- 915
- 916
- 62
-
-
-
-
-
-
- error_tag
- generated_by
-
-
- 12
-
-
- 2
- 3
- 62
-
-
-
-
-
-
- error_tag
- severity
-
-
- 12
-
-
- 1
- 2
- 62
-
-
-
-
-
-
- error_tag
- error_message
-
-
- 12
-
-
- 23
- 24
- 62
-
-
-
-
-
-
- error_tag
- full_error_message
-
-
- 12
-
-
- 630
- 631
- 62
-
-
-
-
-
-
- error_tag
- location
-
-
- 12
-
-
- 5
- 6
- 62
-
-
-
-
-
-
- error_message
- id
-
-
- 12
-
-
- 1
- 2
- 312
+ 9477
- 2
- 3
- 249
+ 6
+ 9
+ 3816
- 4
- 7
- 124
+ 9
+ 15
+ 1909
- 7
- 10
- 124
-
-
- 13
+ 15
16
- 124
+ 11156
- 19
- 23
- 124
-
-
- 25
- 27
- 124
-
-
- 48
- 81
- 124
-
-
- 314
- 315
- 124
+ 16
+ 159326
+ 91
@@ -3454,7 +3018,7 @@
1
2
- 1435
+ 48861
@@ -3470,7 +3034,7 @@
1
2
- 1435
+ 48861
@@ -3486,7 +3050,7 @@
1
2
- 1435
+ 48861
@@ -3502,55 +3066,479 @@
1
2
- 312
+ 48861
+
+
+
+
+
+
+ error_message
+ location
+
+
+ 12
+
+
+ 1
+ 2
+ 6353
2
3
- 249
+ 7074
+
+
+ 3
+ 4
+ 4171
+
+
+ 4
+ 5
+ 4813
+
+
+ 5
+ 6
+ 9477
+
+
+ 6
+ 9
+ 3814
+
+
+ 9
+ 15
+ 1909
+
+
+ 15
+ 16
+ 11156
+
+
+ 16
+ 159326
+ 91
+
+
+
+
+
+
+ full_error_message
+ id
+
+
+ 12
+
+
+ 330823
+ 330824
+ 2
+
+
+
+
+
+
+ full_error_message
+ generated_by
+
+
+ 12
+
+
+ 1
+ 2
+ 2
+
+
+
+
+
+
+ full_error_message
+ severity
+
+
+ 12
+
+
+ 4
+ 5
+ 2
+
+
+
+
+
+
+ full_error_message
+ error_tag
+
+
+ 12
+
+
+ 1
+ 2
+ 2
+
+
+
+
+
+
+ full_error_message
+ error_message
+
+
+ 12
+
+
+ 22902
+ 22903
+ 2
+
+
+
+
+
+
+ full_error_message
+ location
+
+
+ 12
+
+
+ 169224
+ 169225
+ 2
+
+
+
+
+
+
+ location
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 23210
+
+
+ 2
+ 3
+ 330902
+
+
+ 3
+ 9
+ 6929
+
+
+
+
+
+
+ location
+ generated_by
+
+
+ 12
+
+
+ 1
+ 2
+ 361043
+
+
+
+
+
+
+ location
+ severity
+
+
+ 12
+
+
+ 1
+ 2
+ 361041
+
+
+ 2
+ 3
+ 2
+
+
+
+
+
+
+ location
+ error_tag
+
+
+ 12
+
+
+ 1
+ 2
+ 361043
+
+
+
+
+
+
+ location
+ error_message
+
+
+ 12
+
+
+ 1
+ 2
+ 23216
+
+
+ 2
+ 3
+ 330900
+
+
+ 3
+ 4
+ 6925
+
+
+
+
+
+
+ location
+ full_error_message
+
+
+ 12
+
+
+ 1
+ 2
+ 361043
+
+
+
+
+
+
+
+
+ diagnostic_for
+ 705818
+
+
+ diagnostic
+ 705818
+
+
+ compilation
+ 2
+
+
+ file_number
+ 2402
+
+
+ file_number_diagnostic_number
+ 38757
+
+
+
+
+ diagnostic
+ compilation
+
+
+ 12
+
+
+ 1
+ 2
+ 705818
+
+
+
+
+
+
+ diagnostic
+ file_number
+
+
+ 12
+
+
+ 1
+ 2
+ 705818
+
+
+
+
+
+
+ diagnostic
+ file_number_diagnostic_number
+
+
+ 12
+
+
+ 1
+ 2
+ 705818
+
+
+
+
+
+
+ compilation
+ diagnostic
+
+
+ 12
+
+
+ 330823
+ 330824
+ 2
+
+
+
+
+
+
+ compilation
+ file_number
+
+
+ 12
+
+
+ 1126
+ 1127
+ 2
+
+
+
+
+
+
+ compilation
+ file_number_diagnostic_number
+
+
+ 12
+
+
+ 18166
+ 18167
+ 2
+
+
+
+
+
+
+ file_number
+ diagnostic
+
+
+ 12
+
+
+ 1
+ 2
+ 328
+
+
+ 2
+ 3
+ 149
+
+
+ 3
+ 4
+ 315
4
6
- 124
+ 179
6
8
- 124
+ 151
- 9
- 16
- 124
+ 8
+ 11
+ 204
- 19
- 23
- 124
+ 11
+ 17
+ 196
- 25
- 27
- 124
+ 17
+ 30
+ 185
- 38
- 49
- 124
+ 30
+ 55
+ 181
- 80
- 315
- 124
+ 55
+ 133
+ 181
+
+
+ 134
+ 327
+ 181
+
+
+ 342
+ 18167
+ 147
- error_message
- location
+ file_number
+ compilation
12
@@ -3558,20 +3546,15 @@
1
2
- 1373
-
-
- 3
- 4
- 62
+ 2402
- full_error_message
- id
+ file_number
+ file_number_diagnostic_number
12
@@ -3579,215 +3562,131 @@
1
2
- 37010
-
-
- 2
- 37
- 2309
-
-
-
-
-
-
- full_error_message
- generated_by
-
-
- 12
-
-
- 1
- 2
- 39319
-
-
-
-
-
-
- full_error_message
- severity
-
-
- 12
-
-
- 1
- 2
- 39319
-
-
-
-
-
-
- full_error_message
- error_tag
-
-
- 12
-
-
- 1
- 2
- 39319
-
-
-
-
-
-
- full_error_message
- error_message
-
-
- 12
-
-
- 1
- 2
- 39257
+ 328
2
3
- 62
-
-
-
-
-
-
- full_error_message
- location
-
-
- 12
-
-
- 1
- 2
- 39319
-
-
-
-
-
-
- location
- id
-
-
- 12
-
-
- 2
- 3
- 62
+ 149
3
4
- 62
+ 315
4
- 5
- 62
+ 6
+ 179
6
- 7
- 62
+ 8
+ 151
- 900
- 901
- 62
+ 8
+ 11
+ 204
+
+
+ 11
+ 17
+ 196
+
+
+ 17
+ 30
+ 185
+
+
+ 30
+ 55
+ 181
+
+
+ 55
+ 133
+ 181
+
+
+ 134
+ 327
+ 181
+
+
+ 342
+ 18167
+ 147
- location
- generated_by
+ file_number_diagnostic_number
+ diagnostic
12
-
- 1
- 2
- 312
-
-
-
-
-
-
- location
- severity
-
-
- 12
-
-
- 1
- 2
- 312
-
-
-
-
-
-
- location
- error_tag
-
-
- 12
-
-
- 1
- 2
- 312
-
-
-
-
-
-
- location
- error_message
-
-
- 12
-
-
- 1
- 2
- 187
-
2
- 3
- 62
+ 5
+ 981
- 20
+ 5
+ 6
+ 3895
+
+
+ 6
+ 9
+ 1790
+
+
+ 9
+ 10
+ 5822
+
+
+ 10
+ 14
+ 537
+
+
+ 15
+ 16
+ 15926
+
+
+ 16
21
- 62
+ 2745
+
+
+ 23
+ 25
+ 3208
+
+
+ 25
+ 57
+ 2927
+
+
+ 57
+ 1127
+ 921
- location
- full_error_message
+ file_number_diagnostic_number
+ compilation
12
@@ -3795,17 +3694,68 @@
1
2
- 187
+ 38757
+
+
+
+
+
+
+ file_number_diagnostic_number
+ file_number
+
+
+ 12
+
+
+ 2
+ 5
+ 981
- 3
- 4
- 62
+ 5
+ 6
+ 3895
- 624
- 625
- 62
+ 6
+ 9
+ 1790
+
+
+ 9
+ 10
+ 5822
+
+
+ 10
+ 14
+ 537
+
+
+ 15
+ 16
+ 15926
+
+
+ 16
+ 21
+ 2745
+
+
+ 23
+ 25
+ 3208
+
+
+ 25
+ 57
+ 2927
+
+
+ 57
+ 1127
+ 921
@@ -3959,11 +3909,11 @@
sourceLocationPrefix
- 569
+ 2925
prefix
- 569
+ 2925
@@ -4781,31 +4731,31 @@
locations_default
- 82315299
+ 915359999
id
- 82315299
+ 915359999
file
- 1291911
+ 4332583
beginLine
- 538208
+ 5932802
beginColumn
- 33818
+ 377382
endLine
- 538471
+ 5935727
endColumn
- 119281
+ 1404213
@@ -4819,7 +4769,7 @@
1
2
- 82315299
+ 915359999
@@ -4835,7 +4785,7 @@
1
2
- 82315299
+ 915359999
@@ -4851,7 +4801,7 @@
1
2
- 82315299
+ 915359999
@@ -4867,7 +4817,7 @@
1
2
- 82315299
+ 915359999
@@ -4883,7 +4833,7 @@
1
2
- 82315299
+ 915359999
@@ -4899,357 +4849,40 @@
1
2
- 1131995
+ 2600720
2
- 11
- 97522
+ 6
+ 394935
- 11
- 3605
- 62393
-
-
-
-
-
-
- file
- beginLine
-
-
- 12
-
-
- 1
- 2
- 1131995
-
-
- 2
- 9
- 97260
-
-
- 9
- 1830
- 62655
-
-
-
-
-
-
- file
- beginColumn
-
-
- 12
-
-
- 1
- 2
- 1131995
-
-
- 2
- 5
- 105911
-
-
- 5
- 105
- 54004
-
-
-
-
-
-
- file
- endLine
-
-
- 12
-
-
- 1
- 2
- 1131995
-
-
- 2
- 11
- 99619
-
-
- 11
- 1834
- 60296
-
-
-
-
-
-
- file
- endColumn
-
-
- 12
-
-
- 1
- 2
- 1131995
-
-
- 2
- 10
- 99619
-
-
- 10
- 205
- 60296
-
-
-
-
-
-
- beginLine
- id
-
-
- 12
-
-
- 1
- 14
- 42731
-
-
- 14
- 125
- 41158
-
-
- 125
- 142
- 41945
-
-
- 142
- 152
- 43255
-
-
- 152
- 159
- 49023
-
-
- 159
- 164
- 37226
-
-
- 164
- 169
- 46926
-
-
- 169
- 173
- 40896
-
-
- 173
- 178
- 45353
-
-
- 178
- 184
- 47450
-
-
- 184
- 193
- 43255
-
-
- 193
- 211
- 40372
-
-
- 211
- 4929
- 18613
-
-
-
-
-
-
- beginLine
- file
-
-
- 12
-
-
- 1
+ 6
7
- 44042
+ 359829
7
- 65
- 40896
+ 12
+ 351053
- 65
- 73
- 41945
+ 12
+ 680
+ 327649
- 73
- 78
- 40372
-
-
- 78
- 81
- 36177
-
-
- 81
- 84
- 48761
-
-
- 84
- 86
- 40896
-
-
- 86
- 87
- 25691
-
-
- 87
- 89
- 48761
-
-
- 89
- 91
- 35129
-
-
- 91
- 94
- 44566
-
-
- 94
- 99
- 44828
-
-
- 99
- 142
- 40634
-
-
- 142
- 4929
- 5505
+ 831
+ 3605
+ 298395
- beginLine
- beginColumn
-
-
- 12
-
-
- 1
- 5
- 42731
-
-
- 5
- 17
- 38274
-
-
- 17
- 19
- 34342
-
-
- 19
- 20
- 42207
-
-
- 20
- 21
- 55053
-
-
- 21
- 22
- 57412
-
-
- 22
- 23
- 65015
-
-
- 23
- 24
- 62393
-
-
- 24
- 25
- 46401
-
-
- 25
- 26
- 29099
-
-
- 26
- 29
- 49285
-
-
- 29
- 40
- 15991
-
-
-
-
-
-
- beginLine
- endLine
+ file
+ beginLine
12
@@ -5257,658 +4890,45 @@
1
2
- 173810
+ 2600720
2
- 3
- 172761
-
-
- 3
4
- 92017
+ 134570
4
5
- 40896
+ 286693
5
- 11
- 41945
+ 6
+ 362755
- 11
- 97
- 16778
-
-
-
-
-
-
- beginLine
- endColumn
-
-
- 12
-
-
- 1
- 13
- 42207
-
-
- 13
- 60
- 41945
-
-
- 60
- 64
- 42469
-
-
- 64
- 66
- 42207
-
-
- 66
- 68
- 48499
-
-
- 68
- 69
- 26477
-
-
- 69
- 70
- 29361
-
-
- 70
- 72
- 49023
-
-
- 72
- 74
- 44042
-
-
- 74
- 76
- 33818
-
-
- 76
- 79
- 45091
-
-
- 79
- 83
- 40372
-
-
- 83
- 91
- 43255
-
-
- 91
- 103
- 9437
-
-
-
-
-
-
- beginColumn
- id
-
-
- 12
-
-
- 1
- 11
- 2883
-
-
- 15
- 24
- 2883
-
-
- 28
- 58
- 2883
-
-
- 58
- 88
- 2621
-
-
- 89
- 131
- 2621
-
-
- 131
- 196
- 2883
-
-
- 213
- 297
- 2621
-
-
- 307
- 496
- 2621
-
-
- 513
- 883
- 2621
-
-
- 933
- 1470
- 2621
-
-
- 1665
- 2279
- 2621
-
-
- 2295
- 2583
- 2621
-
-
- 2694
- 226487
- 1310
-
-
-
-
-
-
- beginColumn
- file
-
-
- 12
-
-
- 1
- 9
- 2359
-
-
- 9
- 11
- 2883
-
-
- 11
- 15
- 2097
-
-
- 15
- 19
- 2883
-
-
- 23
- 68
- 2621
-
-
- 69
- 78
- 2621
-
-
- 79
- 100
- 1835
-
-
- 100
- 104
- 2883
-
-
- 104
- 109
- 2621
-
-
- 109
- 112
- 1835
-
-
- 112
- 115
- 2621
-
-
- 115
- 117
- 2621
-
-
- 117
- 123
- 2621
-
-
- 145
- 4929
- 1310
-
-
-
-
-
-
- beginColumn
- beginLine
-
-
- 12
-
-
- 1
+ 6
10
- 2883
+ 353978
10
- 22
- 2883
+ 1001
+ 327649
- 23
- 39
- 2621
-
-
- 41
- 58
- 2621
-
-
- 58
- 84
- 2621
-
-
- 84
- 106
- 2621
-
-
- 108
- 166
- 2621
-
-
- 167
- 225
- 2621
-
-
- 230
- 376
- 2621
-
-
- 381
- 647
- 2621
-
-
- 657
- 941
- 2621
-
-
- 941
- 1090
- 2621
-
-
- 1102
- 2051
- 1835
+ 1038
+ 1830
+ 266215
- beginColumn
- endLine
-
-
- 12
-
-
- 1
- 10
- 2883
-
-
- 10
- 22
- 2883
-
-
- 23
- 39
- 2621
-
-
- 41
- 59
- 2621
-
-
- 59
- 86
- 2621
-
-
- 86
- 109
- 2621
-
-
- 114
- 168
- 2621
-
-
- 170
- 224
- 2621
-
-
- 229
- 379
- 2621
-
-
- 382
- 647
- 2621
-
-
- 658
- 941
- 2621
-
-
- 941
- 1089
- 2621
-
-
- 1102
- 2051
- 1835
-
-
-
-
-
-
- beginColumn
- endColumn
-
-
- 12
-
-
- 1
- 8
- 2883
-
-
- 8
- 16
- 2883
-
-
- 16
- 23
- 2621
-
-
- 23
- 30
- 2621
-
-
- 30
- 36
- 2621
-
-
- 36
- 44
- 2621
-
-
- 46
- 55
- 2621
-
-
- 55
- 65
- 2883
-
-
- 65
- 76
- 2621
-
-
- 77
- 94
- 2621
-
-
- 94
- 117
- 2621
-
-
- 119
- 152
- 2621
-
-
- 153
- 393
- 1572
-
-
-
-
-
-
- endLine
- id
-
-
- 12
-
-
- 1
- 14
- 42207
-
-
- 14
- 124
- 41683
-
-
- 124
- 143
- 42207
-
-
- 143
- 152
- 45615
-
-
- 152
- 159
- 44042
-
-
- 159
- 164
- 40896
-
-
- 164
- 169
- 46664
-
-
- 169
- 173
- 41945
-
-
- 173
- 178
- 46401
-
-
- 178
- 184
- 41683
-
-
- 184
- 193
- 42993
-
-
- 193
- 212
- 41158
-
-
- 212
- 4929
- 20972
-
-
-
-
-
-
- endLine
- file
-
-
- 12
-
-
- 1
- 7
- 44304
-
-
- 7
- 66
- 43518
-
-
- 66
- 74
- 43780
-
-
- 74
- 80
- 48499
-
-
- 80
- 83
- 46401
-
-
- 83
- 85
- 36702
-
-
- 85
- 87
- 46926
-
-
- 87
- 89
- 48499
-
-
- 89
- 91
- 36439
-
-
- 91
- 94
- 47188
-
-
- 94
- 99
- 44304
-
-
- 99
- 130
- 40896
-
-
- 130
- 4929
- 11010
-
-
-
-
-
-
- endLine
- beginLine
+ file
+ beginColumn
12
@@ -5916,110 +4936,85 @@
1
2
- 136583
+ 2600720
2
3
- 190064
+ 125794
3
4
- 124000
+ 798646
4
6
- 45877
+ 356904
6
- 19
- 40896
+ 85
+ 245737
- 19
- 22
- 1048
+ 85
+ 105
+ 204781
- endLine
- beginColumn
+ file
+ endLine
12
1
+ 2
+ 2600720
+
+
+ 2
5
- 42207
+ 163824
5
+ 6
+ 430040
+
+
+ 6
+ 8
+ 333500
+
+
+ 8
17
- 38799
+ 339351
17
- 19
- 31721
+ 1691
+ 330575
- 19
- 20
- 38274
-
-
- 20
- 21
- 57412
-
-
- 21
- 22
- 55577
-
-
- 22
- 23
- 65801
-
-
- 23
- 24
- 59771
-
-
- 24
- 25
- 45353
-
-
- 25
- 26
- 35653
-
-
- 26
- 29
- 49547
-
-
- 29
- 39
- 18351
+ 1691
+ 1834
+ 134570
- endLine
+ file
endColumn
@@ -6027,73 +5022,1123 @@
1
- 13
- 42731
+ 2
+ 2600720
- 13
- 60
- 41683
+ 2
+ 5
+ 155048
- 60
+ 5
+ 6
+ 351053
+
+
+ 6
+ 7
+ 333500
+
+
+ 7
+ 12
+ 371531
+
+
+ 12
+ 178
+ 327649
+
+
+ 178
+ 205
+ 193079
+
+
+
+
+
+
+ beginLine
+ id
+
+
+ 12
+
+
+ 1
+ 89
+ 450518
+
+
+ 89
+ 127
+ 468071
+
+
+ 127
+ 138
+ 476847
+
+
+ 138
+ 146
+ 447593
+
+
+ 146
+ 154
+ 479772
+
+
+ 154
+ 161
+ 532430
+
+
+ 161
+ 167
+ 511952
+
+
+ 167
+ 172
+ 462220
+
+
+ 172
+ 178
+ 462220
+
+
+ 178
+ 185
+ 479772
+
+
+ 185
+ 194
+ 450518
+
+
+ 194
+ 206
+ 470996
+
+
+ 206
+ 1479
+ 239886
+
+
+
+
+
+
+ beginLine
+ file
+
+
+ 12
+
+
+ 1
+ 46
+ 450518
+
+
+ 47
+ 66
+ 497325
+
+
+ 66
+ 71
+ 547058
+
+
+ 71
+ 76
+ 476847
+
+
+ 76
+ 80
+ 497325
+
+
+ 80
+ 83
+ 441742
+
+
+ 83
+ 86
+ 514878
+
+
+ 86
+ 89
+ 482698
+
+
+ 89
+ 92
+ 514878
+
+
+ 92
+ 95
+ 509027
+
+
+ 95
+ 100
+ 517803
+
+
+ 100
+ 154
+ 447593
+
+
+ 159
+ 1479
+ 35105
+
+
+
+
+
+
+ beginLine
+ beginColumn
+
+
+ 12
+
+
+ 1
+ 14
+ 482698
+
+
+ 14
+ 17
+ 491474
+
+
+ 17
+ 18
+ 371531
+
+
+ 18
+ 19
+ 491474
+
+
+ 19
+ 20
+ 655299
+
+
+ 20
+ 21
+ 740137
+
+
+ 21
+ 22
+ 705032
+
+
+ 22
+ 23
+ 620194
+
+
+ 23
+ 24
+ 529505
+
+
+ 24
+ 25
+ 359829
+
+
+ 25
+ 29
+ 468071
+
+
+ 29
+ 32
+ 17552
+
+
+
+
+
+
+ beginLine
+ endLine
+
+
+ 12
+
+
+ 1
+ 2
+ 1901539
+
+
+ 2
+ 3
+ 1980526
+
+
+ 3
+ 4
+ 982949
+
+
+ 4
+ 5
+ 465145
+
+
+ 5
+ 12
+ 473922
+
+
+ 12
+ 99
+ 128719
+
+
+
+
+
+
+ beginLine
+ endColumn
+
+
+ 12
+
+
+ 1
+ 48
+ 447593
+
+
+ 48
+ 59
+ 421264
+
+
+ 59
+ 62
+ 465145
+
+
+ 62
64
- 41683
+ 432965
64
66
- 41158
+ 514878
66
+ 67
+ 339351
+
+
+ 67
68
- 49023
+ 254513
68
69
- 27002
+ 327649
69
- 70
- 27526
-
-
- 70
71
- 29623
+ 526580
71
73
- 44828
+ 465145
73
75
- 35653
+ 392009
75
- 77
- 35129
+ 78
+ 494400
- 77
- 80
- 40896
+ 78
+ 83
+ 482698
+
+
+ 83
+ 107
+ 368606
+
+
+
+
+
+
+ beginColumn
+ id
+
+
+ 12
+
+
+ 2
+ 7
+ 26329
+
+
+ 8
+ 12
+ 32179
+
+
+ 13
+ 29
+ 29254
+
+
+ 30
+ 73
+ 29254
+
+
+ 78
+ 106
+ 32179
+
+
+ 108
+ 183
+ 29254
+
+
+ 184
+ 237
+ 29254
+
+
+ 250
+ 341
+ 29254
+
+
+ 346
+ 794
+ 29254
+
+
+ 805
+ 1339
+ 29254
+
+
+ 1344
+ 1967
+ 29254
+
+
+ 2066
+ 2529
+ 29254
+
+
+ 2593
+ 229061
+ 23403
+
+
+
+
+
+
+ beginColumn
+ file
+
+
+ 12
+
+
+ 1
+ 3
+ 23403
+
+
+ 3
+ 4
+ 17552
+
+
+ 4
+ 6
+ 26329
+
+
+ 6
+ 11
+ 29254
+
+
+ 11
+ 52
+ 29254
+
+
+ 71
+ 79
+ 26329
+
+
+ 82
+ 91
+ 32179
+
+
+ 92
+ 99
+ 29254
+
+
+ 99
+ 102
+ 26329
+
+
+ 102
+ 104
+ 17552
+
+
+ 104
+ 105
+ 17552
+
+
+ 105
+ 107
+ 32179
+
+
+ 107
+ 108
+ 11701
+
+
+ 108
+ 109
+ 23403
+
+
+ 109
+ 524
+ 29254
+
+
+ 591
+ 1479
+ 5850
+
+
+
+
+
+
+ beginColumn
+ beginLine
+
+
+ 12
+
+
+ 1
+ 5
+ 29254
+
+
+ 7
+ 11
+ 29254
+
+
+ 11
+ 22
+ 29254
+
+
+ 25
+ 43
+ 29254
+
+
+ 43
+ 66
+ 29254
+
+
+ 66
+ 91
+ 29254
+
+
+ 108
+ 136
+ 29254
+
+
+ 142
+ 169
+ 29254
+
+
+ 175
+ 334
+ 29254
+
+
+ 341
+ 583
+ 29254
+
+
+ 591
+ 825
+ 29254
+
+
+ 874
+ 1041
+ 29254
+
+
+ 1060
+ 2021
+ 26329
+
+
+
+
+
+
+ beginColumn
+ endLine
+
+
+ 12
+
+
+ 1
+ 5
+ 29254
+
+
+ 7
+ 11
+ 29254
+
+
+ 11
+ 26
+ 32179
+
+
+ 26
+ 45
+ 29254
+
+
+ 45
+ 78
+ 29254
+
+
+ 78
+ 113
+ 29254
+
+
+ 113
+ 146
+ 29254
+
+
+ 146
+ 204
+ 29254
+
+
+ 204
+ 342
+ 29254
+
+
+ 357
+ 592
+ 29254
+
+
+ 606
+ 876
+ 29254
+
+
+ 922
+ 1061
+ 29254
+
+
+ 1065
+ 2021
+ 23403
+
+
+
+
+
+
+ beginColumn
+ endColumn
+
+
+ 12
+
+
+ 1
+ 4
+ 26329
+
+
+ 4
+ 8
+ 26329
+
+
+ 8
+ 15
+ 29254
+
+
+ 15
+ 21
+ 29254
+
+
+ 21
+ 29
+ 32179
+
+
+ 30
+ 39
+ 26329
+
+
+ 41
+ 47
+ 29254
+
+
+ 47
+ 55
+ 29254
+
+
+ 56
+ 65
+ 29254
+
+
+ 66
+ 79
+ 29254
80
+ 101
+ 29254
+
+
+ 105
+ 126
+ 29254
+
+
+ 131
+ 208
+ 29254
+
+
+ 415
+ 416
+ 2925
+
+
+
+
+
+
+ endLine
+ id
+
+
+ 12
+
+
+ 1
85
- 43780
+ 447593
85
- 119
- 37750
+ 127
+ 476847
+
+
+ 127
+ 138
+ 482698
+
+
+ 138
+ 147
+ 488549
+
+
+ 147
+ 154
+ 453443
+
+
+ 154
+ 161
+ 494400
+
+
+ 161
+ 167
+ 497325
+
+
+ 167
+ 172
+ 470996
+
+
+ 172
+ 178
+ 450518
+
+
+ 178
+ 185
+ 456369
+
+
+ 185
+ 193
+ 456369
+
+
+ 193
+ 205
+ 468071
+
+
+ 205
+ 1479
+ 292544
+
+
+
+
+
+
+ endLine
+ file
+
+
+ 12
+
+
+ 1
+ 46
+ 450518
+
+
+ 46
+ 66
+ 494400
+
+
+ 66
+ 71
+ 503176
+
+
+ 71
+ 76
+ 465145
+
+
+ 76
+ 80
+ 500251
+
+
+ 80
+ 83
+ 415413
+
+
+ 83
+ 86
+ 491474
+
+
+ 86
+ 89
+ 547058
+
+
+ 89
+ 92
+ 497325
+
+
+ 92
+ 95
+ 450518
+
+
+ 95
+ 99
+ 465145
+
+
+ 99
+ 109
+ 450518
+
+
+ 109
+ 1479
+ 204781
+
+
+
+
+
+
+ endLine
+ beginLine
+
+
+ 12
+
+
+ 1
+ 2
+ 1550485
+
+
+ 2
+ 3
+ 2068289
+
+
+ 3
+ 4
+ 1366182
+
+
+ 4
+ 6
+ 523654
+
+
+ 6
+ 21
+ 427114
+
+
+
+
+
+
+ endLine
+ beginColumn
+
+
+ 12
+
+
+ 1
+ 14
+ 456369
+
+
+ 14
+ 17
+ 470996
+
+
+ 17
+ 18
+ 342277
+
+
+ 18
+ 19
+ 491474
+
+
+ 19
+ 20
+ 620194
+
+
+ 20
+ 21
+ 804497
+
+
+ 21
+ 22
+ 699181
+
+
+ 22
+ 23
+ 576312
+
+
+ 23
+ 24
+ 538281
+
+
+ 24
+ 25
+ 412487
+
+
+ 25
+ 28
+ 473922
+
+
+ 28
+ 33
+ 49732
+
+
+
+
+
+
+ endLine
+ endColumn
+
+
+ 12
+
+
+ 1
+ 48
+ 450518
+
+
+ 48
+ 60
+ 523654
+
+
+ 60
+ 63
+ 547058
+
+
+ 63
+ 65
+ 485623
+
+
+ 65
+ 66
+ 283768
+
+
+ 66
+ 67
+ 301320
+
+
+ 67
+ 68
+ 251588
+
+
+ 68
+ 69
+ 313022
+
+
+ 69
+ 71
+ 506101
+
+
+ 71
+ 73
+ 468071
+
+
+ 73
+ 75
+ 415413
+
+
+ 75
+ 78
+ 535356
+
+
+ 78
+ 83
+ 453443
+
+
+ 83
+ 120
+ 400785
@@ -6109,57 +6154,57 @@
1
2
- 28050
+ 318873
2
3
- 12321
+ 122868
3
5
- 9699
+ 111166
5
- 13
- 9699
+ 9
+ 111166
- 13
- 53
- 9175
+ 9
+ 18
+ 108241
- 53
- 144
- 9175
+ 19
+ 61
+ 105316
- 145
- 348
- 9175
+ 62
+ 198
+ 105316
- 357
- 967
- 9175
+ 202
+ 482
+ 105316
- 1050
- 2386
- 9175
+ 489
+ 1430
+ 105316
- 2392
- 4931
- 9175
+ 1448
+ 3598
+ 105316
- 4949
- 5933
- 4456
+ 3743
+ 6247
+ 105316
@@ -6175,57 +6220,57 @@
1
2
- 29099
+ 330575
2
3
- 11797
+ 114092
3
5
- 10224
+ 122868
5
- 13
- 9699
+ 10
+ 122868
- 13
- 42
- 9175
+ 10
+ 24
+ 108241
- 42
- 77
- 9175
+ 24
+ 51
+ 105316
- 77
- 102
- 9175
+ 52
+ 94
+ 108241
- 102
- 113
- 9175
+ 94
+ 107
+ 108241
- 114
- 139
- 9175
+ 107
+ 120
+ 105316
- 139
- 168
- 9175
+ 120
+ 147
+ 108241
- 168
- 4929
- 3408
+ 147
+ 1479
+ 70210
@@ -6241,57 +6286,57 @@
1
2
- 29623
+ 333500
2
3
- 12059
+ 122868
3
5
- 9437
+ 108241
5
- 13
- 9437
+ 9
+ 119943
- 13
- 51
- 9175
+ 9
+ 18
+ 105316
- 51
- 113
- 9175
+ 18
+ 60
+ 108241
- 114
- 266
- 9175
+ 61
+ 184
+ 105316
- 269
- 636
- 9175
+ 190
+ 386
+ 105316
- 648
- 1197
- 9175
+ 399
+ 942
+ 105316
- 1198
- 1635
- 9437
+ 968
+ 1533
+ 105316
- 1639
- 1722
- 3408
+ 1542
+ 1757
+ 84837
@@ -6307,47 +6352,52 @@
1
2
- 37488
+ 418338
2
3
- 14156
+ 157974
3
+ 4
+ 102390
+
+
+ 4
6
- 10748
+ 105316
6
- 14
- 10486
+ 12
+ 108241
- 14
- 25
- 10224
+ 12
+ 21
+ 105316
- 25
- 36
- 9699
+ 21
+ 33
+ 108241
- 36
- 47
- 9175
+ 33
+ 43
+ 108241
- 47
+ 43
54
- 9175
+ 117017
54
- 65
- 8126
+ 64
+ 73136
@@ -6363,57 +6413,57 @@
1
2
- 29623
+ 333500
2
3
- 11797
+ 122868
3
5
- 9437
+ 111166
5
- 13
- 9437
+ 9
+ 111166
- 13
- 52
- 9175
+ 9
+ 18
+ 105316
- 52
- 112
- 9175
+ 18
+ 60
+ 105316
- 112
- 262
- 9175
+ 61
+ 182
+ 105316
- 262
- 630
- 9175
+ 182
+ 372
+ 108241
- 637
- 1186
- 9175
+ 383
+ 922
+ 105316
- 1197
- 1625
- 9175
+ 944
+ 1519
+ 105316
- 1632
- 1722
- 3932
+ 1527
+ 1757
+ 90688
@@ -6423,15 +6473,15 @@
hasLocation
- 53281114
+ 70974218
locatableid
- 53281114
+ 70906932
id
- 1717130
+ 3080493
@@ -6445,7 +6495,12 @@
1
2
- 53281114
+ 70839647
+
+
+ 2
+ 3
+ 67285
@@ -6461,62 +6516,72 @@
1
2
- 294140
+ 479772
2
3
- 182199
+ 64359
3
+ 4
+ 266215
+
+
+ 4
5
- 155983
+ 231110
5
+ 6
+ 143346
+
+
+ 6
7
- 126884
+ 143346
7
+ 8
+ 146272
+
+
+ 8
10
- 148905
+ 242811
10
- 13
- 142089
+ 14
+ 257439
- 13
- 17
- 132651
+ 14
+ 19
+ 231110
- 17
- 23
- 130030
+ 19
+ 26
+ 239886
- 23
- 35
- 133175
+ 26
+ 44
+ 231110
- 35
- 64
- 129505
+ 44
+ 81
+ 236961
- 64
- 396
- 128981
-
-
- 405
- 9847
- 12583
+ 81
+ 881
+ 166750
@@ -6526,23 +6591,23 @@
numlines
- 41395164
+ 467290086
element_id
- 41395164
+ 467290086
num_lines
- 84414
+ 939067
num_code
- 83628
+ 941993
num_comment
- 258487
+ 2881563
@@ -6556,7 +6621,7 @@
1
2
- 41395164
+ 467290086
@@ -6572,7 +6637,7 @@
1
2
- 41395164
+ 467290086
@@ -6588,7 +6653,7 @@
1
2
- 41395164
+ 467290086
@@ -6604,145 +6669,140 @@
1
2
- 43780
+ 509027
2
3
- 10748
+ 111166
3
4
- 8389
+ 93614
4
7
- 6816
-
-
- 7
- 14
- 6553
-
-
- 15
- 194
- 6553
-
-
- 320
- 149659
- 1572
-
-
-
-
-
-
- num_lines
- num_code
-
-
- 12
-
-
- 1
- 2
- 69471
-
-
- 2
- 3
- 9437
-
-
- 3
- 6
- 5505
-
-
-
-
-
-
- num_lines
- num_comment
-
-
- 12
-
-
- 1
- 2
- 51907
-
-
- 2
- 3
- 13370
-
-
- 3
- 4
- 7078
-
-
- 4
- 6
- 7340
-
-
- 6
- 987
- 4718
-
-
-
-
-
-
- num_code
- element_id
-
-
- 12
-
-
- 1
- 2
- 43255
-
-
- 2
- 3
- 10748
-
-
- 3
- 4
- 8389
-
-
- 4
- 7
- 7078
+ 76061
7
15
- 6291
+ 73136
16
- 214
- 6291
+ 3454
+ 73136
- 325
- 78746
- 1572
+ 151799
+ 151800
+ 2925
+
+
+
+
+
+
+ num_lines
+ num_code
+
+
+ 12
+
+
+ 1
+ 2
+ 906887
+
+
+ 2
+ 4
+ 32179
+
+
+
+
+
+
+ num_lines
+ num_comment
+
+
+ 12
+
+
+ 1
+ 2
+ 593865
+
+
+ 2
+ 3
+ 149197
+
+
+ 3
+ 4
+ 84837
+
+
+ 4
+ 7
+ 76061
+
+
+ 8
+ 986
+ 35105
+
+
+
+
+
+
+ num_code
+ element_id
+
+
+ 12
+
+
+ 1
+ 2
+ 511952
+
+
+ 2
+ 3
+ 108241
+
+
+ 3
+ 4
+ 93614
+
+
+ 4
+ 7
+ 76061
+
+
+ 7
+ 15
+ 73136
+
+
+ 16
+ 505
+ 73136
+
+
+ 76342
+ 79249
+ 5850
@@ -6758,17 +6818,12 @@
1
2
- 70520
+ 921515
2
- 3
- 7078
-
-
- 3
8
- 6029
+ 20478
@@ -6784,27 +6839,27 @@
1
2
- 50596
+ 596790
2
3
- 13894
+ 149197
3
4
- 7340
+ 78987
4
- 6
- 6291
+ 7
+ 78987
- 6
- 987
- 5505
+ 7
+ 986
+ 38030
@@ -6819,78 +6874,73 @@
1
- 7
- 20972
+ 5
+ 219408
- 7
- 49
- 19399
+ 5
+ 41
+ 225259
- 49
- 71
- 20186
+ 41
+ 70
+ 239886
- 71
- 78
- 20710
+ 70
+ 75
+ 225259
- 78
- 83
- 19923
+ 75
+ 82
+ 231110
- 83
- 87
- 22283
+ 82
+ 86
+ 219408
- 87
+ 86
89
- 19137
+ 193079
89
91
- 18351
+ 207706
91
- 92
- 11010
-
-
- 92
93
- 13107
+ 242811
93
94
- 14418
+ 143346
94
95
- 13370
+ 149197
95
97
- 20710
+ 231110
97
- 119
- 19661
+ 101
+ 234035
- 120
- 75134
- 5243
+ 101
+ 75700
+ 119943
@@ -6906,22 +6956,22 @@
1
2
- 211560
+ 2375461
2
3
- 22545
+ 239886
3
7
- 19923
+ 216482
7
- 120
- 4456
+ 121
+ 49732
@@ -6937,22 +6987,22 @@
1
2
- 211560
+ 2375461
2
3
- 22545
+ 239886
3
7
- 19923
+ 216482
7
122
- 4456
+ 49732
@@ -6962,15 +7012,15 @@
files
- 1291911
+ 4338434
id
- 1291911
+ 4338434
name
- 1291911
+ 4338434
@@ -6984,7 +7034,7 @@
1
2
- 1291911
+ 4338434
@@ -7000,7 +7050,7 @@
1
2
- 1291911
+ 4338434
@@ -7010,15 +7060,15 @@
folders
- 211876
+ 857155
id
- 211876
+ 857155
name
- 211876
+ 857155
@@ -7032,7 +7082,7 @@
1
2
- 211876
+ 857155
@@ -7048,7 +7098,7 @@
1
2
- 211876
+ 857155
@@ -7058,15 +7108,15 @@
containerparent
- 1496393
+ 5189739
parent
- 212871
+ 871782
child
- 1496393
+ 5189739
@@ -7080,32 +7130,32 @@
1
2
- 125311
+ 585088
2
3
- 18613
+ 58508
3
- 5
- 18613
+ 6
+ 76061
- 5
- 10
- 18088
+ 6
+ 12
+ 67285
- 10
- 20
- 15991
+ 12
+ 45
+ 67285
- 20
- 194
- 16253
+ 55
+ 192
+ 17552
@@ -7121,7 +7171,7 @@
1
2
- 1496393
+ 5189739
@@ -7131,15 +7181,15 @@
cupackage
- 1129635
+ 2589018
id
- 1129635
+ 2589018
packageid
- 85463
+ 216482
@@ -7153,7 +7203,7 @@
1
2
- 1129635
+ 2589018
@@ -7169,57 +7219,62 @@
1
2
- 18351
+ 46807
2
3
- 11797
+ 17552
3
4
- 6029
+ 17552
4
5
- 5505
+ 14627
5
- 7
- 4980
+ 6
+ 8776
- 7
+ 6
+ 8
+ 17552
+
+
+ 8
9
- 6291
+ 5850
9
- 11
- 6553
+ 10
+ 17552
- 11
- 17
- 7864
+ 10
+ 15
+ 17552
- 17
+ 15
26
- 6816
+ 17552
26
- 53
- 6553
+ 40
+ 17552
- 54
- 187
- 4718
+ 41
+ 80
+ 17552
@@ -7229,19 +7284,19 @@
jarManifestMain
- 132371
+ 161093
fileid
- 8960
+ 11300
keyName
- 9676
+ 10098
value
- 67858
+ 82590
@@ -7255,67 +7310,57 @@
1
5
- 358
+ 480
5
6
- 1792
+ 2885
6
7
- 1075
+ 1081
9
- 10
- 358
-
-
- 13
15
- 597
+ 961
15
- 16
- 716
+ 17
+ 961
- 16
- 18
- 716
+ 17
+ 19
+ 721
- 18
- 21
- 716
+ 19
+ 20
+ 841
- 21
+ 20
23
- 477
+ 961
23
26
- 597
+ 841
26
- 27
- 358
+ 28
+ 961
- 27
- 29
- 716
-
-
- 29
+ 28
36
- 477
+ 601
@@ -7331,67 +7376,67 @@
1
5
- 358
+ 480
5
6
- 1792
+ 2885
6
7
- 1075
+ 1081
8
- 11
- 597
+ 12
+ 841
- 11
+ 12
13
- 597
+ 360
14
15
- 597
+ 721
15
16
- 597
+ 601
16
17
- 358
+ 601
17
18
- 716
+ 841
18
19
- 358
+ 601
19
21
- 716
+ 721
21
23
- 597
+ 961
23
29
- 597
+ 601
@@ -7407,42 +7452,47 @@
1
2
- 4420
+ 4448
2
4
- 716
+ 721
4
6
- 597
+ 841
6
- 12
- 836
+ 10
+ 601
- 18
- 30
- 836
+ 11
+ 31
+ 841
- 30
- 34
- 716
+ 33
+ 40
+ 841
- 34
- 42
- 836
+ 40
+ 49
+ 601
- 42
- 76
- 716
+ 50
+ 66
+ 841
+
+
+ 73
+ 95
+ 360
@@ -7458,42 +7508,42 @@
1
2
- 4898
+ 4928
2
3
- 597
+ 721
3
4
- 716
+ 721
4
9
- 836
+ 841
- 13
- 18
- 716
+ 10
+ 19
+ 841
- 18
- 31
- 836
+ 19
+ 30
+ 841
- 32
- 42
- 836
+ 37
+ 50
+ 841
- 51
- 54
- 238
+ 50
+ 66
+ 360
@@ -7509,17 +7559,22 @@
1
2
- 58659
+ 70688
2
- 4
- 5615
+ 3
+ 4928
- 4
- 76
- 3584
+ 3
+ 12
+ 6251
+
+
+ 12
+ 95
+ 721
@@ -7535,17 +7590,17 @@
1
2
- 56269
+ 69606
2
3
- 6570
+ 7934
3
5
- 5017
+ 5049
@@ -7555,23 +7610,23 @@
jarManifestEntries
- 30196
+ 216010
fileid
- 61
+ 344
entryName
- 30124
+ 213715
keyName
- 27
+ 143
value
- 30158
+ 213056
@@ -7585,72 +7640,67 @@
1
2
- 4
+ 28
- 4
- 10
- 3
+ 7
+ 38
+ 28
- 10
- 12
- 4
+ 55
+ 56
+ 14
- 12
- 31
- 4
+ 59
+ 60
+ 28
- 65
- 82
- 4
+ 68
+ 76
+ 28
- 123
- 164
- 4
+ 88
+ 103
+ 28
- 178
- 240
- 4
+ 113
+ 150
+ 28
- 253
- 294
- 4
+ 176
+ 322
+ 28
- 307
- 357
- 4
+ 330
+ 387
+ 28
- 361
- 395
- 4
+ 603
+ 771
+ 28
- 433
- 461
- 4
+ 872
+ 1420
+ 28
- 591
- 662
- 4
+ 1831
+ 1963
+ 28
- 957
- 2267
- 4
-
-
- 3647
- 3762
- 3
+ 5533
+ 5534
+ 14
@@ -7666,12 +7716,17 @@
1
2
- 57
+ 301
6
- 10
- 3
+ 7
+ 14
+
+
+ 7
+ 8
+ 28
@@ -7687,72 +7742,67 @@
1
2
- 4
+ 14
- 3
- 8
- 4
+ 4
+ 5
+ 28
- 9
- 13
- 4
+ 17
+ 56
+ 28
- 24
- 66
- 4
+ 59
+ 60
+ 28
- 70
- 124
- 4
+ 68
+ 76
+ 28
- 127
- 179
- 4
+ 88
+ 103
+ 28
- 195
- 254
- 4
+ 109
+ 150
+ 28
- 265
- 308
- 4
+ 176
+ 321
+ 28
- 320
- 362
- 4
+ 330
+ 387
+ 28
- 381
- 434
- 4
+ 603
+ 770
+ 28
- 434
- 592
- 4
+ 851
+ 1420
+ 28
- 618
- 958
- 4
+ 1803
+ 1961
+ 28
- 1671
- 3648
- 4
-
-
- 3761
- 3762
- 1
+ 5509
+ 5510
+ 14
@@ -7768,12 +7818,12 @@
1
2
- 30108
+ 213228
2
- 26
- 16
+ 21
+ 487
@@ -7789,12 +7839,12 @@
1
2
- 30121
+ 213471
- 6
- 10
- 3
+ 2
+ 8
+ 243
@@ -7810,12 +7860,12 @@
1
2
- 30120
+ 213156
- 3
- 26
- 4
+ 2
+ 20
+ 559
@@ -7831,22 +7881,27 @@
1
2
- 21
+ 14
2
3
- 3
+ 14
3
4
- 1
+ 86
- 32
- 33
- 1
+ 9
+ 10
+ 14
+
+
+ 11
+ 12
+ 14
@@ -7859,30 +7914,30 @@
12
-
- 1
- 2
- 21
-
2
3
- 1
+ 14
- 11
- 12
- 1
+ 9
+ 10
+ 86
- 369
- 370
- 1
+ 37
+ 38
+ 14
- 19366
- 19367
- 1
+ 2415
+ 2416
+ 14
+
+
+ 12451
+ 12452
+ 14
@@ -7898,22 +7953,27 @@
1
2
- 22
+ 28
2
3
- 1
+ 57
- 369
- 370
- 1
+ 8
+ 9
+ 28
- 19390
- 19391
- 1
+ 2432
+ 2433
+ 14
+
+
+ 12404
+ 12405
+ 14
@@ -7929,12 +7989,12 @@
1
2
- 30156
+ 212468
2
- 3
- 1
+ 11
+ 587
@@ -7950,12 +8010,12 @@
1
2
- 30156
+ 211693
- 11
- 12
- 1
+ 2
+ 38
+ 1362
@@ -7971,12 +8031,12 @@
1
2
- 30150
+ 212998
2
3
- 7
+ 57
@@ -7986,15 +8046,15 @@
packages
- 96053
+ 459294
id
- 96053
+ 459294
nodeName
- 96053
+ 459294
@@ -8008,7 +8068,7 @@
1
2
- 96053
+ 459294
@@ -8024,7 +8084,7 @@
1
2
- 96053
+ 459294
@@ -8034,15 +8094,15 @@
primitives
- 5690
+ 26329
id
- 5690
+ 26329
nodeName
- 5690
+ 26329
@@ -8056,7 +8116,7 @@
1
2
- 5690
+ 26329
@@ -8072,7 +8132,7 @@
1
2
- 5690
+ 26329
@@ -8082,15 +8142,15 @@
modifiers
- 6259
+ 32179
id
- 6259
+ 32179
nodeName
- 6259
+ 32179
@@ -8104,7 +8164,7 @@
1
2
- 6259
+ 32179
@@ -8120,7 +8180,7 @@
1
2
- 6259
+ 32179
@@ -8130,34 +8190,34 @@
error_type
- 22
+ 2925
id
- 22
+ 2925
classes_or_interfaces
- 22273131
+ 22649681
id
- 22273131
+ 22649681
nodeName
- 5754222
+ 5851507
parentid
- 734
+ 746
sourceid
- 26258
+ 26702
@@ -8171,7 +8231,7 @@
1
2
- 22273131
+ 22649681
@@ -8187,7 +8247,7 @@
1
2
- 22273131
+ 22649681
@@ -8203,7 +8263,7 @@
1
2
- 22273131
+ 22649681
@@ -8219,27 +8279,27 @@
1
2
- 3703195
+ 3765807
2
3
- 866201
+ 880844
3
5
- 424184
+ 431356
5
12
- 451316
+ 458946
12
9655
- 309324
+ 314553
@@ -8255,12 +8315,12 @@
1
2
- 5753464
+ 5850737
2
29
- 757
+ 769
@@ -8276,12 +8336,12 @@
1
2
- 5753210
+ 5850478
2
3091
- 1011
+ 1028
@@ -8297,62 +8357,62 @@
1
2
- 132
+ 135
2
3
- 40
+ 41
3
5
- 63
+ 64
5
7
- 46
+ 47
7
8
- 57
+ 58
8
11
- 63
+ 64
11
23
- 57
+ 58
23
41
- 63
+ 64
42
158
- 57
+ 58
162
1034
- 57
+ 58
1315
34752
- 57
+ 58
36100
2058753
- 34
+ 35
@@ -8368,32 +8428,32 @@
1
2
- 132
+ 135
2
3
- 40
+ 41
3
4
- 28
+ 29
4
5
- 40
+ 41
5
6
- 34
+ 35
6
7
- 40
+ 41
7
@@ -8403,32 +8463,32 @@
9
15
- 57
+ 58
15
24
- 63
+ 64
24
56
- 57
+ 58
57
178
- 57
+ 58
186
3066
- 57
+ 58
3515
65688
- 57
+ 58
298524
@@ -8449,57 +8509,57 @@
1
2
- 150
+ 152
2
3
- 80
+ 82
3
4
- 34
+ 35
4
5
- 63
+ 64
5
7
- 40
+ 41
7
9
- 63
+ 64
9
11
- 63
+ 64
12
15
- 46
+ 47
16
23
- 57
+ 58
25
41
- 57
+ 58
47
113
- 57
+ 58
113
@@ -8520,17 +8580,17 @@
1
2
- 23281
+ 23675
2
15
- 1994
+ 2027
15
448199
- 982
+ 999
@@ -8546,17 +8606,17 @@
1
2
- 23281
+ 23675
2
10
- 2005
+ 2039
10
100263
- 971
+ 987
@@ -8572,7 +8632,7 @@
1
2
- 26258
+ 26702
@@ -8582,26 +8642,26 @@
file_class
- 17711
+ 18779
id
- 17711
+ 18779
class_object
- 22283
+ 23013
id
- 22283
+ 23013
instance
- 22283
+ 23013
@@ -8615,7 +8675,7 @@
1
2
- 22283
+ 23013
@@ -8631,7 +8691,7 @@
1
2
- 22283
+ 23013
@@ -8641,19 +8701,19 @@
type_companion_object
- 41945
+ 42587
id
- 41945
+ 42587
instance
- 41945
+ 42587
companion_object
- 41945
+ 42587
@@ -8667,7 +8727,7 @@
1
2
- 41945
+ 42587
@@ -8683,7 +8743,7 @@
1
2
- 41945
+ 42587
@@ -8699,7 +8759,7 @@
1
2
- 41945
+ 42587
@@ -8715,7 +8775,7 @@
1
2
- 41945
+ 42587
@@ -8731,7 +8791,7 @@
1
2
- 41945
+ 42587
@@ -8747,7 +8807,7 @@
1
2
- 41945
+ 42587
@@ -8757,15 +8817,15 @@
kt_nullable_types
- 262
+ 264
id
- 262
+ 264
classid
- 262
+ 264
@@ -8779,7 +8839,7 @@
1
2
- 262
+ 264
@@ -8795,7 +8855,7 @@
1
2
- 262
+ 264
@@ -8805,15 +8865,15 @@
kt_notnull_types
- 156265
+ 161049
id
- 156265
+ 161049
classid
- 156265
+ 161049
@@ -8827,7 +8887,7 @@
1
2
- 156265
+ 161049
@@ -8843,7 +8903,7 @@
1
2
- 156265
+ 161049
@@ -8853,19 +8913,19 @@
kt_type_alias
- 707
+ 625
id
- 707
+ 625
name
- 583
+ 614
kttypeid
- 12
+ 11
@@ -8879,7 +8939,7 @@
1
2
- 707
+ 625
@@ -8895,7 +8955,7 @@
1
2
- 707
+ 625
@@ -8911,12 +8971,12 @@
1
2
- 459
+ 602
2
3
- 124
+ 11
@@ -8932,7 +8992,7 @@
1
2
- 583
+ 614
@@ -8946,9 +9006,9 @@
12
- 57
- 58
- 12
+ 55
+ 56
+ 11
@@ -8962,9 +9022,9 @@
12
- 47
- 48
- 12
+ 54
+ 55
+ 11
@@ -8974,48 +9034,37 @@
isInterface
- 21473562
+ 21836595
id
- 21473562
+ 21836595
isRecord
- 417
+ 11019
id
- 417
-
-
-
-
-
- isCanonicalConstr
- 417
-
-
- constructorid
- 417
+ 11019
fielddecls
- 210035
+ 204459
id
- 210035
+ 204459
parentid
- 24609
+ 16879
@@ -9029,7 +9078,7 @@
1
2
- 210035
+ 204459
@@ -9044,53 +9093,53 @@
1
- 2
- 6180
-
-
- 2
3
- 2975
+ 227
3
4
- 2769
+ 3275
4
6
- 1694
+ 272
6
7
- 2563
+ 3867
7
- 9
- 938
+ 8
+ 90
9
- 12
- 1922
+ 10
+ 2411
12
- 15
- 1877
+ 13
+ 2684
15
- 24
- 1854
+ 16
+ 1273
- 24
+ 17
+ 25
+ 1501
+
+
+ 27
145
- 1831
+ 1273
@@ -9100,19 +9149,19 @@
fieldDeclaredIn
- 210035
+ 204459
fieldId
- 135178
+ 69063
fieldDeclId
- 210035
+ 204459
pos
- 22
+ 45
@@ -9125,18 +9174,13 @@
1
- 2
- 94498
-
-
- 2
3
- 6501
+ 2183
3
4
- 34177
+ 66879
@@ -9152,7 +9196,7 @@
1
2
- 135178
+ 69063
@@ -9168,7 +9212,7 @@
1
2
- 210035
+ 204459
@@ -9184,7 +9228,7 @@
1
2
- 210035
+ 204459
@@ -9198,9 +9242,9 @@
12
- 5905
- 5906
- 22
+ 1518
+ 1519
+ 45
@@ -9214,9 +9258,9 @@
12
- 9175
- 9176
- 22
+ 4494
+ 4495
+ 45
@@ -9226,23 +9270,23 @@
fields
- 2886451
+ 9378976
id
- 2886451
+ 9378976
nodeName
- 2508459
+ 7831415
typeid
- 182623
+ 848379
parentid
- 249278
+ 1515380
@@ -9256,7 +9300,7 @@
1
2
- 2886451
+ 9378976
@@ -9272,7 +9316,7 @@
1
2
- 2886451
+ 9378976
@@ -9288,7 +9332,7 @@
1
2
- 2886451
+ 9378976
@@ -9304,12 +9348,12 @@
1
2
- 2356342
+ 7430629
2
- 302
- 152116
+ 211
+ 400785
@@ -9325,12 +9369,12 @@
1
2
- 2425714
+ 7609082
2
- 183
- 82744
+ 57
+ 222333
@@ -9346,12 +9390,12 @@
1
2
- 2356342
+ 7430629
2
- 302
- 152116
+ 211
+ 400785
@@ -9367,237 +9411,232 @@
1
2
- 124952
+ 517803
2
3
- 21104
+ 87763
3
4
- 10447
-
-
- 4
- 8
- 14835
-
-
- 8
- 9650
- 11283
-
-
-
-
-
-
- typeid
- nodeName
-
-
- 12
-
-
- 1
- 2
- 130385
-
-
- 2
- 3
- 17969
-
-
- 3
- 5
- 16716
-
-
- 5
- 20
- 13790
-
-
- 22
- 8913
- 3761
-
-
-
-
-
-
- typeid
- parentid
-
-
- 12
-
-
- 1
- 2
- 154205
-
-
- 2
- 3
- 18596
-
-
- 3
- 679
- 9820
-
-
-
-
-
-
- parentid
- id
-
-
- 12
-
-
- 1
- 2
- 115132
-
-
- 2
- 3
- 25074
-
-
- 3
- 4
- 20477
-
-
- 4
- 5
- 15253
-
-
- 5
- 6
- 12328
-
-
- 6
- 8
- 18387
-
-
- 8
- 14
- 19641
-
-
- 14
- 93
- 18805
-
-
- 95
- 1772
- 4179
-
-
-
-
-
-
- parentid
- nodeName
-
-
- 12
-
-
- 1
- 2
- 115132
-
-
- 2
- 3
- 25074
-
-
- 3
- 4
- 20477
-
-
- 4
- 5
- 15253
-
-
- 5
- 6
- 12328
-
-
- 6
- 8
- 18387
-
-
- 8
- 14
- 19641
-
-
- 14
- 93
- 18805
-
-
- 95
- 1772
- 4179
-
-
-
-
-
-
- parentid
- typeid
-
-
- 12
-
-
- 1
- 2
- 165280
-
-
- 2
- 3
- 39909
-
-
- 3
- 4
- 20895
+ 87763
4
7
- 18805
+ 73136
7
- 27
- 4387
+ 41
+ 64359
+
+
+ 43
+ 1685
+ 17552
+
+
+
+
+
+
+ typeid
+ nodeName
+
+
+ 12
+
+
+ 1
+ 2
+ 523654
+
+
+ 2
+ 3
+ 87763
+
+
+ 3
+ 4
+ 87763
+
+
+ 4
+ 7
+ 67285
+
+
+ 7
+ 40
+ 64359
+
+
+ 41
+ 1407
+ 17552
+
+
+
+
+
+
+ typeid
+ parentid
+
+
+ 12
+
+
+ 1
+ 2
+ 728435
+
+
+ 2
+ 4
+ 76061
+
+
+ 4
+ 345
+ 43881
+
+
+
+
+
+
+ parentid
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 798646
+
+
+ 2
+ 3
+ 131645
+
+
+ 3
+ 4
+ 143346
+
+
+ 4
+ 5
+ 76061
+
+
+ 5
+ 7
+ 108241
+
+
+ 7
+ 12
+ 117017
+
+
+ 12
+ 68
+ 114092
+
+
+ 68
+ 258
+ 26329
+
+
+
+
+
+
+ parentid
+ nodeName
+
+
+ 12
+
+
+ 1
+ 2
+ 798646
+
+
+ 2
+ 3
+ 131645
+
+
+ 3
+ 4
+ 143346
+
+
+ 4
+ 5
+ 76061
+
+
+ 5
+ 7
+ 108241
+
+
+ 7
+ 12
+ 117017
+
+
+ 12
+ 68
+ 114092
+
+
+ 68
+ 258
+ 26329
+
+
+
+
+
+
+ parentid
+ typeid
+
+
+ 12
+
+
+ 1
+ 2
+ 1102892
+
+
+ 2
+ 3
+ 172601
+
+
+ 3
+ 4
+ 134570
+
+
+ 4
+ 16
+ 105316
@@ -9607,15 +9646,15 @@
fieldsKotlinType
- 2667261
+ 2709722
id
- 2667261
+ 2709722
kttypeid
- 208
+ 212
@@ -9629,7 +9668,7 @@
1
2
- 2667261
+ 2709722
@@ -9643,9 +9682,9 @@
12
- 12765
- 12766
- 208
+ 12767
+ 12768
+ 212
@@ -9655,31 +9694,31 @@
constrs
- 1103682
+ 3016133
id
- 1103682
+ 3016133
nodeName
- 597980
+ 1512455
signature
- 938261
+ 2919593
typeid
- 524
+ 2925
parentid
- 777558
+ 1594367
sourceid
- 788044
+ 2688483
@@ -9693,7 +9732,7 @@
1
2
- 1103682
+ 3016133
@@ -9709,7 +9748,7 @@
1
2
- 1103682
+ 3016133
@@ -9725,7 +9764,7 @@
1
2
- 1103682
+ 3016133
@@ -9741,7 +9780,7 @@
1
2
- 1103682
+ 3016133
@@ -9757,7 +9796,7 @@
1
2
- 1103682
+ 3016133
@@ -9773,58 +9812,63 @@
1
2
- 363874
+ 863006
2
3
- 145759
+ 348127
3
4
- 38274
+ 93614
4
- 12
- 45615
-
-
- 12
- 36
- 4456
-
-
-
-
-
-
- nodeName
- signature
-
-
- 12
-
-
- 1
- 2
- 412373
-
-
- 2
- 3
- 116397
-
-
- 3
5
- 49285
+ 111166
5
19
- 19923
+ 96539
+
+
+
+
+
+
+ nodeName
+ signature
+
+
+ 12
+
+
+ 1
+ 2
+ 880558
+
+
+ 2
+ 3
+ 345202
+
+
+ 3
+ 4
+ 90688
+
+
+ 4
+ 6
+ 137495
+
+
+ 6
+ 19
+ 58508
@@ -9840,7 +9884,7 @@
1
2
- 597980
+ 1512455
@@ -9856,17 +9900,12 @@
1
2
- 520120
+ 1468573
2
- 3
- 54528
-
-
- 3
- 36
- 23332
+ 7
+ 43881
@@ -9882,22 +9921,27 @@
1
2
- 379603
+ 877633
2
3
- 145497
+ 345202
3
- 5
- 51120
+ 4
+ 93614
- 5
- 32
- 21759
+ 4
+ 6
+ 134570
+
+
+ 6
+ 19
+ 61434
@@ -9913,12 +9957,12 @@
1
2
- 869575
+ 2866935
2
- 36
- 68685
+ 7
+ 52658
@@ -9934,7 +9978,7 @@
1
2
- 938261
+ 2919593
@@ -9950,7 +9994,7 @@
1
2
- 938261
+ 2919593
@@ -9966,12 +10010,12 @@
1
2
- 869575
+ 2866935
2
- 36
- 68685
+ 7
+ 52658
@@ -9987,12 +10031,12 @@
1
2
- 891597
+ 2887414
2
- 23
- 46664
+ 4
+ 32179
@@ -10006,14 +10050,9 @@
12
- 22
- 23
- 262
-
-
- 4188
- 4189
- 262
+ 1031
+ 1032
+ 2925
@@ -10027,14 +10066,9 @@
12
- 1
- 2
- 262
-
-
- 2280
- 2281
- 262
+ 517
+ 518
+ 2925
@@ -10048,14 +10082,9 @@
12
- 1
- 2
- 262
-
-
- 3578
- 3579
- 262
+ 998
+ 999
+ 2925
@@ -10069,14 +10098,9 @@
12
- 22
- 23
- 262
-
-
- 2944
- 2945
- 262
+ 545
+ 546
+ 2925
@@ -10090,14 +10114,9 @@
12
- 22
- 23
- 262
-
-
- 2984
- 2985
- 262
+ 919
+ 920
+ 2925
@@ -10113,22 +10132,27 @@
1
2
- 588281
+ 947844
2
3
- 120068
+ 359829
3
+ 4
+ 87763
+
+
+ 4
6
- 61869
+ 137495
6
19
- 7340
+ 61434
@@ -10144,7 +10168,7 @@
1
2
- 777558
+ 1594367
@@ -10160,22 +10184,27 @@
1
2
- 588281
+ 947844
2
3
- 120068
+ 359829
3
+ 4
+ 87763
+
+
+ 4
6
- 61869
+ 137495
6
19
- 7340
+ 61434
@@ -10191,7 +10220,7 @@
1
2
- 777558
+ 1594367
@@ -10207,22 +10236,27 @@
1
2
- 588281
+ 947844
2
3
- 120068
+ 359829
3
+ 4
+ 87763
+
+
+ 4
6
- 61869
+ 137495
6
19
- 7340
+ 61434
@@ -10238,12 +10272,12 @@
1
2
- 737710
+ 2589018
2
- 219
- 50334
+ 53
+ 99465
@@ -10259,12 +10293,12 @@
1
2
- 737710
+ 2589018
2
- 178
- 50334
+ 49
+ 99465
@@ -10280,12 +10314,12 @@
1
2
- 737710
+ 2589018
2
- 178
- 50334
+ 49
+ 99465
@@ -10301,7 +10335,7 @@
1
2
- 788044
+ 2688483
@@ -10317,12 +10351,12 @@
1
2
- 737710
+ 2589018
2
- 219
- 50334
+ 53
+ 99465
@@ -10332,15 +10366,15 @@
constrsKotlinType
- 1103682
+ 1126860
id
- 1103682
+ 1126860
kttypeid
- 262
+ 264
@@ -10354,7 +10388,7 @@
1
2
- 1103682
+ 1126860
@@ -10368,9 +10402,9 @@
12
- 4210
- 4211
- 262
+ 4260
+ 4261
+ 264
@@ -10380,31 +10414,31 @@
methods
- 15113893
+ 38724113
id
- 15113893
+ 38724113
nodeName
- 3165025
+ 15305927
signature
- 4608463
+ 20940334
typeid
- 1843228
+ 3867438
parentid
- 1782931
+ 3607073
sourceid
- 9250220
+ 33645541
@@ -10418,7 +10452,7 @@
1
2
- 15113893
+ 38724113
@@ -10434,7 +10468,7 @@
1
2
- 15113893
+ 38724113
@@ -10450,7 +10484,7 @@
1
2
- 15113893
+ 38724113
@@ -10466,7 +10500,7 @@
1
2
- 15113893
+ 38724113
@@ -10482,7 +10516,7 @@
1
2
- 15113893
+ 38724113
@@ -10498,32 +10532,22 @@
1
2
- 1845587
+ 10323894
2
3
- 561540
+ 2553913
3
- 4
- 218114
+ 5
+ 1366182
- 4
- 7
- 277624
-
-
- 7
- 61
- 238038
-
-
- 61
- 1769
- 24118
+ 5
+ 297
+ 1061936
@@ -10539,17 +10563,17 @@
1
2
- 2647264
+ 12842703
2
3
- 306986
+ 1647025
3
- 308
- 210774
+ 100
+ 816199
@@ -10565,22 +10589,17 @@
1
2
- 2651983
+ 13772994
2
- 3
- 257176
+ 5
+ 1164327
- 3
- 25
- 238300
-
-
- 25
- 752
- 17564
+ 5
+ 217
+ 368606
@@ -10596,27 +10615,22 @@
1
2
- 1943110
+ 11298068
2
3
- 536111
+ 1962973
3
- 4
- 207628
+ 5
+ 1187730
- 4
- 7
- 249311
-
-
- 7
- 1120
- 228863
+ 5
+ 297
+ 857155
@@ -10632,27 +10646,22 @@
1
2
- 1905621
+ 10458465
2
3
- 589067
+ 2603645
3
- 4
- 213396
+ 5
+ 1240388
- 4
- 7
- 254292
-
-
- 7
- 811
- 202647
+ 5
+ 267
+ 1003427
@@ -10668,27 +10677,22 @@
1
2
- 3143266
+ 16473180
2
3
- 751080
+ 2533435
3
- 5
- 358893
+ 9
+ 1623621
- 5
- 152
- 345785
-
-
- 155
- 1117
- 9437
+ 9
+ 297
+ 310097
@@ -10704,7 +10708,7 @@
1
2
- 4608463
+ 20940334
@@ -10720,17 +10724,12 @@
1
2
- 4140250
+ 19565375
2
- 5
- 362301
-
-
- 5
- 750
- 105911
+ 217
+ 1374959
@@ -10746,27 +10745,22 @@
1
2
- 3144052
+ 16473180
2
3
- 750818
+ 2533435
3
- 5
- 358369
+ 9
+ 1623621
- 5
- 152
- 345785
-
-
- 155
- 1117
- 9437
+ 9
+ 297
+ 310097
@@ -10782,22 +10776,22 @@
1
2
- 3232137
+ 16642855
2
3
- 780704
+ 2559764
3
- 6
- 397692
+ 10
+ 1573889
- 6
- 806
- 197928
+ 10
+ 267
+ 163824
@@ -10813,94 +10807,104 @@
1
2
- 915453
+ 2047811
2
3
- 377244
+ 769392
3
4
- 167256
+ 260364
4
+ 7
+ 315948
+
+
+ 7
+ 22
+ 295469
+
+
+ 22
+ 3081
+ 178452
+
+
+
+
+
+
+ typeid
+ nodeName
+
+
+ 12
+
+
+ 1
+ 2
+ 2375461
+
+
+ 2
+ 3
+ 740137
+
+
+ 3
6
- 153099
+ 342277
+
+
+ 6
+ 19
+ 292544
+
+
+ 19
+ 1469
+ 117017
+
+
+
+
+
+
+ typeid
+ signature
+
+
+ 12
+
+
+ 1
+ 2
+ 2299399
+
+
+ 2
+ 3
+ 743062
+
+
+ 3
+ 6
+ 351053
6
15
- 140254
+ 292544
15
- 10397
- 89919
-
-
-
-
-
-
- typeid
- nodeName
-
-
- 12
-
-
- 1
- 2
- 1203826
-
-
- 2
- 3
- 363612
-
-
- 3
- 6
- 160964
-
-
- 6
- 2934
- 114824
-
-
-
-
-
-
- typeid
- signature
-
-
- 12
-
-
- 1
- 2
- 1183115
-
-
- 2
- 3
- 361514
-
-
- 3
- 6
- 165945
-
-
- 6
- 4201
- 132651
+ 1842
+ 181377
@@ -10916,27 +10920,27 @@
1
2
- 1068028
+ 2381312
2
3
- 396119
+ 813273
3
4
- 153886
+ 257439
4
- 8
- 146283
+ 10
+ 304246
- 8
- 2901
- 78909
+ 10
+ 672
+ 111166
@@ -10952,32 +10956,32 @@
1
2
- 992265
+ 2062438
2
3
- 349717
+ 778168
3
4
- 151789
+ 257439
4
- 6
- 149167
+ 7
+ 304246
- 6
- 16
- 140254
+ 7
+ 23
+ 318873
- 16
- 6502
- 60034
+ 23
+ 2847
+ 146272
@@ -10993,235 +10997,230 @@
1
2
- 511993
+ 1372033
2
3
- 206055
+ 157974
3
4
- 160964
+ 318873
4
- 5
- 100930
-
-
- 5
- 7
- 139992
-
-
- 7
- 10
- 153099
-
-
- 10
- 13
- 159915
-
-
- 13
- 21
- 162013
-
-
- 21
- 40
- 140778
-
-
- 40
- 319
- 47188
-
-
-
-
-
-
- parentid
- nodeName
-
-
- 12
-
-
- 1
- 2
- 518547
-
-
- 2
- 3
- 206317
-
-
- 3
- 4
- 170140
-
-
- 4
- 5
- 108533
-
-
- 5
- 7
- 131865
-
-
- 7
- 10
- 163324
-
-
- 10
- 13
- 153886
-
-
- 13
- 18
- 116397
-
-
- 18
- 27
- 136846
-
-
- 27
- 290
- 77074
-
-
-
-
-
-
- parentid
- signature
-
-
- 12
-
-
- 1
- 2
- 511993
-
-
- 2
- 3
- 206055
-
-
- 3
- 4
- 160964
-
-
- 4
- 5
- 100930
-
-
- 5
- 7
- 139992
-
-
- 7
- 10
- 153099
-
-
- 10
- 13
- 159915
-
-
- 13
- 21
- 162013
-
-
- 21
- 40
- 140778
-
-
- 40
- 319
- 47188
-
-
-
-
-
-
- parentid
- typeid
-
-
- 12
-
-
- 1
- 2
- 611613
-
-
- 2
- 3
- 246690
-
-
- 3
- 4
- 198453
-
-
- 4
- 5
- 126621
-
-
- 5
6
- 102503
+ 277917
6
- 7
- 77074
+ 9
+ 266215
- 7
- 8
- 122951
-
-
- 8
+ 9
11
- 160178
+ 295469
11
- 35
- 133962
+ 18
+ 298395
- 37
- 78
- 2883
+ 18
+ 30
+ 277917
+
+
+ 30
+ 69
+ 272066
+
+
+ 69
+ 409
+ 70210
+
+
+
+
+
+
+ parentid
+ nodeName
+
+
+ 12
+
+
+ 1
+ 2
+ 1389586
+
+
+ 2
+ 3
+ 152123
+
+
+ 3
+ 4
+ 345202
+
+
+ 4
+ 6
+ 277917
+
+
+ 6
+ 9
+ 283768
+
+
+ 9
+ 11
+ 298395
+
+
+ 11
+ 18
+ 298395
+
+
+ 18
+ 29
+ 286693
+
+
+ 29
+ 291
+ 272066
+
+
+ 390
+ 391
+ 2925
+
+
+
+
+
+
+ parentid
+ signature
+
+
+ 12
+
+
+ 1
+ 2
+ 1372033
+
+
+ 2
+ 3
+ 157974
+
+
+ 3
+ 4
+ 318873
+
+
+ 4
+ 6
+ 277917
+
+
+ 6
+ 9
+ 266215
+
+
+ 9
+ 11
+ 295469
+
+
+ 11
+ 18
+ 298395
+
+
+ 18
+ 30
+ 277917
+
+
+ 30
+ 69
+ 272066
+
+
+ 69
+ 409
+ 70210
+
+
+
+
+
+
+ parentid
+ typeid
+
+
+ 12
+
+
+ 1
+ 2
+ 1494902
+
+
+ 2
+ 3
+ 295469
+
+
+ 3
+ 4
+ 380307
+
+
+ 4
+ 5
+ 213557
+
+
+ 5
+ 6
+ 213557
+
+
+ 6
+ 7
+ 304246
+
+
+ 7
+ 9
+ 248662
+
+
+ 9
+ 13
+ 301320
+
+
+ 13
+ 41
+ 155048
@@ -11237,52 +11236,52 @@
1
2
- 511993
+ 1372033
2
3
- 206055
+ 157974
3
4
- 160964
+ 318873
4
- 5
- 100930
+ 6
+ 277917
- 5
- 7
- 139992
+ 6
+ 9
+ 266215
- 7
- 10
- 153099
+ 9
+ 11
+ 295469
- 10
- 13
- 159915
+ 11
+ 18
+ 298395
- 13
- 21
- 162013
+ 18
+ 30
+ 277917
- 21
- 40
- 140778
+ 30
+ 69
+ 272066
- 40
- 319
- 47188
+ 69
+ 409
+ 70210
@@ -11298,17 +11297,12 @@
1
2
- 8524569
+ 32343718
2
- 50
- 695241
-
-
- 52
- 296
- 30410
+ 100
+ 1301822
@@ -11324,7 +11318,7 @@
1
2
- 9250220
+ 33645541
@@ -11340,12 +11334,12 @@
1
2
- 9204343
+ 33578256
2
- 294
- 45877
+ 99
+ 67285
@@ -11361,12 +11355,12 @@
1
2
- 8968401
+ 33156992
2
- 219
- 281819
+ 53
+ 488549
@@ -11382,17 +11376,12 @@
1
2
- 8524569
+ 32343718
2
- 50
- 695241
-
-
- 52
- 296
- 30410
+ 100
+ 1301822
@@ -11402,15 +11391,15 @@
methodsKotlinType
- 15113893
+ 15270811
id
- 15113893
+ 15270811
kttypeid
- 262
+ 264
@@ -11424,7 +11413,7 @@
1
2
- 15113893
+ 15270811
@@ -11438,9 +11427,9 @@
12
- 57652
- 57653
- 262
+ 57730
+ 57731
+ 264
@@ -11450,27 +11439,27 @@
params
- 16587479
+ 41491584
id
- 16587479
+ 41491584
typeid
- 1772707
+ 3662656
pos
- 5767
+ 58508
parentid
- 8942448
+ 24883834
sourceid
- 10111931
+ 37787971
@@ -11484,7 +11473,7 @@
1
2
- 16587479
+ 41491584
@@ -11500,7 +11489,7 @@
1
2
- 16587479
+ 41491584
@@ -11516,7 +11505,7 @@
1
2
- 16587479
+ 41491584
@@ -11532,7 +11521,7 @@
1
2
- 16587479
+ 41491584
@@ -11548,68 +11537,68 @@
1
2
- 935901
+ 1752341
2
3
- 269759
+ 547058
3
4
- 130816
+ 280842
4
- 6
- 158080
+ 5
+ 257439
- 6
- 12
- 138943
-
-
- 12
- 326
- 133438
-
-
- 343
- 6748
- 5767
-
-
-
-
-
-
- typeid
- pos
-
-
- 12
-
-
- 1
- 2
- 1442651
-
-
- 2
- 3
- 185345
-
-
- 3
+ 5
9
- 136321
+ 324724
9
- 17
- 8389
+ 18
+ 280842
+
+
+ 18
+ 3026
+ 219408
+
+
+
+
+
+
+ typeid
+ pos
+
+
+ 12
+
+
+ 1
+ 2
+ 2706036
+
+
+ 2
+ 3
+ 506101
+
+
+ 3
+ 5
+ 307171
+
+
+ 5
+ 15
+ 143346
@@ -11625,32 +11614,37 @@
1
2
- 968933
+ 1913240
2
3
- 262943
+ 494400
3
4
- 134486
+ 272066
4
- 6
- 149691
+ 5
+ 236961
- 6
- 13
- 137894
+ 5
+ 9
+ 283768
- 13
- 4336
- 118757
+ 9
+ 21
+ 280842
+
+
+ 21
+ 2094
+ 181377
@@ -11666,32 +11660,37 @@
1
2
- 998032
+ 1778670
2
3
- 248787
+ 582163
3
4
- 136846
+ 283768
4
6
- 153362
+ 324724
6
- 13
- 137894
+ 11
+ 310097
- 13
- 5757
- 97784
+ 11
+ 39
+ 274991
+
+
+ 40
+ 2921
+ 108241
@@ -11707,189 +11706,274 @@
1
2
- 524
-
-
- 50
- 53
- 524
-
-
- 104
- 106
- 524
-
-
- 157
- 165
- 524
-
-
- 214
- 231
- 524
-
-
- 291
- 315
- 524
-
-
- 485
- 606
- 524
-
-
- 804
- 1067
- 524
-
-
- 1445
- 2015
- 524
-
-
- 3087
- 5218
- 524
-
-
- 12756
- 34112
- 524
-
-
-
-
-
-
- pos
- typeid
-
-
- 12
-
-
- 1
- 2
- 524
+ 5850
2
- 5
- 524
+ 3
+ 5850
- 6
- 7
- 524
+ 3
+ 4
+ 5850
+
+
+ 5
+ 6
+ 2925
+
+
+ 7
+ 8
+ 2925
11
- 14
- 524
+ 12
+ 2925
15
- 20
- 524
+ 16
+ 2925
- 27
- 37
- 524
+ 22
+ 23
+ 2925
- 57
- 75
- 524
-
-
- 97
- 153
- 524
-
-
- 201
- 289
- 524
-
-
- 406
- 789
- 524
-
-
- 1997
- 5152
- 524
-
-
-
-
-
-
- pos
- parentid
-
-
- 12
-
-
- 1
- 2
- 524
+ 34
+ 35
+ 2925
50
- 53
- 524
+ 51
+ 2925
- 104
- 106
- 524
+ 78
+ 79
+ 2925
- 157
- 165
- 524
+ 128
+ 129
+ 2925
- 214
- 231
- 524
+ 215
+ 216
+ 2925
- 291
- 315
- 524
+ 567
+ 568
+ 2925
- 485
- 606
- 524
+ 1284
+ 1285
+ 2925
- 804
- 1067
- 524
+ 3249
+ 3250
+ 2925
- 1445
- 2015
- 524
+ 8506
+ 8507
+ 2925
+
+
+
+
+
+
+ pos
+ typeid
+
+
+ 12
+
+
+ 1
+ 2
+ 5850
- 3087
- 5218
- 524
+ 2
+ 3
+ 5850
- 12756
- 34112
- 524
+ 3
+ 4
+ 5850
+
+
+ 5
+ 6
+ 5850
+
+
+ 8
+ 9
+ 2925
+
+
+ 9
+ 10
+ 2925
+
+
+ 14
+ 15
+ 2925
+
+
+ 20
+ 21
+ 2925
+
+
+ 26
+ 27
+ 2925
+
+
+ 28
+ 29
+ 2925
+
+
+ 42
+ 43
+ 2925
+
+
+ 70
+ 71
+ 2925
+
+
+ 109
+ 110
+ 2925
+
+
+ 208
+ 209
+ 2925
+
+
+ 450
+ 451
+ 2925
+
+
+ 964
+ 965
+ 2925
+
+
+
+
+
+
+ pos
+ parentid
+
+
+ 12
+
+
+ 1
+ 2
+ 5850
+
+
+ 2
+ 3
+ 5850
+
+
+ 3
+ 4
+ 5850
+
+
+ 5
+ 6
+ 2925
+
+
+ 7
+ 8
+ 2925
+
+
+ 11
+ 12
+ 2925
+
+
+ 15
+ 16
+ 2925
+
+
+ 22
+ 23
+ 2925
+
+
+ 34
+ 35
+ 2925
+
+
+ 50
+ 51
+ 2925
+
+
+ 78
+ 79
+ 2925
+
+
+ 128
+ 129
+ 2925
+
+
+ 215
+ 216
+ 2925
+
+
+ 567
+ 568
+ 2925
+
+
+ 1284
+ 1285
+ 2925
+
+
+ 3249
+ 3250
+ 2925
+
+
+ 8506
+ 8507
+ 2925
@@ -11905,57 +11989,87 @@
1
2
- 524
+ 5850
2
- 5
- 524
+ 3
+ 5850
- 6
+ 3
+ 4
+ 5850
+
+
+ 5
+ 6
+ 2925
+
+
+ 7
8
- 524
+ 2925
11
- 15
- 524
+ 12
+ 2925
- 16
- 29
- 524
+ 15
+ 16
+ 2925
- 39
- 63
- 524
+ 22
+ 23
+ 2925
- 101
- 144
- 524
+ 34
+ 35
+ 2925
- 210
- 386
- 524
+ 50
+ 51
+ 2925
- 628
- 1069
- 524
+ 77
+ 78
+ 2925
- 1958
- 3765
- 524
+ 127
+ 128
+ 2925
- 8596
- 21529
- 524
+ 212
+ 213
+ 2925
+
+
+ 558
+ 559
+ 2925
+
+
+ 1247
+ 1248
+ 2925
+
+
+ 2999
+ 3000
+ 2925
+
+
+ 7541
+ 7542
+ 2925
@@ -11971,27 +12085,22 @@
1
2
- 5598369
+ 15379063
2
3
- 1976404
+ 5748499
3
4
- 558395
+ 2097543
4
- 10
- 682133
-
-
- 10
- 23
- 127146
+ 21
+ 1658727
@@ -12007,17 +12116,22 @@
1
2
- 6239868
+ 16993909
2
3
- 2032767
+ 5748499
3
- 23
- 669811
+ 5
+ 2003929
+
+
+ 5
+ 11
+ 137495
@@ -12033,27 +12147,22 @@
1
2
- 5598369
+ 15379063
2
3
- 1976404
+ 5748499
3
4
- 558395
+ 2097543
4
- 10
- 682133
-
-
- 10
- 23
- 127146
+ 21
+ 1658727
@@ -12069,27 +12178,22 @@
1
2
- 5598369
+ 15379063
2
3
- 1976404
+ 5748499
3
4
- 558395
+ 2097543
4
- 10
- 682133
-
-
- 10
- 23
- 127146
+ 21
+ 1658727
@@ -12105,12 +12209,12 @@
1
2
- 9415117
+ 36570986
2
- 296
- 696814
+ 100
+ 1216985
@@ -12126,12 +12230,12 @@
1
2
- 9877563
+ 37246764
2
- 296
- 234368
+ 100
+ 541207
@@ -12147,7 +12251,7 @@
1
2
- 10111931
+ 37787971
@@ -12163,12 +12267,12 @@
1
2
- 9415117
+ 36570986
2
- 296
- 696814
+ 100
+ 1216985
@@ -12178,15 +12282,15 @@
paramsKotlinType
- 16587479
+ 16773557
id
- 16587479
+ 16773557
kttypeid
- 262
+ 264
@@ -12200,7 +12304,7 @@
1
2
- 16587479
+ 16773557
@@ -12214,9 +12318,9 @@
12
- 63273
- 63274
- 262
+ 63411
+ 63412
+ 264
@@ -12226,15 +12330,15 @@
paramName
- 2140514
+ 3934150
id
- 2140514
+ 3934150
nodeName
- 319307
+ 41443
@@ -12248,7 +12352,7 @@
1
2
- 2140514
+ 3934150
@@ -12264,37 +12368,42 @@
1
2
- 136321
+ 12976
2
3
- 61869
+ 9556
3
4
- 34342
+ 3218
4
5
- 23332
+ 3118
5
- 8
- 24904
+ 7
+ 3721
- 8
- 19
- 24118
+ 7
+ 13
+ 3118
- 19
- 770
- 14418
+ 13
+ 42
+ 3118
+
+
+ 42
+ 19048
+ 2615
@@ -12304,30 +12413,30 @@
isVarargsParam
- 684318
+ 695853
param
- 684318
+ 695853
exceptions
- 1232644
+ 3735793
id
- 1232644
+ 3735793
typeid
- 36990
+ 187228
parentid
- 987367
+ 3273572
@@ -12341,7 +12450,7 @@
1
2
- 1232644
+ 3735793
@@ -12357,7 +12466,7 @@
1
2
- 1232644
+ 3735793
@@ -12373,47 +12482,52 @@
1
2
- 11950
+ 43881
2
3
- 3983
+ 23403
3
4
- 4552
+ 23403
4
- 7
- 2276
+ 5
+ 14627
- 7
+ 5
8
- 2845
+ 14627
- 9
- 13
- 3414
+ 8
+ 11
+ 14627
- 20
- 35
- 2845
+ 11
+ 23
+ 14627
- 41
- 93
- 2845
+ 23
+ 34
+ 14627
- 106
- 813
- 2276
+ 35
+ 65
+ 14627
+
+
+ 67
+ 556
+ 8776
@@ -12429,47 +12543,52 @@
1
2
- 11950
+ 43881
2
3
- 3983
+ 23403
3
4
- 4552
+ 23403
4
- 7
- 2276
+ 5
+ 14627
- 7
+ 5
8
- 2845
+ 14627
- 9
- 13
- 3414
+ 8
+ 11
+ 14627
- 20
- 35
- 2845
+ 11
+ 23
+ 14627
- 41
- 93
- 2845
+ 23
+ 34
+ 14627
- 106
- 813
- 2276
+ 35
+ 65
+ 14627
+
+
+ 67
+ 556
+ 8776
@@ -12485,17 +12604,17 @@
1
2
- 755179
+ 2913743
2
3
- 224220
+ 274991
3
6
- 7967
+ 84837
@@ -12511,17 +12630,17 @@
1
2
- 755179
+ 2913743
2
3
- 224220
+ 274991
3
6
- 7967
+ 84837
@@ -12531,41 +12650,41 @@
isAnnotType
- 35103
+ 61434
interfaceid
- 35103
+ 61434
isAnnotElem
- 49101
+ 58508
methodid
- 49101
+ 58508
annotValue
- 1421553
+ 3223840
parentid
- 1172586
+ 1184805
id2
- 1074
+ 58508
value
- 1421553
+ 3223840
@@ -12579,12 +12698,22 @@
1
2
- 1135381
+ 155048
2
- 18
- 37205
+ 3
+ 784019
+
+
+ 4
+ 5
+ 73136
+
+
+ 7
+ 8
+ 172601
@@ -12600,12 +12729,22 @@
1
2
- 1133350
+ 155048
2
- 20
- 39235
+ 3
+ 784019
+
+
+ 4
+ 5
+ 73136
+
+
+ 7
+ 8
+ 172601
@@ -12618,65 +12757,45 @@
12
-
- 1
- 2
- 198
-
2
3
- 95
+ 2925
3
4
- 88
+ 2925
- 5
- 8
- 88
+ 6
+ 7
+ 2925
- 8
- 16
- 88
+ 21
+ 22
+ 5850
- 20
- 25
- 88
+ 25
+ 26
+ 11701
- 34
- 59
- 66
+ 59
+ 60
+ 20478
- 86
- 102
- 80
+ 64
+ 65
+ 5850
- 121
- 185
- 51
-
-
- 203
- 684
- 80
-
-
- 1733
- 1734
- 125
-
-
- 1842
- 153327
- 22
+ 204
+ 205
+ 5850
@@ -12689,65 +12808,45 @@
12
-
- 1
- 2
- 198
-
2
3
- 88
+ 2925
3
4
- 88
+ 2925
- 4
- 8
- 95
+ 6
+ 7
+ 2925
- 8
- 16
- 88
+ 21
+ 22
+ 5850
- 20
- 25
- 88
+ 25
+ 26
+ 11701
- 34
- 59
- 66
+ 59
+ 60
+ 20478
- 86
- 102
- 80
+ 64
+ 65
+ 5850
- 127
- 185
- 51
-
-
- 203
- 684
- 80
-
-
- 1733
- 1734
- 88
-
-
- 1734
- 153327
- 58
+ 204
+ 205
+ 5850
@@ -12763,7 +12862,7 @@
1
2
- 1421553
+ 3223840
@@ -12779,7 +12878,7 @@
1
2
- 1421553
+ 3223840
@@ -12789,45 +12888,45 @@
isEnumType
- 56888
+ 149197
classid
- 56888
+ 149197
isEnumConst
- 435967
+ 1091190
fieldid
- 435967
+ 1091190
typeVars
- 864332
+ 1331077
id
- 864332
+ 1331077
nodeName
- 11797
+ 43881
pos
- 1048
+ 8776
parentid
- 612137
+ 1117519
@@ -12841,7 +12940,7 @@
1
2
- 864332
+ 1331077
@@ -12857,7 +12956,7 @@
1
2
- 864332
+ 1331077
@@ -12873,7 +12972,7 @@
1
2
- 864332
+ 1331077
@@ -12889,47 +12988,62 @@
1
2
- 2883
+ 11701
2
3
- 1572
+ 2925
- 3
- 4
- 1310
+ 5
+ 6
+ 2925
- 4
+ 6
7
- 1048
-
-
- 7
- 10
- 1048
+ 2925
10
- 28
- 1048
+ 11
+ 2925
- 36
- 70
- 1048
+ 19
+ 20
+ 2925
- 71
- 412
- 1048
+ 28
+ 29
+ 2925
- 605
- 724
- 786
+ 37
+ 38
+ 2925
+
+
+ 49
+ 50
+ 2925
+
+
+ 53
+ 54
+ 2925
+
+
+ 56
+ 57
+ 2925
+
+
+ 186
+ 187
+ 2925
@@ -12945,22 +13059,17 @@
1
2
- 7078
+ 23403
2
3
- 3145
+ 14627
3
4
- 1310
-
-
- 4
- 5
- 262
+ 5850
@@ -12976,47 +13085,62 @@
1
2
- 2883
+ 11701
2
3
- 1572
+ 2925
- 3
- 4
- 1310
+ 5
+ 6
+ 2925
- 4
+ 6
7
- 1048
-
-
- 7
- 10
- 1048
+ 2925
10
- 28
- 1048
+ 11
+ 2925
- 36
- 70
- 1048
+ 19
+ 20
+ 2925
- 71
- 412
- 1048
+ 28
+ 29
+ 2925
- 605
- 724
- 786
+ 37
+ 38
+ 2925
+
+
+ 49
+ 50
+ 2925
+
+
+ 53
+ 54
+ 2925
+
+
+ 56
+ 57
+ 2925
+
+
+ 186
+ 187
+ 2925
@@ -13032,22 +13156,17 @@
6
7
- 262
+ 2925
- 89
- 90
- 262
+ 67
+ 68
+ 2925
- 867
- 868
- 262
-
-
- 2335
- 2336
- 262
+ 382
+ 383
+ 2925
@@ -13061,24 +13180,19 @@
12
- 2
- 3
- 262
+ 4
+ 5
+ 2925
- 13
- 14
- 262
+ 8
+ 9
+ 2925
- 21
- 22
- 262
-
-
- 34
- 35
- 262
+ 12
+ 13
+ 2925
@@ -13094,22 +13208,17 @@
6
7
- 262
+ 2925
- 89
- 90
- 262
+ 67
+ 68
+ 2925
- 867
- 868
- 262
-
-
- 2335
- 2336
- 262
+ 382
+ 383
+ 2925
@@ -13125,17 +13234,17 @@
1
2
- 384846
+ 921515
2
3
- 203958
+ 178452
3
- 5
- 23332
+ 4
+ 17552
@@ -13151,17 +13260,17 @@
1
2
- 384846
+ 921515
2
3
- 203958
+ 178452
3
- 5
- 23332
+ 4
+ 17552
@@ -13177,17 +13286,17 @@
1
2
- 384846
+ 921515
2
3
- 203958
+ 178452
3
- 5
- 23332
+ 4
+ 17552
@@ -13197,19 +13306,19 @@
wildcards
- 458250
+ 590939
id
- 458250
+ 590939
nodeName
- 74976
+ 152123
kind
- 524
+ 5850
@@ -13223,7 +13332,7 @@
1
2
- 458250
+ 590939
@@ -13239,7 +13348,7 @@
1
2
- 458250
+ 590939
@@ -13255,22 +13364,32 @@
1
2
- 56363
+ 108241
2
3
- 7340
+ 5850
- 3
- 7
- 6029
+ 4
+ 9
+ 11701
- 7
- 170
- 5243
+ 11
+ 12
+ 5850
+
+
+ 12
+ 13
+ 8776
+
+
+ 13
+ 36
+ 11701
@@ -13286,7 +13405,7 @@
1
2
- 74976
+ 152123
@@ -13300,14 +13419,9 @@
12
- 795
- 796
- 262
-
-
- 953
- 954
- 262
+ 101
+ 102
+ 5850
@@ -13321,14 +13435,14 @@
12
- 94
- 95
- 262
+ 19
+ 20
+ 2925
- 192
- 193
- 262
+ 33
+ 34
+ 2925
@@ -13338,23 +13452,23 @@
typeBounds
- 581989
+ 827900
id
- 581989
+ 827900
typeid
- 392449
+ 547058
pos
- 262
+ 2925
parentid
- 581989
+ 827900
@@ -13368,7 +13482,7 @@
1
2
- 581989
+ 827900
@@ -13384,7 +13498,7 @@
1
2
- 581989
+ 827900
@@ -13400,7 +13514,7 @@
1
2
- 581989
+ 827900
@@ -13416,17 +13530,17 @@
1
2
- 288635
+ 392009
2
3
- 94900
+ 137495
3
- 52
- 8913
+ 30
+ 17552
@@ -13442,7 +13556,7 @@
1
2
- 392449
+ 547058
@@ -13458,17 +13572,17 @@
1
2
- 288635
+ 392009
2
3
- 94900
+ 137495
3
- 52
- 8913
+ 30
+ 17552
@@ -13482,9 +13596,9 @@
12
- 2220
- 2221
- 262
+ 283
+ 284
+ 2925
@@ -13498,9 +13612,9 @@
12
- 1497
- 1498
- 262
+ 187
+ 188
+ 2925
@@ -13514,9 +13628,9 @@
12
- 2220
- 2221
- 262
+ 283
+ 284
+ 2925
@@ -13532,7 +13646,7 @@
1
2
- 581989
+ 827900
@@ -13548,7 +13662,7 @@
1
2
- 581989
+ 827900
@@ -13564,7 +13678,7 @@
1
2
- 581989
+ 827900
@@ -13574,19 +13688,19 @@
typeArgs
- 53854237
+ 54764697
argumentid
- 1430551
+ 1454742
pos
- 57
+ 58
parentid
- 22244248
+ 22620310
@@ -13600,17 +13714,17 @@
1
2
- 865848
+ 880486
2
3
- 470615
+ 478577
3
11
- 94087
+ 95677
@@ -13626,57 +13740,57 @@
1
2
- 64071
+ 65160
2
3
- 433698
+ 441030
3
5
- 100595
+ 102296
5
6
- 35547
+ 36148
6
7
- 201249
+ 204651
7
11
- 39437
+ 40103
11
12
- 218178
+ 221867
12
15
- 111421
+ 113305
15
29
- 108138
+ 109966
29
341
- 107450
+ 109267
341
757580
- 10762
+ 10944
@@ -13730,13 +13844,13 @@
5
- 142042
- 142043
+ 142043
+ 142044
5
- 161580
- 161581
+ 161581
+ 161582
5
@@ -13791,13 +13905,13 @@
5
- 3800219
- 3800220
+ 3800220
+ 3800221
5
- 3848466
- 3848467
+ 3848467
+ 3848468
5
@@ -13814,22 +13928,22 @@
1
2
- 296162
+ 301169
2
3
- 13666793
+ 13897847
3
4
- 7750153
+ 7881175
4
11
- 531138
+ 540117
@@ -13845,22 +13959,22 @@
1
2
- 278869
+ 283583
2
3
- 13599976
+ 13829900
3
4
- 7768574
+ 7899907
4
11
- 596828
+ 606918
@@ -13870,37 +13984,37 @@
isParameterized
- 22244248
+ 22620310
memberid
- 22244248
+ 22620310
isRaw
- 100406
+ 251588
memberid
- 100406
+ 251588
isAnonymClass
- 157916
+ 162493
classid
- 157916
+ 162493
parent
- 157916
+ 162493
@@ -13914,7 +14028,7 @@
1
2
- 157916
+ 162493
@@ -13930,7 +14044,7 @@
1
2
- 157916
+ 162493
@@ -13940,15 +14054,15 @@
isLocalClassOrInterface
- 3532
+ 3483
typeid
- 3532
+ 3483
parent
- 3532
+ 3483
@@ -13962,7 +14076,7 @@
1
2
- 3532
+ 3483
@@ -13978,7 +14092,7 @@
1
2
- 3532
+ 3483
@@ -13986,28 +14100,39 @@
+
+ isImplicitClass
+ 4
+
+
+ classid
+ 4
+
+
+
+
isDefConstr
- 139376
+ 99109
constructorid
- 139376
+ 99109
lambdaKind
- 152268
+ 157421
exprId
- 152268
+ 157421
bodyKind
- 12
+ 11
@@ -14021,7 +14146,7 @@
1
2
- 152268
+ 157421
@@ -14035,9 +14160,9 @@
12
- 12267
- 12268
- 12
+ 13842
+ 13843
+ 11
@@ -14045,29 +14170,40 @@
+
+ isCanonicalConstr
+ 845
+
+
+ constructorid
+ 845
+
+
+
+
arrays
- 190588
+ 608492
id
- 190588
+ 608492
nodeName
- 115349
+ 465145
elementtypeid
- 189277
+ 599716
dimension
- 524
+ 5850
componenttypeid
- 190588
+ 608492
@@ -14081,7 +14217,7 @@
1
2
- 190588
+ 608492
@@ -14097,7 +14233,7 @@
1
2
- 190588
+ 608492
@@ -14113,7 +14249,7 @@
1
2
- 190588
+ 608492
@@ -14129,7 +14265,7 @@
1
2
- 190588
+ 608492
@@ -14145,17 +14281,12 @@
1
2
- 92279
+ 430040
2
- 3
- 19137
-
-
- 3
- 87
- 3932
+ 26
+ 35105
@@ -14171,17 +14302,12 @@
1
2
- 92279
+ 430040
2
- 3
- 19137
-
-
- 3
- 87
- 3932
+ 26
+ 35105
@@ -14197,7 +14323,7 @@
1
2
- 115349
+ 465145
@@ -14213,122 +14339,117 @@
1
2
- 92279
+ 430040
+
+
+ 2
+ 26
+ 35105
+
+
+
+
+
+
+ elementtypeid
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 590939
2
3
- 19137
+ 8776
+
+
+
+
+
+ elementtypeid
+ nodeName
+
+
+ 12
+
+
+ 1
+ 2
+ 590939
+
+
+ 2
+ 3
+ 8776
+
+
+
+
+
+
+ elementtypeid
+ dimension
+
+
+ 12
+
+
+ 1
+ 2
+ 590939
+
+
+ 2
+ 3
+ 8776
+
+
+
+
+
+
+ elementtypeid
+ componenttypeid
+
+
+ 12
+
+
+ 1
+ 2
+ 590939
+
+
+ 2
+ 3
+ 8776
+
+
+
+
+
+
+ dimension
+ id
+
+
+ 12
+
3
- 87
- 3932
-
-
-
-
-
-
- elementtypeid
- id
-
-
- 12
-
-
- 1
- 2
- 187966
+ 4
+ 2925
- 2
- 3
- 1310
-
-
-
-
-
-
- elementtypeid
- nodeName
-
-
- 12
-
-
- 1
- 2
- 187966
-
-
- 2
- 3
- 1310
-
-
-
-
-
-
- elementtypeid
- dimension
-
-
- 12
-
-
- 1
- 2
- 187966
-
-
- 2
- 3
- 1310
-
-
-
-
-
-
- elementtypeid
- componenttypeid
-
-
- 12
-
-
- 1
- 2
- 187966
-
-
- 2
- 3
- 1310
-
-
-
-
-
-
- dimension
- id
-
-
- 12
-
-
- 5
- 6
- 262
-
-
- 722
- 723
- 262
+ 205
+ 206
+ 2925
@@ -14342,14 +14463,14 @@
12
- 5
- 6
- 262
+ 3
+ 4
+ 2925
- 435
- 436
- 262
+ 156
+ 157
+ 2925
@@ -14363,14 +14484,14 @@
12
- 5
- 6
- 262
+ 3
+ 4
+ 2925
- 722
- 723
- 262
+ 205
+ 206
+ 2925
@@ -14384,14 +14505,14 @@
12
- 5
- 6
- 262
+ 3
+ 4
+ 2925
- 722
- 723
- 262
+ 205
+ 206
+ 2925
@@ -14407,7 +14528,7 @@
1
2
- 190588
+ 608492
@@ -14423,7 +14544,7 @@
1
2
- 190588
+ 608492
@@ -14439,7 +14560,7 @@
1
2
- 190588
+ 608492
@@ -14455,7 +14576,7 @@
1
2
- 190588
+ 608492
@@ -14465,15 +14586,15 @@
enclInReftype
- 564162
+ 1146774
child
- 564162
+ 1146774
parent
- 156245
+ 327649
@@ -14487,7 +14608,7 @@
1
2
- 564162
+ 1146774
@@ -14503,32 +14624,32 @@
1
2
- 92803
+ 166750
2
3
- 24642
+ 78987
3
4
- 11797
+ 20478
4
- 7
- 14418
+ 6
+ 26329
- 7
- 55
- 11797
+ 6
+ 23
+ 29254
- 55
- 265
- 786
+ 35
+ 67
+ 5850
@@ -14538,15 +14659,15 @@
extendsReftype
- 27274828
+ 27735936
id1
- 22257941
+ 22634234
id2
- 17181115
+ 17471575
@@ -14560,12 +14681,12 @@
1
2
- 20991189
+ 21346068
2
6
- 1266751
+ 1288166
@@ -14581,17 +14702,17 @@
1
2
- 13982285
+ 14218666
2
3
- 1947557
+ 1980482
3
- 937651
- 1251272
+ 937652
+ 1272426
@@ -14601,15 +14722,15 @@
implInterface
- 3052545
+ 4771400
id1
- 757262
+ 2278921
id2
- 2275463
+ 854229
@@ -14623,37 +14744,27 @@
1
2
- 210026
+ 769392
2
3
- 50055
+ 991725
3
4
- 67412
+ 55583
4
5
- 62038
+ 459294
5
6
- 19332
-
-
- 6
- 7
- 305928
-
-
- 7
- 10
- 42469
+ 2925
@@ -14669,12 +14780,22 @@
1
2
- 2200047
+ 687479
2
- 63705
- 75416
+ 3
+ 93614
+
+
+ 3
+ 134
+ 64359
+
+
+ 136
+ 509
+ 8776
@@ -14684,15 +14805,15 @@
permits
- 3703
+ 37356
id1
- 1075
+ 18659
id2
- 3703
+ 135
@@ -14706,27 +14827,17 @@
1
2
- 358
+ 12
2
3
- 358
+ 18634
3
- 4
- 119
-
-
- 9
10
- 119
-
-
- 10
- 11
- 119
+ 12
@@ -14742,7 +14853,12 @@
1
2
- 3703
+ 123
+
+
+ 3014
+ 3015
+ 12
@@ -14752,15 +14868,15 @@
hasModifier
- 48527772
+ 97268116
id1
- 24369293
+ 56847244
id2
- 63
+ 32179
@@ -14774,17 +14890,17 @@
1
2
- 356153
+ 24117367
2
3
- 23867801
+ 25038882
3
4
- 145338
+ 7690994
@@ -14798,59 +14914,54 @@
12
- 22
- 23
- 5
+ 9
+ 10
+ 5850
- 27
- 28
- 5
+ 17
+ 18
+ 2925
- 100
- 101
- 5
+ 201
+ 202
+ 2925
- 262
- 263
- 5
+ 212
+ 213
+ 2925
- 712
- 713
- 5
+ 470
+ 471
+ 2925
- 1374
- 1375
- 5
+ 756
+ 757
+ 2925
- 11041
- 11042
- 5
+ 4486
+ 4487
+ 2925
- 63640
- 63641
- 5
+ 4669
+ 4670
+ 2925
- 242567
- 242568
- 5
+ 4793
+ 4794
+ 2925
- 3864462
- 3864463
- 5
-
-
- 4211558
- 4211559
- 5
+ 17627
+ 17628
+ 2925
@@ -14860,23 +14971,23 @@
imports
- 356137
+ 525435
id
- 356137
+ 525435
holder
- 54477
+ 31483
name
- 8004
+ 45
kind
- 358
+ 45
@@ -14890,7 +15001,7 @@
1
2
- 356137
+ 525435
@@ -14906,7 +15017,7 @@
1
2
- 356137
+ 525435
@@ -14922,7 +15033,7 @@
1
2
- 356137
+ 525435
@@ -14937,121 +15048,81 @@
1
- 2
- 24730
-
-
- 2
3
- 8960
+ 454
3
4
- 5017
-
-
- 4
- 6
- 4420
+ 20564
6
- 10
- 4181
-
-
- 10
- 30
- 4181
-
-
- 31
- 113
- 2986
-
-
-
-
-
-
- holder
- name
-
-
- 12
-
-
- 1
- 2
- 51132
-
-
- 2
- 8
- 3345
-
-
-
-
-
-
- holder
- kind
-
-
- 12
-
-
- 1
- 2
- 51610
-
-
- 2
- 3
- 2867
-
-
-
-
-
-
- name
- id
-
-
- 12
-
-
- 1
- 2
- 3584
-
-
- 2
- 3
- 1792
-
-
- 3
- 4
- 836
-
-
- 4
- 9
- 716
+ 7
+ 3503
9
- 32
- 716
+ 13
+ 2911
- 45
- 2676
- 358
+ 13
+ 88
+ 2502
+
+
+ 90
+ 554
+ 1546
+
+
+
+
+
+
+ holder
+ name
+
+
+ 12
+
+
+ 1
+ 2
+ 31483
+
+
+
+
+
+
+ holder
+ kind
+
+
+ 12
+
+
+ 1
+ 2
+ 31483
+
+
+
+
+
+
+ name
+ id
+
+
+ 12
+
+
+ 11549
+ 11550
+ 45
@@ -15065,19 +15136,9 @@
12
- 1
- 2
- 7048
-
-
- 2
- 3
- 716
-
-
- 3
- 442
- 238
+ 692
+ 693
+ 45
@@ -15093,12 +15154,7 @@
1
2
- 7884
-
-
- 2
- 3
- 119
+ 45
@@ -15112,19 +15168,9 @@
12
- 13
- 14
- 119
-
-
- 306
- 307
- 119
-
-
- 2662
- 2663
- 119
+ 11549
+ 11550
+ 45
@@ -15138,19 +15184,9 @@
12
- 5
- 6
- 119
-
-
- 39
- 40
- 119
-
-
- 436
- 437
- 119
+ 692
+ 693
+ 45
@@ -15166,12 +15202,7 @@
1
2
- 238
-
-
- 66
- 67
- 119
+ 45
@@ -15181,27 +15212,27 @@
stmts
- 2441387
+ 2482660
id
- 2441387
+ 2482660
kind
- 9674
+ 9838
parent
- 1353860
+ 1376748
idx
- 15934
+ 16203
bodydecl
- 367630
+ 373845
@@ -15215,7 +15246,7 @@
1
2
- 2441387
+ 2482660
@@ -15231,7 +15262,7 @@
1
2
- 2441387
+ 2482660
@@ -15247,7 +15278,7 @@
1
2
- 2441387
+ 2482660
@@ -15263,7 +15294,7 @@
1
2
- 2441387
+ 2482660
@@ -15279,77 +15310,77 @@
1
2
- 1707
+ 1736
6
7
- 569
+ 578
7
8
- 569
+ 578
17
18
- 569
+ 578
20
21
- 569
+ 578
23
24
- 569
+ 578
33
34
- 569
+ 578
83
84
- 569
+ 578
91
92
- 569
+ 578
97
98
- 569
+ 578
265
266
- 569
+ 578
312
313
- 569
+ 578
560
561
- 569
+ 578
1243
1244
- 569
+ 578
1530
1531
- 569
+ 578
@@ -15365,72 +15396,72 @@
1
2
- 2276
+ 2314
7
8
- 569
+ 578
12
13
- 569
+ 578
17
18
- 569
+ 578
21
22
- 569
+ 578
33
34
- 569
+ 578
71
72
- 569
+ 578
81
82
- 569
+ 578
91
92
- 569
+ 578
246
247
- 569
+ 578
265
266
- 569
+ 578
271
272
- 569
+ 578
716
717
- 569
+ 578
1192
1193
- 569
+ 578
@@ -15446,57 +15477,57 @@
1
2
- 2276
+ 2314
3
4
- 569
+ 578
4
5
- 569
+ 578
6
7
- 1138
+ 1157
7
8
- 569
+ 578
8
9
- 1138
+ 1157
10
11
- 1138
+ 1157
13
14
- 569
+ 578
17
18
- 569
+ 578
21
22
- 569
+ 578
26
27
- 569
+ 578
@@ -15512,67 +15543,67 @@
1
2
- 2276
+ 2314
7
8
- 1138
+ 1157
17
18
- 569
+ 578
20
21
- 569
+ 578
21
22
- 569
+ 578
53
54
- 569
+ 578
54
55
- 569
+ 578
91
92
- 569
+ 578
119
120
- 569
+ 578
179
180
- 569
+ 578
211
212
- 569
+ 578
431
432
- 569
+ 578
646
647
- 569
+ 578
@@ -15588,22 +15619,22 @@
1
2
- 989074
+ 1005795
2
3
- 191782
+ 195024
3
6
- 107557
+ 109375
6
27
- 65445
+ 66551
@@ -15619,17 +15650,17 @@
1
2
- 1081267
+ 1099546
2
3
- 194058
+ 197339
3
6
- 78534
+ 79861
@@ -15645,22 +15676,22 @@
1
2
- 989074
+ 1005795
2
3
- 191782
+ 195024
3
6
- 107557
+ 109375
6
27
- 65445
+ 66551
@@ -15676,7 +15707,7 @@
1
2
- 1353860
+ 1376748
@@ -15692,67 +15723,67 @@
3
5
- 1138
+ 1157
5
6
- 1138
+ 1157
6
7
- 2276
+ 2314
10
15
- 1138
+ 1157
15
16
- 1138
+ 1157
17
20
- 1138
+ 1157
24
32
- 1138
+ 1157
40
43
- 1138
+ 1157
55
72
- 1138
+ 1157
83
94
- 1138
+ 1157
115
160
- 1138
+ 1157
204
386
- 1138
+ 1157
939
1919
- 1138
+ 1157
@@ -15768,47 +15799,47 @@
1
2
- 2276
+ 2314
2
3
- 3983
+ 4050
3
5
- 1138
+ 1157
5
6
- 2276
+ 2314
6
7
- 2276
+ 2314
7
9
- 1138
+ 1157
9
10
- 1138
+ 1157
12
14
- 1138
+ 1157
16
17
- 569
+ 578
@@ -15824,67 +15855,67 @@
3
5
- 1138
+ 1157
5
6
- 1138
+ 1157
6
7
- 2276
+ 2314
10
15
- 1138
+ 1157
15
16
- 1138
+ 1157
17
20
- 1138
+ 1157
24
32
- 1138
+ 1157
40
43
- 1138
+ 1157
55
72
- 1138
+ 1157
83
94
- 1138
+ 1157
115
160
- 1138
+ 1157
204
386
- 1138
+ 1157
939
1919
- 1138
+ 1157
@@ -15900,67 +15931,67 @@
3
5
- 1138
+ 1157
5
6
- 1138
+ 1157
6
7
- 2276
+ 2314
10
15
- 1138
+ 1157
15
16
- 1138
+ 1157
17
20
- 1138
+ 1157
24
32
- 1138
+ 1157
40
43
- 1138
+ 1157
54
56
- 1138
+ 1157
68
87
- 1138
+ 1157
104
138
- 1138
+ 1157
167
226
- 1138
+ 1157
337
647
- 1138
+ 1157
@@ -15976,47 +16007,47 @@
1
2
- 17641
+ 17939
2
3
- 157637
+ 160302
3
4
- 38128
+ 38773
4
5
- 33576
+ 34143
5
7
- 24470
+ 24884
7
10
- 29023
+ 29514
10
16
- 30730
+ 31250
16
34
- 27885
+ 28356
34
131
- 8536
+ 8680
@@ -16032,32 +16063,32 @@
1
2
- 17641
+ 17939
2
3
- 193489
+ 196760
3
4
- 77965
+ 79283
4
5
- 29592
+ 30092
5
7
- 33007
+ 33565
7
11
- 15934
+ 16203
@@ -16073,27 +16104,27 @@
1
2
- 17641
+ 17939
2
3
- 261780
+ 266206
4
5
- 33576
+ 34143
5
10
- 31299
+ 31828
10
88
- 23332
+ 23727
@@ -16109,37 +16140,37 @@
1
2
- 175279
+ 178242
2
3
- 63737
+ 64815
3
4
- 27885
+ 28356
4
5
- 18210
+ 18518
5
7
- 30161
+ 30671
7
11
- 29592
+ 30092
11
28
- 22763
+ 23148
@@ -16149,27 +16180,27 @@
exprs
- 7410663
+ 7535946
id
- 7410663
+ 7535946
kind
- 1618
+ 203
typeid
- 115976
+ 44680
parent
- 5075638
+ 4830350
idx
- 1426
+ 1604
@@ -16183,7 +16214,7 @@
1
2
- 7410663
+ 7535946
@@ -16199,7 +16230,7 @@
1
2
- 7410663
+ 7535946
@@ -16215,7 +16246,7 @@
1
2
- 7410663
+ 7535946
@@ -16231,7 +16262,7 @@
1
2
- 7410663
+ 7535946
@@ -16246,63 +16277,63 @@
1
- 3
- 137
+ 29
+ 18
- 3
- 9
- 137
+ 45
+ 159
+ 18
- 13
- 31
- 137
+ 159
+ 412
+ 18
- 31
- 76
- 137
+ 423
+ 903
+ 18
- 85
- 161
- 109
+ 1538
+ 2086
+ 18
- 186
- 307
- 137
+ 2170
+ 5511
+ 18
- 378
- 492
- 137
+ 6292
+ 8043
+ 18
- 494
- 659
- 137
+ 9355
+ 15242
+ 18
- 708
- 1063
- 137
+ 16690
+ 29935
+ 18
- 1114
- 2997
- 137
+ 32849
+ 68100
+ 18
- 3119
- 9319
- 137
+ 74170
+ 409104
+ 18
- 10083
- 75330
- 137
+ 748133
+ 748134
+ 3
@@ -16318,37 +16349,42 @@
1
2
- 768
+ 66
2
3
- 246
+ 18
3
- 6
- 137
+ 4
+ 18
- 18
- 48
- 137
+ 4
+ 5
+ 27
- 48
- 152
- 137
+ 5
+ 54
+ 18
- 246
- 1578
- 137
+ 99
+ 303
+ 18
- 2399
- 2509
- 54
+ 331
+ 3462
+ 18
+
+
+ 3755
+ 11926
+ 18
@@ -16363,63 +16399,63 @@
1
- 3
- 137
+ 29
+ 18
- 3
- 9
- 137
+ 45
+ 142
+ 15
- 13
- 31
- 137
+ 158
+ 383
+ 18
- 31
- 76
- 137
+ 408
+ 568
+ 18
- 81
- 177
- 137
+ 879
+ 1933
+ 18
- 183
- 357
- 137
+ 2085
+ 4466
+ 18
- 378
- 482
- 137
+ 4738
+ 6394
+ 18
- 572
- 708
- 137
+ 7532
+ 10892
+ 18
- 708
- 1060
- 137
+ 11806
+ 21746
+ 18
- 1102
- 3043
- 137
+ 28126
+ 48464
+ 18
- 5490
- 10002
- 137
+ 62759
+ 319892
+ 18
- 16929
- 60299
- 109
+ 405045
+ 586179
+ 6
@@ -16435,93 +16471,123 @@
1
2
- 246
+ 21
2
3
- 521
+ 24
3
4
- 246
+ 12
+
+
+ 4
+ 5
+ 30
+
+
+ 5
+ 7
+ 18
+
+
+ 7
+ 9
+ 15
+
+
+ 9
+ 13
+ 18
+
+
+ 13
+ 19
+ 12
+
+
+ 21
+ 57
+ 15
+
+
+ 64
+ 133
+ 18
+
+
+ 179
+ 514
+ 18
+
+
+
+
+
+
+ typeid
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 8996
+
+
+ 2
+ 3
+ 6180
+
+
+ 3
+ 4
+ 2069
4
6
- 137
+ 3734
6
8
- 137
+ 3068
8
11
- 137
+ 3597
- 12
- 27
- 137
+ 11
+ 16
+ 3685
- 46
- 49
- 54
-
-
-
-
-
-
- typeid
- id
-
-
- 12
-
-
- 1
- 2
- 48881
+ 16
+ 25
+ 3451
- 2
- 3
- 13002
+ 25
+ 45
+ 3466
- 3
- 6
- 10697
+ 45
+ 106
+ 3366
- 6
- 10
- 9628
-
-
- 10
- 17
- 9271
-
-
- 17
- 32
- 8722
-
-
- 32
- 89
- 8750
-
-
- 89
- 52561
- 7022
+ 106
+ 462822
+ 3062
@@ -16537,350 +16603,360 @@
1
2
- 57851
+ 12971
2
3
- 18543
+ 8456
3
4
- 8914
+ 5247
4
5
- 14455
+ 6247
5
6
- 9737
-
-
- 6
- 32
- 6473
-
-
-
-
-
-
- typeid
- parent
-
-
- 12
-
-
- 1
- 2
- 49045
-
-
- 2
- 3
- 13413
-
-
- 3
- 5
- 8668
-
-
- 5
- 8
- 8530
-
-
- 8
- 13
- 9244
-
-
- 13
- 24
- 8750
-
-
- 24
- 57
- 8805
-
-
- 57
- 851
- 8722
-
-
- 890
- 37212
- 795
-
-
-
-
-
-
- typeid
- idx
-
-
- 12
-
-
- 1
- 2
- 58673
-
-
- 2
- 3
- 18378
-
-
- 3
- 4
- 14730
-
-
- 4
- 5
- 19119
-
-
- 5
- 50
- 5074
-
-
-
-
-
-
- parent
- id
-
-
- 12
-
-
- 1
- 2
- 3222211
-
-
- 2
- 3
- 1522614
-
-
- 3
- 48
- 330812
-
-
-
-
-
-
- parent
- kind
-
-
- 12
-
-
- 1
- 2
- 3525291
-
-
- 2
- 3
- 1385461
-
-
- 3
- 8
- 164884
-
-
-
-
-
-
- parent
- typeid
-
-
- 12
-
-
- 1
- 2
- 4085559
-
-
- 2
- 3
- 832078
-
-
- 3
- 10
- 157999
-
-
-
-
-
-
- parent
- idx
-
-
- 12
-
-
- 1
- 2
- 3222211
-
-
- 2
- 3
- 1522614
-
-
- 3
- 48
- 330812
-
-
-
-
-
-
- idx
- id
-
-
- 12
-
-
- 1
- 2
- 82
-
-
- 2
- 3
- 466
-
-
- 3
- 4
- 82
-
-
- 4
- 5
- 54
-
-
- 5
- 6
- 82
-
-
- 6
- 8
- 109
-
-
- 8
- 19
- 109
-
-
- 24
- 37
- 109
-
-
- 75
- 343
- 109
-
-
- 536
- 6117
- 109
-
-
- 7863
- 137171
- 109
-
-
-
-
-
-
- idx
- kind
-
-
- 12
-
-
- 1
- 2
- 164
-
-
- 2
- 3
- 521
-
-
- 3
- 4
- 27
-
-
- 4
- 5
- 246
+ 5882
6
7
- 54
+ 2929
+
+
+ 7
+ 39
+ 2947
+
+
+
+
+
+
+ typeid
+ parent
+
+
+ 12
+
+
+ 1
+ 2
+ 9036
+
+
+ 2
+ 3
+ 6201
+
+
+ 3
+ 4
+ 2306
+
+
+ 4
+ 5
+ 2449
+
+
+ 5
+ 7
+ 3603
+
+
+ 7
+ 10
+ 3819
+
+
+ 10
+ 14
+ 3476
+
+
+ 14
+ 22
+ 3561
+
+
+ 22
+ 39
+ 3466
+
+
+ 39
+ 86
+ 3378
+
+
+ 86
+ 17855
+ 3351
+
+
+ 21746
+ 314116
+ 30
+
+
+
+
+
+
+ typeid
+ idx
+
+
+ 12
+
+
+ 1
+ 2
+ 12998
+
+
+ 2
+ 3
+ 8583
+
+
+ 3
+ 4
+ 7243
+
+
+ 4
+ 5
+ 12324
+
+
+ 5
+ 11
+ 3387
+
+
+ 11
+ 516
+ 142
+
+
+
+
+
+
+ parent
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 2682992
+
+
+ 2
+ 3
+ 1888447
+
+
+ 3
+ 513
+ 258910
+
+
+
+
+
+
+ parent
+ kind
+
+
+ 12
+
+
+ 1
+ 2
+ 3150223
+
+
+ 2
+ 3
+ 1565093
+
+
+ 3
+ 8
+ 115033
+
+
+
+
+
+
+ parent
+ typeid
+
+
+ 12
+
+
+ 1
+ 2
+ 3752681
+
+
+ 2
+ 3
+ 958080
+
+
+ 3
+ 17
+ 119588
+
+
+
+
+
+
+ parent
+ idx
+
+
+ 12
+
+
+ 1
+ 2
+ 2682992
+
+
+ 2
+ 3
+ 1888447
+
+
+ 3
+ 513
+ 258910
+
+
+
+
+
+
+ idx
+ id
+
+
+ 12
+
+
+ 1
+ 6
+ 12
+
+
+ 6
+ 7
+ 464
7
8
- 109
+ 425
8
- 13
- 109
+ 10
+ 130
- 13
- 26
- 109
+ 10
+ 12
+ 100
- 27
- 59
- 82
+ 12
+ 34
+ 133
+
+
+ 35
+ 75
+ 124
+
+
+ 85
+ 406
+ 121
+
+
+ 406
+ 1272806
+ 91
+
+
+
+
+
+
+ idx
+ kind
+
+
+ 12
+
+
+ 1
+ 2
+ 36
+
+
+ 3
+ 4
+ 893
+
+
+ 4
+ 5
+ 130
+
+
+ 5
+ 6
+ 148
+
+
+ 6
+ 8
+ 94
+
+
+ 8
+ 12
+ 121
+
+
+ 12
+ 15
+ 121
+
+
+ 16
+ 66
+ 57
@@ -16896,47 +16972,47 @@
1
2
- 82
-
-
- 2
- 3
- 521
+ 3
3
4
- 54
+ 893
4
5
- 246
+ 130
- 7
- 12
- 109
+ 5
+ 6
+ 48
- 12
- 20
- 109
+ 6
+ 7
+ 103
- 29
- 66
- 109
+ 8
+ 9
+ 136
- 80
- 1212
- 109
+ 9
+ 14
+ 142
- 1956
- 3022
- 82
+ 14
+ 167
+ 121
+
+
+ 275
+ 10578
+ 24
@@ -16951,58 +17027,48 @@
1
- 2
- 82
-
-
- 2
- 3
- 466
-
-
- 3
- 4
- 82
-
-
- 4
- 5
- 54
-
-
- 5
6
- 82
+ 12
6
+ 7
+ 464
+
+
+ 7
8
- 109
+ 425
8
- 19
- 109
+ 10
+ 130
- 24
- 37
- 109
+ 10
+ 12
+ 100
- 75
- 343
- 109
+ 12
+ 34
+ 133
- 536
- 6117
- 109
+ 35
+ 75
+ 124
- 7863
- 137171
- 109
+ 85
+ 406
+ 121
+
+
+ 406
+ 1272806
+ 91
@@ -17012,15 +17078,15 @@
exprsKotlinType
- 7410663
+ 7535946
id
- 7410663
+ 7535946
kttypeid
- 156277
+ 53074
@@ -17034,7 +17100,7 @@
1
2
- 7410663
+ 7535946
@@ -17050,12 +17116,12 @@
1
2
- 152777
+ 50880
2
- 584083
- 3500
+ 88650
+ 2193
@@ -17065,15 +17131,15 @@
callableEnclosingExpr
- 7298994
+ 7436130
id
- 7298994
+ 7436130
callable_id
- 19876
+ 20250
@@ -17087,7 +17153,7 @@
1
2
- 7298994
+ 7436130
@@ -17103,72 +17169,72 @@
1
2
- 711
+ 724
2
3
- 1691
+ 1722
3
5
- 1604
+ 1634
5
6
- 806
+ 821
6
7
- 1955
+ 1992
7
9
- 1374
+ 1400
9
13
- 1825
+ 1859
13
18
- 1574
+ 1603
18
26
- 1530
+ 1559
26
42
- 1530
+ 1559
42
73
- 1504
+ 1532
73
177
- 1495
+ 1524
179
- 1146
- 1491
+ 1147
+ 1519
1148
37742
- 780
+ 795
@@ -17178,15 +17244,15 @@
statementEnclosingExpr
- 7258638
+ 7395016
id
- 7258638
+ 7395016
statement_id
- 525773
+ 535644
@@ -17200,7 +17266,7 @@
1
2
- 7258638
+ 7395016
@@ -17216,62 +17282,62 @@
1
3
- 29125
+ 29668
3
5
- 47077
+ 47961
5
7
- 48473
+ 49379
7
8
- 36041
+ 36718
8
9
- 38144
+ 38861
9
10
- 50446
+ 51394
10
11
- 29212
+ 29756
11
12
- 127048
+ 129435
12
35
- 35322
+ 35994
35
40
- 44623
+ 45461
40
81
- 40221
+ 40977
82
210
- 34
+ 35
@@ -17281,15 +17347,15 @@
isParenthesized
- 94652
+ 95723
id
- 94652
+ 95723
parentheses
- 5
+ 6
@@ -17303,7 +17369,7 @@
1
2
- 94652
+ 95723
@@ -17317,14 +17383,14 @@
12
- 58
- 59
- 2
+ 42
+ 43
+ 3
- 34605
- 34606
- 2
+ 31462
+ 31463
+ 3
@@ -17334,37 +17400,37 @@
when_if
- 56072
+ 53119
id
- 56072
+ 53119
when_branch_else
- 70057
+ 68708
id
- 70057
+ 68708
callableBinding
- 1832514
+ 1987914
callerid
- 1832514
+ 1987914
callee
- 264310
+ 247374
@@ -17378,7 +17444,7 @@
1
2
- 1832514
+ 1987914
@@ -17394,32 +17460,32 @@
1
2
- 162994
+ 151872
2
3
- 33136
+ 29997
3
4
- 16271
+ 14932
4
7
- 22271
+ 20764
7
- 20
- 19902
+ 19
+ 19023
- 20
- 46115
- 9734
+ 19
+ 68828
+ 10784
@@ -17429,15 +17495,15 @@
memberRefBinding
- 23208
+ 23625
id
- 23208
+ 23625
callable
- 11197
+ 11257
@@ -17451,7 +17517,7 @@
1
2
- 23208
+ 23625
@@ -17467,22 +17533,22 @@
1
2
- 7862
+ 8000
2
3
- 2075
+ 1943
3
- 7
- 940
+ 6
+ 864
- 7
- 912
- 319
+ 6
+ 938
+ 448
@@ -17492,15 +17558,15 @@
propertyRefGetBinding
- 8437
+ 11923
id
- 8437
+ 11923
getter
- 5101
+ 7256
@@ -17514,7 +17580,7 @@
1
2
- 8437
+ 11923
@@ -17530,17 +17596,17 @@
1
2
- 1854
+ 2624
2
3
- 3163
+ 4611
3
6
- 82
+ 20
@@ -17550,15 +17616,15 @@
propertyRefFieldBinding
- 4
+ 6
id
- 4
+ 6
field
- 4
+ 6
@@ -17572,7 +17638,7 @@
1
2
- 4
+ 6
@@ -17588,7 +17654,7 @@
1
2
- 4
+ 6
@@ -17598,15 +17664,15 @@
propertyRefSetBinding
- 2226
+ 1697
id
- 2226
+ 1697
setter
- 1094
+ 848
@@ -17620,7 +17686,7 @@
1
2
- 2226
+ 1697
@@ -17633,20 +17699,10 @@
12
-
- 1
- 2
- 32
-
2
3
- 994
-
-
- 3
- 5
- 67
+ 848
@@ -17656,15 +17712,15 @@
variableBinding
- 2434277
+ 2475431
expr
- 2434277
+ 2475431
variable
- 572528
+ 582207
@@ -17678,7 +17734,7 @@
1
2
- 2434277
+ 2475431
@@ -17694,37 +17750,37 @@
1
2
- 205791
+ 209270
2
3
- 120945
+ 122990
3
4
- 85022
+ 86459
4
5
- 45967
+ 46744
5
7
- 40059
+ 40736
7
14
- 43072
+ 43800
14
464
- 31669
+ 32204
@@ -17734,23 +17790,23 @@
localvars
- 385272
+ 547241
id
- 385272
+ 547241
nodeName
- 139995
+ 35581
typeid
- 49510
+ 2048
parentid
- 385272
+ 547241
@@ -17764,7 +17820,7 @@
1
2
- 385272
+ 547241
@@ -17780,7 +17836,7 @@
1
2
- 385272
+ 547241
@@ -17796,7 +17852,7 @@
1
2
- 385272
+ 547241
@@ -17812,27 +17868,12 @@
1
2
- 83655
+ 33579
2
- 3
- 26178
-
-
- 3
- 5
- 10243
-
-
- 5
- 9
- 11950
-
-
- 9
- 42
- 7967
+ 4488
+ 2001
@@ -17848,17 +17889,12 @@
1
2
- 124630
+ 35253
2
- 3
- 13089
-
-
- 3
- 19
- 2276
+ 20
+ 328
@@ -17874,27 +17910,12 @@
1
2
- 83655
+ 33579
2
- 3
- 26178
-
-
- 3
- 5
- 10243
-
-
- 5
- 9
- 11950
-
-
- 9
- 42
- 7967
+ 4488
+ 2001
@@ -17910,47 +17931,57 @@
1
2
- 16503
+ 516
2
- 3
- 9105
+ 4
+ 187
- 3
- 5
- 2276
+ 4
+ 20
+ 156
- 5
- 6
- 5121
+ 21
+ 31
+ 109
- 6
- 7
- 2845
+ 35
+ 54
+ 156
- 7
- 8
- 2845
+ 57
+ 64
+ 156
- 8
- 12
- 4552
+ 72
+ 120
+ 187
- 14
- 30
- 3983
+ 128
+ 217
+ 156
- 51
- 76
- 2276
+ 223
+ 354
+ 156
+
+
+ 374
+ 712
+ 156
+
+
+ 794
+ 14075
+ 109
@@ -17966,32 +17997,27 @@
1
2
- 23332
+ 1532
2
3
- 9105
+ 187
3
4
- 6259
+ 140
4
- 6
- 3983
+ 353
+ 156
- 6
- 14
- 3983
-
-
- 14
- 35
- 2845
+ 501
+ 1266
+ 31
@@ -18007,47 +18033,57 @@
1
2
- 16503
+ 516
2
- 3
- 9105
+ 4
+ 187
- 3
- 5
- 2276
+ 4
+ 20
+ 156
- 5
- 6
- 5121
+ 21
+ 31
+ 109
- 6
- 7
- 2845
+ 35
+ 54
+ 156
- 7
- 8
- 2845
+ 57
+ 64
+ 156
- 8
- 12
- 4552
+ 72
+ 120
+ 187
- 14
- 30
- 3983
+ 128
+ 217
+ 156
- 51
- 76
- 2276
+ 223
+ 354
+ 156
+
+
+ 374
+ 712
+ 156
+
+
+ 794
+ 14075
+ 109
@@ -18063,7 +18099,7 @@
1
2
- 385272
+ 547241
@@ -18079,7 +18115,7 @@
1
2
- 385272
+ 547241
@@ -18095,7 +18131,7 @@
1
2
- 385272
+ 547241
@@ -18105,15 +18141,15 @@
localvarsKotlinType
- 149446
+ 152463
id
- 149446
+ 152463
kttypeid
- 2
+ 11
@@ -18127,7 +18163,7 @@
1
2
- 149446
+ 152463
@@ -18141,9 +18177,9 @@
12
- 59940
- 59941
- 2
+ 13406
+ 13407
+ 11
@@ -18153,19 +18189,19 @@
namestrings
- 4022471
+ 4087878
name
- 23402
+ 23364
value
- 22183
+ 22145
parent
- 4022471
+ 4087878
@@ -18179,7 +18215,7 @@
1
2
- 23402
+ 23364
@@ -18195,42 +18231,42 @@
1
2
- 9604
+ 9396
2
3
- 3811
+ 3830
3
- 5
- 2163
+ 4
+ 1126
- 5
- 9
- 1773
+ 4
+ 7
+ 2133
- 9
- 21
- 1795
+ 7
+ 15
+ 1868
- 21
- 69
- 1760
+ 15
+ 37
+ 1767
- 69
- 385
- 1756
+ 37
+ 163
+ 1758
- 390
+ 163
412517
- 737
+ 1484
@@ -18246,12 +18282,12 @@
1
2
- 21576
+ 21526
2
12
- 607
+ 618
@@ -18267,42 +18303,42 @@
1
2
- 9118
+ 8905
2
3
- 3594
+ 3609
3
5
- 1925
+ 1943
5
9
- 1669
+ 1700
9
21
- 1691
+ 1722
21
- 67
- 1678
-
-
- 67
- 318
+ 64
1665
- 320
+ 64
+ 292
+ 1661
+
+
+ 292
413340
- 841
+ 936
@@ -18318,7 +18354,7 @@
1
2
- 4022471
+ 4087878
@@ -18334,7 +18370,7 @@
1
2
- 4022471
+ 4087878
@@ -18344,15 +18380,15 @@
modules
- 6092
+ 131645
id
- 6092
+ 131645
name
- 6092
+ 131645
@@ -18366,7 +18402,7 @@
1
2
- 6092
+ 131645
@@ -18382,7 +18418,7 @@
1
2
- 6092
+ 131645
@@ -18403,15 +18439,15 @@
cumodule
- 188761
+ 1690907
fileId
- 188761
+ 1690907
moduleId
- 836
+ 2925
@@ -18425,7 +18461,7 @@
1
2
- 188761
+ 1690907
@@ -18439,34 +18475,9 @@
12
- 12
- 13
- 238
-
-
- 36
- 37
- 119
-
-
- 72
- 73
- 119
-
-
- 75
- 76
- 119
-
-
- 415
- 416
- 119
-
-
- 958
- 959
- 119
+ 578
+ 579
+ 2925
@@ -18476,15 +18487,15 @@
directives
- 37991
+ 450518
id
- 836
+ 2925
directive
- 37991
+ 450518
@@ -18496,39 +18507,9 @@
12
- 3
- 4
- 119
-
-
- 4
- 5
- 119
-
-
- 7
- 8
- 119
-
-
- 9
- 10
- 119
-
-
- 43
- 44
- 119
-
-
- 89
- 90
- 119
-
-
- 163
- 164
- 119
+ 154
+ 155
+ 2925
@@ -18544,7 +18525,7 @@
1
2
- 37991
+ 450518
@@ -18554,15 +18535,15 @@
requires
- 3190
+ 4159
id
- 3190
+ 4159
target
- 377
+ 221
@@ -18576,7 +18557,7 @@
1
2
- 3190
+ 4159
@@ -18592,52 +18573,47 @@
1
2
- 33
+ 59
2
3
- 40
+ 17
3
- 4
- 23
+ 16
+ 15
- 4
- 5
- 23
+ 16
+ 17
+ 35
- 5
- 6
- 33
+ 17
+ 22
+ 18
- 6
- 9
- 10
+ 22
+ 40
+ 18
- 9
- 10
- 142
+ 40
+ 41
+ 21
- 10
- 11
- 30
+ 41
+ 44
+ 18
- 11
- 29
- 30
-
-
- 56
- 73
- 6
+ 44
+ 125
+ 14
@@ -18647,37 +18623,37 @@
isTransitive
- 597
+ 1485
id
- 597
+ 1485
isStatic
- 33
+ 34
id
- 33
+ 34
exports
- 26163
+ 336426
id
- 26163
+ 336426
target
- 26163
+ 336426
@@ -18691,7 +18667,7 @@
1
2
- 26163
+ 336426
@@ -18707,7 +18683,7 @@
1
2
- 26163
+ 336426
@@ -18717,15 +18693,15 @@
exportsTo
- 22579
+ 456369
id
- 9676
+ 187228
target
- 5734
+ 128719
@@ -18739,27 +18715,32 @@
1
2
- 5495
+ 93614
2
3
- 1792
+ 43881
3
4
- 836
+ 20478
4
- 6
- 716
+ 5
+ 11701
- 6
- 19
- 836
+ 5
+ 14
+ 14627
+
+
+ 22
+ 23
+ 2925
@@ -18775,47 +18756,37 @@
1
2
- 1672
+ 38030
2
3
- 1194
+ 38030
3
4
- 716
+ 8776
4
5
- 358
+ 11701
5
- 6
- 477
-
-
- 6
7
- 238
+ 11701
- 8
- 10
- 477
+ 7
+ 11
+ 11701
- 10
+ 11
13
- 358
-
-
- 13
- 14
- 238
+ 8776
@@ -18825,15 +18796,15 @@
opens
- 716
+ 14627
id
- 716
+ 14627
target
- 716
+ 14627
@@ -18847,7 +18818,7 @@
1
2
- 716
+ 14627
@@ -18863,7 +18834,7 @@
1
2
- 716
+ 14627
@@ -18873,15 +18844,15 @@
opensTo
- 716
+ 14627
id
- 716
+ 14627
target
- 238
+ 2925
@@ -18895,7 +18866,7 @@
1
2
- 716
+ 14627
@@ -18908,15 +18879,10 @@
12
-
- 1
- 2
- 119
-
5
6
- 119
+ 2925
@@ -18926,15 +18892,15 @@
uses
- 7884
+ 96539
id
- 7884
+ 96539
serviceInterface
- 7884
+ 96539
@@ -18948,7 +18914,7 @@
1
2
- 7884
+ 96539
@@ -18964,7 +18930,7 @@
1
2
- 7884
+ 96539
@@ -18974,15 +18940,15 @@
provides
- 1792
+ 2925
id
- 1792
+ 2925
serviceInterface
- 1792
+ 2925
@@ -18996,7 +18962,7 @@
1
2
- 1792
+ 2925
@@ -19012,7 +18978,7 @@
1
2
- 1792
+ 2925
@@ -19022,15 +18988,15 @@
providesWith
- 4181
+ 4327
id
- 1792
+ 1923
serviceImpl
- 4181
+ 4327
@@ -19044,27 +19010,27 @@
1
2
- 955
+ 1081
2
3
- 119
+ 120
3
4
- 119
+ 120
4
5
- 477
+ 480
6
7
- 119
+ 120
@@ -19080,7 +19046,7 @@
1
2
- 4181
+ 4327
@@ -19089,49 +19055,60 @@
- javadoc
- 985091
+ isNullDefaultCase
+ 50
id
- 985091
+ 50
+
+
+
+
+
+ javadoc
+ 1001744
+
+
+ id
+ 1001744
isNormalComment
- 649898
+ 660885
commentid
- 649898
+ 660885
isEolComment
- 610062
+ 620375
commentid
- 610062
+ 620375
hasJavadoc
- 435352
+ 444514
documentableid
- 368199
+ 64761
javadocid
- 435352
+ 67363
@@ -19145,17 +19122,17 @@
1
2
- 320396
+ 57383
2
- 3
- 44957
+ 14
+ 4992
- 3
- 27
- 2845
+ 14
+ 258
+ 2385
@@ -19171,7 +19148,12 @@
1
2
- 435352
+ 66416
+
+
+ 2
+ 1326
+ 946
@@ -19181,23 +19163,23 @@
javadocTag
- 335808
+ 341478
id
- 335808
+ 341478
name
- 577
+ 587
parentid
- 114110
+ 116037
idx
- 4789
+ 4869
@@ -19211,7 +19193,7 @@
1
2
- 335808
+ 341478
@@ -19227,7 +19209,7 @@
1
2
- 335808
+ 341478
@@ -19243,7 +19225,7 @@
1
2
- 335808
+ 341478
@@ -19259,37 +19241,37 @@
34
35
- 82
+ 83
69
70
- 82
+ 83
203
204
- 82
+ 83
405
406
- 82
+ 83
608
609
- 82
+ 83
968
969
- 82
+ 83
1780
1781
- 82
+ 83
@@ -19305,37 +19287,37 @@
34
35
- 82
+ 83
69
70
- 82
+ 83
158
159
- 82
+ 83
404
405
- 82
+ 83
608
609
- 82
+ 83
668
669
- 82
+ 83
969
970
- 82
+ 83
@@ -19351,32 +19333,32 @@
17
18
- 82
+ 83
21
22
- 82
+ 83
31
32
- 82
+ 83
35
36
- 165
+ 167
38
39
- 82
+ 83
41
42
- 82
+ 83
@@ -19392,37 +19374,37 @@
1
2
- 33192
+ 33753
2
3
- 24935
+ 25356
3
4
- 18660
+ 18975
4
5
- 13128
+ 13350
5
6
- 9990
+ 10159
6
7
- 7678
+ 7808
7
11
- 6522
+ 6633
@@ -19438,27 +19420,27 @@
1
2
- 39963
+ 40638
2
3
- 38642
+ 39294
3
4
- 21137
+ 21494
4
5
- 12220
+ 12426
5
6
- 2146
+ 2183
@@ -19474,37 +19456,37 @@
1
2
- 33192
+ 33753
2
3
- 24935
+ 25356
3
4
- 18660
+ 18975
4
5
- 13128
+ 13350
5
6
- 9990
+ 10159
6
7
- 7678
+ 7808
7
11
- 6522
+ 6633
@@ -19520,57 +19502,57 @@
1
2
- 1238
+ 1259
2
3
- 247
+ 251
4
5
- 330
+ 335
5
6
- 412
+ 419
6
8
- 330
+ 335
8
17
- 412
+ 419
21
34
- 412
+ 419
38
72
- 412
+ 419
76
152
- 412
+ 419
199
504
- 412
+ 419
603
713
- 165
+ 167
@@ -19586,37 +19568,37 @@
1
2
- 1321
+ 1343
2
3
- 330
+ 335
3
4
- 743
+ 755
4
5
- 412
+ 419
5
6
- 412
+ 419
6
7
- 908
+ 923
7
8
- 660
+ 671
@@ -19632,57 +19614,57 @@
1
2
- 1238
+ 1259
2
3
- 247
+ 251
4
5
- 330
+ 335
5
6
- 412
+ 419
6
8
- 330
+ 335
8
17
- 412
+ 419
21
34
- 412
+ 419
38
72
- 412
+ 419
76
152
- 412
+ 419
199
504
- 412
+ 419
603
713
- 165
+ 167
@@ -19692,23 +19674,23 @@
javadocText
- 2502848
+ 2545161
id
- 2502848
+ 2545161
text
- 1370363
+ 1393530
parentid
- 1169475
+ 1189246
idx
- 42112
+ 42824
@@ -19722,7 +19704,7 @@
1
2
- 2502848
+ 2545161
@@ -19738,7 +19720,7 @@
1
2
- 2502848
+ 2545161
@@ -19754,7 +19736,7 @@
1
2
- 2502848
+ 2545161
@@ -19770,17 +19752,17 @@
1
2
- 1139314
+ 1158575
2
3
- 149670
+ 152200
3
147
- 81379
+ 82755
@@ -19796,17 +19778,17 @@
1
2
- 1140452
+ 1159732
2
3
- 149101
+ 151621
3
88
- 80810
+ 82176
@@ -19822,12 +19804,12 @@
1
2
- 1346462
+ 1369225
2
32
- 23901
+ 24305
@@ -19843,22 +19825,22 @@
1
2
- 870135
+ 884845
2
3
- 159344
+ 162038
3
12
- 83086
+ 84491
12
75
- 56908
+ 57870
@@ -19874,22 +19856,22 @@
1
2
- 870135
+ 884845
2
3
- 159344
+ 162038
3
12
- 84225
+ 85648
12
67
- 55770
+ 56713
@@ -19905,22 +19887,22 @@
1
2
- 870135
+ 884845
2
3
- 159344
+ 162038
3
12
- 83086
+ 84491
12
75
- 56908
+ 57870
@@ -19936,42 +19918,42 @@
2
3
- 21056
+ 21412
3
5
- 2276
+ 2314
5
7
- 3414
+ 3472
7
11
- 2276
+ 2314
12
16
- 3414
+ 3472
19
102
- 3414
+ 3472
108
154
- 3414
+ 3472
181
2056
- 2845
+ 2893
@@ -19987,47 +19969,47 @@
1
2
- 569
+ 578
2
3
- 20487
+ 20833
3
5
- 2845
+ 2893
5
7
- 3414
+ 3472
7
13
- 3414
+ 3472
13
23
- 3414
+ 3472
27
47
- 3414
+ 3472
47
123
- 3414
+ 3472
254
1252
- 1138
+ 1157
@@ -20043,42 +20025,42 @@
2
3
- 21056
+ 21412
3
5
- 2276
+ 2314
5
7
- 3414
+ 3472
7
11
- 2276
+ 2314
12
16
- 3414
+ 3472
19
102
- 3414
+ 3472
108
154
- 3414
+ 3472
181
2056
- 2845
+ 2893
@@ -20088,15 +20070,15 @@
xmlEncoding
- 154148
+ 1717236
id
- 154148
+ 1717236
encoding
- 262
+ 2925
@@ -20110,7 +20092,7 @@
1
2
- 154148
+ 1717236
@@ -20124,9 +20106,9 @@
12
- 588
- 589
- 262
+ 587
+ 588
+ 2925
@@ -20136,27 +20118,27 @@
xmlDTDs
- 569
+ 578
id
- 569
+ 578
root
- 569
+ 578
publicId
- 569
+ 578
systemId
- 569
+ 578
fileid
- 569
+ 578
@@ -20170,7 +20152,7 @@
1
2
- 569
+ 578
@@ -20186,7 +20168,7 @@
1
2
- 569
+ 578
@@ -20202,7 +20184,7 @@
1
2
- 569
+ 578
@@ -20218,7 +20200,7 @@
1
2
- 569
+ 578
@@ -20234,7 +20216,7 @@
1
2
- 569
+ 578
@@ -20250,7 +20232,7 @@
1
2
- 569
+ 578
@@ -20266,7 +20248,7 @@
1
2
- 569
+ 578
@@ -20282,7 +20264,7 @@
1
2
- 569
+ 578
@@ -20298,7 +20280,7 @@
1
2
- 569
+ 578
@@ -20314,7 +20296,7 @@
1
2
- 569
+ 578
@@ -20330,7 +20312,7 @@
1
2
- 569
+ 578
@@ -20346,7 +20328,7 @@
1
2
- 569
+ 578
@@ -20362,7 +20344,7 @@
1
2
- 569
+ 578
@@ -20378,7 +20360,7 @@
1
2
- 569
+ 578
@@ -20394,7 +20376,7 @@
1
2
- 569
+ 578
@@ -20410,7 +20392,7 @@
1
2
- 569
+ 578
@@ -20426,7 +20408,7 @@
1
2
- 569
+ 578
@@ -20442,7 +20424,7 @@
1
2
- 569
+ 578
@@ -20458,7 +20440,7 @@
1
2
- 569
+ 578
@@ -20474,7 +20456,7 @@
1
2
- 569
+ 578
@@ -20484,27 +20466,27 @@
xmlElements
- 20510401
+ 233696238
id
- 20510401
+ 233696238
name
- 65015
+ 740137
parentid
- 529033
+ 5929876
idx
- 232533
+ 3042462
fileid
- 154148
+ 1717236
@@ -20518,7 +20500,7 @@
1
2
- 20510401
+ 233696238
@@ -20534,7 +20516,7 @@
1
2
- 20510401
+ 233696238
@@ -20550,7 +20532,7 @@
1
2
- 20510401
+ 233696238
@@ -20566,7 +20548,7 @@
1
2
- 20510401
+ 233696238
@@ -20582,57 +20564,57 @@
1
2
- 20448
+ 234035
2
3
- 7864
+ 87763
3
4
- 3145
+ 40956
4
6
- 5767
+ 67285
6
8
- 4718
+ 52658
8
9
- 2359
+ 20478
9
10
- 4456
+ 49732
10
18
- 5505
+ 58508
18
- 48
- 4980
+ 39
+ 55583
- 52
- 250
- 4980
+ 41
+ 200
+ 55583
- 342
- 73380
- 786
+ 242
+ 73955
+ 17552
@@ -20648,52 +20630,47 @@
1
2
- 23856
+ 283768
2
3
- 8913
+ 96539
3
- 4
- 3408
-
-
- 4
5
- 2883
+ 67285
5
6
- 3670
+ 43881
6
8
- 5505
+ 61434
8
10
- 5505
+ 58508
10
- 21
- 5243
+ 19
+ 55583
- 22
- 128
- 4980
+ 20
+ 111
+ 55583
- 130
- 229
- 1048
+ 114
+ 230
+ 17552
@@ -20709,37 +20686,32 @@
1
2
- 35915
+ 406636
2
3
- 9437
+ 108241
3
4
- 4718
+ 55583
4
- 6
- 3932
+ 7
+ 64359
- 6
- 9
- 3932
+ 7
+ 12
+ 58508
- 9
- 38
- 4980
-
-
- 45
- 888
- 2097
+ 12
+ 1041
+ 46807
@@ -20755,42 +20727,37 @@
1
2
- 35391
+ 412487
2
3
- 7078
+ 76061
3
- 4
- 3408
-
-
- 4
5
- 2621
+ 61434
5
- 7
- 5767
+ 6
+ 43881
- 7
- 16
- 4980
+ 6
+ 11
+ 58508
- 17
- 114
- 5243
+ 11
+ 35
+ 55583
- 118
+ 41
131
- 524
+ 32179
@@ -20806,32 +20773,32 @@
1
2
- 321929
+ 3615849
2
3
- 82579
+ 906887
3
4
- 34342
+ 380307
4
8
- 41158
+ 470996
8
- 777
- 43255
+ 817
+ 447593
- 777
- 888
- 5767
+ 817
+ 1041
+ 108241
@@ -20847,17 +20814,17 @@
1
2
- 436754
+ 4911821
2
3
- 56101
+ 611417
3
17
- 36177
+ 406636
@@ -20873,32 +20840,32 @@
1
2
- 321929
+ 3615849
2
3
- 82579
+ 906887
3
4
- 34342
+ 380307
4
8
- 41158
+ 470996
8
- 777
- 43255
+ 817
+ 447593
- 777
- 888
- 5767
+ 817
+ 1041
+ 108241
@@ -20914,7 +20881,7 @@
1
2
- 529033
+ 5929876
@@ -20927,70 +20894,70 @@
12
+
+ 1
+ 2
+ 447593
+
2
- 8
- 19661
+ 62
+ 228184
- 9
- 76
- 18613
+ 62
+ 73
+ 228184
- 76
- 82
- 17564
+ 73
+ 81
+ 231110
- 82
- 89
- 16778
+ 81
+ 88
+ 254513
- 89
+ 88
92
- 15205
+ 236961
92
- 95
- 18351
-
-
- 95
97
- 20448
+ 234035
97
98
- 28837
+ 61434
98
99
- 17826
+ 260364
99
- 104
- 21234
+ 101
+ 236961
- 104
- 106
- 17826
+ 101
+ 105
+ 228184
- 106
- 159
- 17564
+ 105
+ 112
+ 242811
- 162
- 2019
- 2621
+ 112
+ 2028
+ 152123
@@ -21006,22 +20973,22 @@
1
2
- 188491
+ 447593
2
- 5
- 17302
+ 3
+ 2103394
- 5
- 9
- 19923
+ 3
+ 7
+ 269140
- 9
- 150
- 6816
+ 7
+ 152
+ 222333
@@ -21034,70 +21001,70 @@
12
+
+ 1
+ 2
+ 447593
+
2
- 8
- 19661
+ 62
+ 228184
- 9
- 76
- 18613
+ 62
+ 73
+ 228184
- 76
- 82
- 17564
+ 73
+ 81
+ 231110
- 82
- 89
- 16778
+ 81
+ 88
+ 254513
- 89
+ 88
92
- 15205
+ 236961
92
- 95
- 18351
-
-
- 95
97
- 20448
+ 234035
97
98
- 28837
+ 61434
98
99
- 17826
+ 260364
99
- 104
- 21234
+ 101
+ 236961
- 104
- 106
- 17826
+ 101
+ 105
+ 228184
- 106
- 159
- 17564
+ 105
+ 112
+ 242811
- 162
- 2019
- 2621
+ 112
+ 2028
+ 152123
@@ -21110,70 +21077,70 @@
12
+
+ 1
+ 2
+ 447593
+
2
- 8
- 19661
+ 62
+ 228184
- 9
- 76
- 18613
+ 62
+ 73
+ 228184
- 76
- 82
- 17564
+ 73
+ 81
+ 231110
- 82
- 89
- 16778
+ 81
+ 88
+ 254513
- 89
+ 88
92
- 15205
+ 236961
92
- 95
- 18351
-
-
- 95
97
- 20448
+ 234035
97
98
- 28837
+ 61434
98
99
- 17826
+ 260364
99
- 104
- 21234
+ 101
+ 236961
- 104
- 106
- 17826
+ 101
+ 105
+ 228184
- 106
- 139
- 17564
+ 105
+ 110
+ 242811
- 141
- 589
- 2621
+ 110
+ 588
+ 152123
@@ -21189,57 +21156,52 @@
1
2
- 11272
+ 131645
2
3
- 25953
+ 289619
3
4
- 34080
+ 362755
4
5
- 14418
+ 155048
5
7
- 11534
+ 125794
7
10
- 12845
+ 157974
10
31
- 12059
+ 134570
35
- 694
- 11797
+ 676
+ 134570
- 738
- 776
- 3932
+ 686
+ 818
+ 117017
- 777
- 779
- 12583
-
-
- 788
- 889
- 3670
+ 818
+ 1044
+ 108241
@@ -21255,37 +21217,37 @@
1
2
- 11272
+ 131645
2
3
- 76812
+ 857155
3
4
- 26740
+ 280842
4
5
- 12583
+ 140421
5
6
- 11797
+ 140421
6
9
- 12583
+ 140421
9
69
- 2359
+ 26329
@@ -21301,27 +21263,27 @@
1
2
- 11272
+ 131645
2
3
- 109319
+ 1202357
3
4
- 11010
+ 125794
4
6
- 11272
+ 128719
6
- 165
- 11272
+ 164
+ 128719
@@ -21337,42 +21299,42 @@
1
2
- 39061
+ 441742
2
3
- 42207
+ 456369
3
4
- 17040
+ 184303
4
7
- 12845
+ 149197
7
17
- 12845
+ 143346
- 18
- 763
- 11797
+ 17
+ 732
+ 131645
- 764
- 777
- 12583
+ 732
+ 817
+ 102390
- 777
- 888
- 5767
+ 817
+ 1041
+ 108241
@@ -21382,31 +21344,31 @@
xmlAttrs
- 24948200
+ 281184985
id
- 24948200
+ 281184985
elementid
- 20335805
+ 228699578
name
- 98571
+ 1091190
value
- 1576089
+ 17815959
idx
- 6029
+ 67285
fileid
- 153886
+ 1711385
@@ -21420,7 +21382,7 @@
1
2
- 24948200
+ 281184985
@@ -21436,7 +21398,7 @@
1
2
- 24948200
+ 281184985
@@ -21452,7 +21414,7 @@
1
2
- 24948200
+ 281184985
@@ -21468,7 +21430,7 @@
1
2
- 24948200
+ 281184985
@@ -21484,7 +21446,7 @@
1
2
- 24948200
+ 281184985
@@ -21500,17 +21462,17 @@
1
2
- 18609237
+ 209122501
2
6
- 1529163
+ 17306931
6
24
- 197404
+ 2270145
@@ -21526,17 +21488,17 @@
1
2
- 18609237
+ 209122501
2
6
- 1531785
+ 17336186
6
23
- 194782
+ 2240890
@@ -21552,17 +21514,17 @@
1
2
- 18619461
+ 209239519
2
6
- 1539387
+ 17423949
6
21
- 176956
+ 2036109
@@ -21578,17 +21540,17 @@
1
2
- 18609237
+ 209122501
2
6
- 1529163
+ 17306931
6
24
- 197404
+ 2270145
@@ -21604,7 +21566,7 @@
1
2
- 20335805
+ 228699578
@@ -21620,133 +21582,133 @@
1
2
- 20448
+ 228184
2
3
- 10748
+ 117017
3
4
- 6029
+ 58508
4
5
- 3408
+ 43881
5
6
- 5767
+ 64359
6
8
- 7078
+ 78987
8
11
- 8126
+ 78987
+
+
+ 11
+ 20
+ 84837
+
+
+ 20
+ 39
+ 90688
+
+
+ 39
+ 76
+ 81912
+
+
+ 78
+ 150
+ 81912
+
+
+ 152
+ 75273
+ 81912
+
+
+
+
+
+
+ name
+ elementid
+
+
+ 12
+
+
+ 1
+ 2
+ 228184
+
+
+ 2
+ 3
+ 117017
+
+
+ 3
+ 4
+ 58508
+
+
+ 4
+ 5
+ 43881
+
+
+ 5
+ 6
+ 64359
+
+
+ 6
+ 8
+ 78987
+
+
+ 8
+ 11
+ 87763
11
22
- 7602
+ 81912
- 23
- 38
- 7864
-
-
- 38
- 79
- 7864
-
-
- 81
- 168
- 7602
-
-
- 168
- 74700
- 6029
-
-
-
-
-
-
- name
- elementid
-
-
- 12
-
-
- 1
- 2
- 20448
-
-
- 2
- 3
- 10748
-
-
- 3
- 4
- 6029
-
-
- 4
- 5
- 3408
-
-
- 5
- 6
- 5767
-
-
- 6
- 8
- 7078
-
-
- 8
- 11
- 8913
-
-
- 11
- 25
- 8389
-
-
- 25
+ 22
39
- 8126
+ 84837
- 43
- 91
- 7864
+ 39
+ 76
+ 81912
- 91
- 227
- 7602
+ 78
+ 150
+ 84837
- 227
- 74700
- 4194
+ 152
+ 75273
+ 78987
@@ -21762,42 +21724,42 @@
1
2
- 41420
+ 459294
2
3
- 15467
+ 166750
3
4
- 6553
+ 76061
4
- 5
- 7078
+ 6
+ 99465
- 5
- 9
- 8126
+ 6
+ 11
+ 81912
- 9
- 21
- 7602
+ 12
+ 28
+ 81912
- 22
- 64
- 8126
+ 28
+ 70
+ 81912
- 68
- 2100
- 4194
+ 71
+ 2141
+ 43881
@@ -21813,37 +21775,37 @@
1
2
- 38799
+ 435891
2
3
- 18351
+ 193079
3
4
- 9437
+ 111166
4
5
- 10486
+ 117017
5
- 7
- 6291
+ 8
+ 99465
- 7
- 10
- 7864
+ 8
+ 13
+ 96539
- 10
+ 13
21
- 7340
+ 38030
@@ -21859,52 +21821,52 @@
1
2
- 34342
+ 389084
2
3
- 10224
+ 96539
3
4
- 5243
+ 55583
4
5
- 4718
+ 49732
5
6
- 7340
+ 87763
6
- 9
- 8126
+ 8
+ 81912
- 9
- 17
- 8651
+ 8
+ 15
+ 81912
- 17
- 34
- 7602
+ 15
+ 27
+ 87763
- 36
- 91
- 7602
+ 27
+ 65
+ 81912
- 91
- 223
- 4718
+ 68
+ 221
+ 78987
@@ -21920,37 +21882,37 @@
1
2
- 860924
+ 9694924
2
3
- 233057
+ 2615347
3
5
- 120854
+ 1345704
5
- 31
- 118757
+ 19
+ 1357406
- 31
- 91
- 124000
+ 19
+ 89
+ 1348630
- 91
- 1111
- 118232
+ 89
+ 101
+ 1360331
- 3397
- 3398
- 262
+ 101
+ 3454
+ 93614
@@ -21966,32 +21928,37 @@
1
2
- 878227
+ 9882152
2
3
- 222047
+ 2498329
3
5
- 122427
+ 1357406
5
- 33
- 124262
+ 20
+ 1345704
- 33
- 93
- 121640
+ 20
+ 90
+ 1339853
- 93
- 3398
- 107484
+ 90
+ 102
+ 1345704
+
+
+ 119
+ 3454
+ 46807
@@ -22007,17 +21974,17 @@
1
2
- 1430330
+ 16163082
2
4
- 126884
+ 1436393
4
53
- 18875
+ 216482
@@ -22033,17 +22000,17 @@
1
2
- 1305281
+ 14709136
2
3
- 190588
+ 2214561
3
20
- 80220
+ 892260
@@ -22059,32 +22026,32 @@
1
2
- 1014548
+ 11432638
2
3
- 170926
+ 1916166
3
- 10
- 122427
+ 9
+ 1339853
- 10
- 83
- 119805
+ 9
+ 80
+ 1372033
- 83
+ 80
99
- 120330
+ 1442244
99
- 182
- 28050
+ 181
+ 313022
@@ -22100,62 +22067,62 @@
1
6
- 524
+ 5850
12
14
- 524
+ 5850
17
- 26
- 524
+ 25
+ 5850
- 39
- 56
- 524
+ 38
+ 59
+ 5850
- 83
- 110
- 524
+ 88
+ 116
+ 5850
- 153
- 232
- 524
+ 159
+ 242
+ 5850
- 316
- 400
- 524
+ 324
+ 407
+ 5850
- 468
- 545
- 524
+ 480
+ 563
+ 5850
- 626
- 754
- 524
+ 647
+ 777
+ 5850
- 951
- 1491
- 524
+ 974
+ 1518
+ 5850
- 4718
- 6587
- 524
+ 4792
+ 6693
+ 5850
- 77571
- 77572
- 262
+ 78176
+ 78177
+ 2925
@@ -22171,62 +22138,62 @@
1
6
- 524
+ 5850
12
14
- 524
+ 5850
17
- 26
- 524
+ 25
+ 5850
- 39
- 56
- 524
+ 38
+ 59
+ 5850
- 83
- 110
- 524
+ 88
+ 116
+ 5850
- 153
- 232
- 524
+ 159
+ 242
+ 5850
- 316
- 400
- 524
+ 324
+ 407
+ 5850
- 468
- 545
- 524
+ 480
+ 563
+ 5850
- 626
- 754
- 524
+ 647
+ 777
+ 5850
- 951
- 1491
- 524
+ 974
+ 1518
+ 5850
- 4718
- 6587
- 524
+ 4792
+ 6693
+ 5850
- 77571
- 77572
- 262
+ 78176
+ 78177
+ 2925
@@ -22242,62 +22209,62 @@
1
4
- 524
+ 5850
7
10
- 524
+ 5850
11
17
- 524
+ 5850
18
- 23
- 524
+ 24
+ 5850
- 26
- 38
- 524
+ 25
+ 36
+ 5850
- 39
- 49
- 524
+ 38
+ 48
+ 5850
- 57
- 67
- 524
+ 53
+ 66
+ 5850
- 72
- 79
- 524
+ 71
+ 77
+ 5850
- 95
- 101
- 524
+ 96
+ 99
+ 5850
- 105
- 106
- 524
+ 103
+ 105
+ 5850
- 106
- 132
- 524
+ 108
+ 131
+ 5850
- 140
- 141
- 262
+ 139
+ 140
+ 2925
@@ -22313,62 +22280,62 @@
1
5
- 524
+ 5850
7
10
- 524
+ 5850
11
- 18
- 524
+ 17
+ 5850
22
- 32
- 524
+ 33
+ 5850
- 46
- 63
- 524
+ 50
+ 60
+ 5850
- 85
- 119
- 524
+ 84
+ 121
+ 5850
- 142
- 185
- 524
+ 140
+ 182
+ 5850
- 212
- 228
- 524
+ 217
+ 236
+ 5850
- 253
- 275
- 524
+ 254
+ 272
+ 5850
- 307
- 423
- 524
+ 299
+ 424
+ 5850
580
- 1324
- 524
+ 1357
+ 5850
- 3579
- 3580
- 262
+ 3647
+ 3648
+ 2925
@@ -22384,62 +22351,62 @@
1
6
- 524
+ 5850
7
8
- 524
+ 5850
10
- 19
- 524
+ 18
+ 5850
- 23
- 36
- 524
+ 22
+ 37
+ 5850
- 45
- 59
- 524
+ 44
+ 58
+ 5850
- 73
- 97
- 524
+ 71
+ 93
+ 5850
- 115
- 131
- 524
+ 111
+ 127
+ 5850
- 140
- 148
- 524
+ 137
+ 145
+ 5850
- 168
- 181
- 524
+ 165
+ 178
+ 5850
- 248
+ 245
363
- 524
+ 5850
- 473
- 530
- 524
+ 477
+ 533
+ 5850
- 587
- 588
- 262
+ 585
+ 586
+ 2925
@@ -22455,72 +22422,72 @@
1
3
- 11534
+ 128719
3
5
- 11797
+ 131645
5
6
- 7078
+ 78987
6
7
- 11797
+ 134570
7
8
- 9961
+ 111166
8
10
- 11272
+ 122868
10
15
- 12583
+ 140421
15
- 27
- 11797
+ 28
+ 137495
- 27
- 41
- 11797
+ 28
+ 44
+ 137495
- 41
- 65
- 11797
+ 44
+ 67
+ 131645
- 65
- 157
- 12583
+ 68
+ 184
+ 128719
- 162
- 817
- 11797
+ 186
+ 835
+ 128719
- 818
- 832
- 12845
+ 848
+ 880
+ 73136
- 832
- 1187
- 5243
+ 880
+ 1163
+ 125794
@@ -22536,52 +22503,52 @@
1
2
- 17564
+ 201855
2
3
- 36177
+ 397860
3
4
- 21759
+ 231110
4
5
- 14942
+ 160899
5
- 8
- 13894
+ 7
+ 119943
- 8
- 14
- 11797
+ 7
+ 11
+ 128719
- 14
- 295
- 11797
+ 11
+ 40
+ 128719
- 330
- 775
- 9699
+ 40
+ 693
+ 128719
- 776
- 778
- 12583
+ 717
+ 817
+ 108241
- 787
+ 817
888
- 3670
+ 105316
@@ -22597,62 +22564,62 @@
1
2
- 9699
+ 99465
2
3
- 12583
+ 134570
3
4
- 9699
+ 96539
4
5
- 12845
+ 122868
5
6
- 23332
+ 304246
6
7
- 22021
+ 248662
7
8
- 9699
+ 111166
8
12
- 11797
+ 131645
12
18
- 13370
+ 140421
18
24
- 13107
+ 140421
24
- 37
- 12059
+ 35
+ 131645
- 37
+ 35
55
- 3670
+ 49732
@@ -22668,67 +22635,67 @@
1
3
- 13370
+ 146272
3
4
- 7602
+ 87763
4
5
- 14156
+ 160899
5
6
- 17040
+ 190153
6
8
- 12059
+ 134570
8
12
- 13632
+ 149197
12
- 19
- 11797
+ 20
+ 134570
- 19
+ 20
27
- 13370
+ 131645
27
41
- 11797
+ 137495
42
- 170
- 11797
+ 137
+ 128719
- 205
- 780
- 11010
+ 149
+ 813
+ 128719
- 781
- 783
- 12583
+ 813
+ 822
+ 76061
- 791
+ 822
893
- 3670
+ 105316
@@ -22744,47 +22711,47 @@
1
2
- 15205
+ 155048
2
3
- 14680
+ 160899
3
4
- 29099
+ 336426
4
5
- 29885
+ 342277
5
6
- 17826
+ 198930
6
10
- 13107
+ 149197
10
12
- 8913
+ 99465
12
15
- 13370
+ 140421
15
24
- 11797
+ 128719
@@ -22794,23 +22761,23 @@
xmlNs
- 247214
+ 2785023
id
- 1572
+ 17552
prefixName
- 1835
+ 20478
URI
- 1572
+ 17552
fileid
- 143924
+ 1617771
@@ -22824,12 +22791,12 @@
1
2
- 1310
+ 14627
2
3
- 262
+ 2925
@@ -22845,7 +22812,7 @@
1
2
- 1572
+ 17552
@@ -22861,110 +22828,110 @@
2
3
- 262
+ 2925
20
21
- 262
+ 2925
- 88
- 89
- 262
-
-
- 167
- 168
- 262
-
-
- 213
- 214
- 262
-
-
- 453
- 454
- 262
-
-
-
-
-
-
- prefixName
- id
-
-
- 12
-
-
- 1
- 2
- 1835
-
-
-
-
-
-
- prefixName
- URI
-
-
- 12
-
-
- 1
- 2
- 1835
-
-
-
-
-
-
- prefixName
- fileid
-
-
- 12
-
-
- 1
- 2
- 262
-
-
- 2
- 3
- 262
-
-
- 20
- 21
- 262
-
-
- 88
- 89
- 262
+ 95
+ 96
+ 2925
166
167
- 262
+ 2925
- 213
- 214
- 262
+ 218
+ 219
+ 2925
- 453
- 454
- 262
+ 451
+ 452
+ 2925
+
+
+
+
+
+
+ prefixName
+ id
+
+
+ 12
+
+
+ 1
+ 2
+ 20478
+
+
+
+
+
+
+ prefixName
+ URI
+
+
+ 12
+
+
+ 1
+ 2
+ 20478
+
+
+
+
+
+
+ prefixName
+ fileid
+
+
+ 12
+
+
+ 1
+ 2
+ 2925
+
+
+ 2
+ 3
+ 2925
+
+
+ 20
+ 21
+ 2925
+
+
+ 95
+ 96
+ 2925
+
+
+ 165
+ 166
+ 2925
+
+
+ 218
+ 219
+ 2925
+
+
+ 451
+ 452
+ 2925
@@ -22980,7 +22947,7 @@
1
2
- 1572
+ 17552
@@ -22996,12 +22963,12 @@
1
2
- 1310
+ 14627
2
3
- 262
+ 2925
@@ -23017,32 +22984,32 @@
2
3
- 262
+ 2925
20
21
- 262
+ 2925
- 88
- 89
- 262
+ 95
+ 96
+ 2925
- 167
- 168
- 262
+ 166
+ 167
+ 2925
- 213
- 214
- 262
+ 218
+ 219
+ 2925
- 453
- 454
- 262
+ 451
+ 452
+ 2925
@@ -23058,17 +23025,17 @@
1
2
- 64228
+ 713808
2
3
- 56101
+ 640672
3
4
- 23594
+ 263290
@@ -23084,17 +23051,17 @@
1
2
- 64228
+ 713808
2
3
- 56101
+ 640672
3
4
- 23594
+ 263290
@@ -23110,17 +23077,17 @@
1
2
- 64228
+ 713808
2
3
- 56101
+ 640672
3
4
- 23594
+ 263290
@@ -23130,19 +23097,19 @@
xmlHasNs
- 4987018
+ 56753630
elementId
- 4987018
+ 56753630
nsId
- 1572
+ 17552
fileid
- 143137
+ 1606069
@@ -23156,7 +23123,7 @@
1
2
- 4987018
+ 56753630
@@ -23172,7 +23139,7 @@
1
2
- 4987018
+ 56753630
@@ -23188,32 +23155,32 @@
13
14
- 262
+ 2925
84
85
- 262
+ 2925
- 2426
- 2427
- 262
+ 2515
+ 2516
+ 2925
- 2733
- 2734
- 262
+ 2776
+ 2777
+ 2925
- 3704
- 3705
- 262
+ 3759
+ 3760
+ 2925
- 10063
- 10064
- 262
+ 10253
+ 10254
+ 2925
@@ -23229,32 +23196,32 @@
2
3
- 262
+ 2925
20
21
- 262
+ 2925
- 86
- 87
- 262
+ 92
+ 93
+ 2925
- 164
- 165
- 262
+ 163
+ 164
+ 2925
- 209
- 210
- 262
+ 213
+ 214
+ 2925
- 453
- 454
- 262
+ 451
+ 452
+ 2925
@@ -23270,77 +23237,72 @@
1
3
- 8651
+ 93614
3
5
- 12059
+ 131645
5
6
- 6553
+ 73136
6
7
- 12583
+ 143346
7
8
- 9437
+ 105316
8
10
- 11797
+ 128719
10
15
- 12583
+ 137495
15
- 25
- 10748
+ 26
+ 128719
- 25
- 36
- 11010
+ 26
+ 39
+ 128719
- 36
- 49
- 11272
+ 40
+ 53
+ 122868
- 49
- 54
- 2883
+ 53
+ 61
+ 32179
- 54
- 55
- 11272
+ 62
+ 63
+ 166750
- 55
- 81
- 11010
+ 63
+ 97
+ 122868
- 81
- 298
- 10748
-
-
- 298
- 833
- 524
+ 99
+ 889
+ 90688
@@ -23356,17 +23318,17 @@
1
2
- 64490
+ 716733
2
3
- 55577
+ 631896
3
4
- 23069
+ 257439
@@ -23376,23 +23338,23 @@
xmlComments
- 20643577
+ 231835655
id
- 20643577
+ 231835655
text
- 325861
+ 3785525
parentid
- 161751
+ 1796223
fileid
- 151264
+ 1682130
@@ -23406,7 +23368,7 @@
1
2
- 20643577
+ 231835655
@@ -23422,7 +23384,7 @@
1
2
- 20643577
+ 231835655
@@ -23438,7 +23400,7 @@
1
2
- 20643577
+ 231835655
@@ -23454,67 +23416,62 @@
1
2
- 44828
+ 509027
2
7
- 26740
+ 313022
7
- 32
- 27002
+ 19
+ 339351
- 32
- 61
- 24642
+ 19
+ 62
+ 336426
- 61
+ 62
76
- 24642
+ 310097
76
84
- 26215
+ 318873
84
- 90
- 24118
+ 91
+ 339351
- 90
- 94
- 21496
-
-
- 94
+ 91
95
- 11534
+ 286693
95
96
- 19399
+ 210632
96
98
- 27002
+ 295469
98
100
- 24380
+ 269140
100
- 460
- 23856
+ 457
+ 257439
@@ -23530,67 +23487,67 @@
1
2
- 45353
+ 517803
2
6
- 25953
+ 301320
6
- 32
- 27526
+ 18
+ 286693
- 32
- 61
- 24904
+ 18
+ 58
+ 286693
- 61
- 75
- 25429
+ 58
+ 72
+ 313022
- 75
- 84
- 28575
+ 72
+ 81
+ 301320
- 84
- 90
- 23594
+ 81
+ 88
+ 304246
- 90
+ 88
94
- 23069
+ 348127
94
95
- 12845
+ 146272
95
96
- 19923
+ 216482
96
98
- 27526
+ 310097
98
100
- 25953
+ 286693
100
- 460
- 15205
+ 457
+ 166750
@@ -23606,67 +23563,67 @@
1
2
- 47450
+ 541207
2
7
- 25691
+ 298395
7
- 32
- 25691
+ 19
+ 327649
- 32
- 61
- 24904
+ 19
+ 62
+ 330575
- 61
+ 62
75
- 25429
+ 289619
75
- 84
- 28575
+ 83
+ 315948
- 84
+ 83
90
- 23594
+ 304246
90
94
- 23069
+ 251588
94
95
- 12845
+ 146272
95
96
- 19923
+ 216482
96
98
- 27526
+ 310097
98
100
- 25953
+ 286693
100
- 460
- 15205
+ 457
+ 166750
@@ -23682,22 +23639,22 @@
1
2
- 128719
+ 1424691
2
- 724
- 12321
+ 674
+ 137495
- 726
- 830
- 14942
+ 697
+ 869
+ 128719
- 831
+ 869
941
- 5767
+ 105316
@@ -23713,27 +23670,22 @@
1
2
- 128719
+ 1424691
2
- 697
- 12321
+ 645
+ 137495
- 697
- 795
- 6553
-
-
- 795
- 827
- 12321
+ 677
+ 838
+ 128719
838
899
- 1835
+ 105316
@@ -23749,7 +23701,7 @@
1
2
- 161751
+ 1796223
@@ -23765,27 +23717,27 @@
1
2
- 115611
+ 1287195
2
- 549
- 11534
+ 511
+ 128719
- 579
- 829
- 7864
+ 514
+ 866
+ 108241
- 829
- 832
- 12583
+ 868
+ 870
+ 146272
- 834
+ 879
941
- 3670
+ 11701
@@ -23801,27 +23753,27 @@
1
2
- 115611
+ 1287195
2
- 536
- 11534
+ 495
+ 128719
- 560
- 795
- 9961
+ 495
+ 835
+ 108241
- 795
- 812
- 11534
+ 837
+ 839
+ 146272
- 819
+ 843
899
- 2621
+ 11701
@@ -23837,12 +23789,12 @@
1
2
- 143662
+ 1600218
2
6
- 7602
+ 81912
@@ -23852,31 +23804,31 @@
xmlChars
- 19508174
+ 222401095
id
- 19508174
+ 222401095
text
- 14981766
+ 169646548
parentid
- 19508174
+ 222401095
idx
- 262
+ 2925
isCDATA
- 524
+ 5850
fileid
- 34080
+ 383233
@@ -23890,7 +23842,7 @@
1
2
- 19508174
+ 222401095
@@ -23906,7 +23858,7 @@
1
2
- 19508174
+ 222401095
@@ -23922,7 +23874,7 @@
1
2
- 19508174
+ 222401095
@@ -23938,7 +23890,7 @@
1
2
- 19508174
+ 222401095
@@ -23954,7 +23906,7 @@
1
2
- 19508174
+ 222401095
@@ -23970,17 +23922,17 @@
1
2
- 12819230
+ 145722260
2
3
- 1346439
+ 14832005
3
- 128
- 816095
+ 204
+ 9092282
@@ -23996,17 +23948,17 @@
1
2
- 12819230
+ 145722260
2
3
- 1346439
+ 14832005
3
- 128
- 816095
+ 204
+ 9092282
@@ -24022,7 +23974,7 @@
1
2
- 14981766
+ 169646548
@@ -24038,7 +23990,7 @@
1
2
- 14981766
+ 169646548
@@ -24054,12 +24006,12 @@
1
2
- 14334499
+ 162239321
2
76
- 647266
+ 7407226
@@ -24075,7 +24027,7 @@
1
2
- 19508174
+ 222401095
@@ -24091,7 +24043,7 @@
1
2
- 19508174
+ 222401095
@@ -24107,7 +24059,7 @@
1
2
- 19508174
+ 222401095
@@ -24123,7 +24075,7 @@
1
2
- 19508174
+ 222401095
@@ -24139,7 +24091,7 @@
1
2
- 19508174
+ 222401095
@@ -24153,9 +24105,9 @@
12
- 74414
- 74415
- 262
+ 76023
+ 76024
+ 2925
@@ -24169,9 +24121,9 @@
12
- 57148
- 57149
- 262
+ 57990
+ 57991
+ 2925
@@ -24185,9 +24137,9 @@
12
- 74414
- 74415
- 262
+ 76023
+ 76024
+ 2925
@@ -24203,7 +24155,7 @@
2
3
- 262
+ 2925
@@ -24217,9 +24169,9 @@
12
- 130
- 131
- 262
+ 131
+ 132
+ 2925
@@ -24233,14 +24185,14 @@
12
- 518
- 519
- 262
+ 519
+ 520
+ 2925
- 73896
- 73897
- 262
+ 75504
+ 75505
+ 2925
@@ -24254,14 +24206,14 @@
12
- 492
- 493
- 262
+ 493
+ 494
+ 2925
- 56656
- 56657
- 262
+ 57497
+ 57498
+ 2925
@@ -24275,14 +24227,14 @@
12
- 518
- 519
- 262
+ 519
+ 520
+ 2925
- 73896
- 73897
- 262
+ 75504
+ 75505
+ 2925
@@ -24298,7 +24250,7 @@
1
2
- 524
+ 5850
@@ -24314,12 +24266,12 @@
98
99
- 262
+ 2925
- 130
- 131
- 262
+ 131
+ 132
+ 2925
@@ -24335,57 +24287,57 @@
1
2
- 2883
+ 32179
2
- 23
- 2621
+ 24
+ 29254
24
243
- 2621
+ 29254
294
- 566
- 2621
+ 501
+ 29254
- 610
- 686
- 2621
+ 521
+ 653
+ 29254
- 691
- 764
- 2621
+ 661
+ 756
+ 29254
- 765
- 775
- 2621
+ 762
+ 811
+ 35105
- 775
- 776
- 786
+ 812
+ 816
+ 20478
- 776
- 777
- 9437
+ 816
+ 817
+ 61434
- 777
- 803
- 2621
+ 817
+ 818
+ 73136
- 807
- 888
- 2621
+ 825
+ 1041
+ 14627
@@ -24401,67 +24353,67 @@
1
2
- 2883
+ 32179
2
21
- 2621
+ 29254
- 22
- 188
- 2621
+ 23
+ 189
+ 29254
- 208
- 492
- 2621
+ 212
+ 434
+ 29254
- 525
- 589
- 2621
+ 434
+ 557
+ 29254
- 590
- 638
- 2621
+ 565
+ 634
+ 29254
- 639
- 651
- 2621
+ 645
+ 669
+ 29254
- 652
- 656
- 2359
+ 669
+ 675
+ 32179
- 656
- 659
- 3145
+ 675
+ 677
+ 20478
- 659
- 663
- 2883
+ 677
+ 681
+ 29254
- 663
- 667
- 2621
+ 681
+ 685
+ 35105
- 667
- 701
- 2621
+ 685
+ 690
+ 32179
- 702
- 744
- 1835
+ 690
+ 1041
+ 26329
@@ -24477,57 +24429,57 @@
1
2
- 2883
+ 32179
2
- 23
- 2621
+ 24
+ 29254
24
243
- 2621
+ 29254
294
- 566
- 2621
+ 501
+ 29254
- 610
- 686
- 2621
+ 521
+ 653
+ 29254
- 691
- 764
- 2621
+ 661
+ 756
+ 29254
- 765
- 775
- 2621
+ 762
+ 811
+ 35105
- 775
- 776
- 786
+ 812
+ 816
+ 20478
- 776
- 777
- 9437
+ 816
+ 817
+ 61434
- 777
- 803
- 2621
+ 817
+ 818
+ 73136
- 807
- 888
- 2621
+ 825
+ 1041
+ 14627
@@ -24543,7 +24495,7 @@
1
2
- 34080
+ 383233
@@ -24559,12 +24511,12 @@
1
2
- 8389
+ 96539
2
3
- 25691
+ 286693
@@ -24574,15 +24526,15 @@
xmllocations
- 86011718
+ 973620234
xmlElement
- 85766076
+ 970852763
location
- 80598169
+ 912103979
@@ -24596,12 +24548,12 @@
1
2
- 85764503
+ 970835211
2
- 454
- 1572
+ 452
+ 17552
@@ -24617,12 +24569,12 @@
1
2
- 78771195
+ 891394755
2
25
- 1826974
+ 20709224
@@ -24632,30 +24584,30 @@
configs
- 1
+ 669552
id
- 1
+ 669552
configNames
- 1
+ 669552
id
- 1
+ 669552
config
- 1
+ 669552
name
- 1
+ 13871
@@ -24669,7 +24621,7 @@
1
2
- 1
+ 669552
@@ -24685,7 +24637,7 @@
1
2
- 1
+ 669552
@@ -24697,7 +24649,13 @@
12
-
+
+
+ 1
+ 2
+ 669552
+
+
@@ -24707,7 +24665,13 @@
12
-
+
+
+ 1
+ 2
+ 669552
+
+
@@ -24717,7 +24681,68 @@
12
-
+
+
+ 1
+ 2
+ 2157
+
+
+ 2
+ 13
+ 1088
+
+
+ 13
+ 33
+ 1048
+
+
+ 33
+ 42
+ 1044
+
+
+ 42
+ 53
+ 1094
+
+
+ 53
+ 59
+ 1122
+
+
+ 59
+ 63
+ 1008
+
+
+ 63
+ 65
+ 1008
+
+
+ 65
+ 67
+ 1192
+
+
+ 67
+ 96
+ 986
+
+
+ 96
+ 97
+ 1809
+
+
+ 99
+ 132
+ 311
+
+
@@ -24727,7 +24752,68 @@
12
-
+
+
+ 1
+ 2
+ 2157
+
+
+ 2
+ 13
+ 1088
+
+
+ 13
+ 33
+ 1048
+
+
+ 33
+ 42
+ 1044
+
+
+ 42
+ 53
+ 1094
+
+
+ 53
+ 59
+ 1122
+
+
+ 59
+ 63
+ 1008
+
+
+ 63
+ 65
+ 1008
+
+
+ 65
+ 67
+ 1192
+
+
+ 67
+ 96
+ 986
+
+
+ 96
+ 97
+ 1809
+
+
+ 99
+ 132
+ 311
+
+
@@ -24735,19 +24821,19 @@
configValues
- 1
+ 669315
id
- 1
+ 669315
config
- 1
+ 669315
value
- 1
+ 483226
@@ -24761,7 +24847,7 @@
1
2
- 1
+ 669315
@@ -24777,7 +24863,7 @@
1
2
- 1
+ 669315
@@ -24789,7 +24875,13 @@
12
-
+
+
+ 1
+ 2
+ 669315
+
+
@@ -24799,7 +24891,13 @@
12
-
+
+
+ 1
+ 2
+ 669315
+
+
@@ -24809,7 +24907,23 @@
12
-
+
+
+ 1
+ 2
+ 416999
+
+
+ 2
+ 3
+ 42151
+
+
+ 3
+ 547
+ 24074
+
+
@@ -24819,7 +24933,23 @@
12
-
+
+
+ 1
+ 2
+ 416999
+
+
+ 2
+ 3
+ 42151
+
+
+ 3
+ 547
+ 24074
+
+
@@ -24827,15 +24957,15 @@
configLocations
- 1
+ 2008421
locatable
- 1
+ 2008421
location
- 1
+ 2008421
@@ -24845,7 +24975,13 @@
12
-
+
+
+ 1
+ 2
+ 2008421
+
+
@@ -24855,7 +24991,13 @@
12
-
+
+
+ 1
+ 2
+ 2008421
+
+
@@ -24863,19 +25005,19 @@
ktComments
- 116780
+ 122924
id
- 116780
+ 122924
kind
- 13
+ 12
text
- 15129
+ 15880
@@ -24889,7 +25031,7 @@
1
2
- 116780
+ 122924
@@ -24905,7 +25047,7 @@
1
2
- 116780
+ 122924
@@ -24919,18 +25061,18 @@
12
- 794
- 795
+ 951
+ 952
4
- 8820
- 8821
+ 10006
+ 10007
4
- 17201
- 17202
+ 19068
+ 19069
4
@@ -24945,18 +25087,18 @@
12
- 20
- 21
+ 22
+ 23
4
- 680
- 681
+ 810
+ 811
4
- 2774
- 2775
+ 3047
+ 3048
4
@@ -24973,42 +25115,42 @@
1
2
- 6780
+ 7500
2
3
- 692
+ 1109
3
4
- 1506
+ 1342
4
5
- 126
+ 192
5
6
- 3436
+ 1445
6
- 16
- 1258
+ 7
+ 2280
- 16
- 32
- 1201
+ 7
+ 19
+ 1150
- 33
- 4236
- 126
+ 24
+ 4801
+ 859
@@ -25024,7 +25166,7 @@
1
2
- 15129
+ 15880
@@ -25034,19 +25176,19 @@
ktCommentSections
- 74919
+ 78073
id
- 74919
+ 78073
comment
- 74910
+ 78065
content
- 8109
+ 8736
@@ -25060,7 +25202,7 @@
1
2
- 74919
+ 78073
@@ -25076,7 +25218,7 @@
1
2
- 74919
+ 78073
@@ -25092,7 +25234,7 @@
1
2
- 74902
+ 78057
2
@@ -25113,7 +25255,7 @@
1
2
- 74902
+ 78057
2
@@ -25134,52 +25276,47 @@
1
2
- 3170
+ 3529
2
3
- 522
+ 937
3
5
- 518
+ 564
5
6
- 962
+ 438
6
- 9
- 622
+ 7
+ 982
- 9
- 10
- 34
+ 7
+ 12
+ 442
- 10
- 11
- 718
+ 12
+ 16
+ 499
- 11
- 21
- 675
+ 18
+ 31
+ 773
- 21
- 37
- 622
-
-
- 42
- 504
- 261
+ 31
+ 575
+ 569
@@ -25195,52 +25332,47 @@
1
2
- 3170
+ 3529
2
3
- 522
+ 937
3
5
- 518
+ 564
5
6
- 962
+ 438
6
- 9
- 622
+ 7
+ 982
- 9
- 10
- 34
+ 7
+ 12
+ 442
- 10
- 11
- 718
+ 12
+ 16
+ 499
- 11
- 21
- 675
+ 18
+ 31
+ 773
- 21
- 37
- 622
-
-
- 42
- 504
- 261
+ 31
+ 575
+ 569
@@ -25250,15 +25382,15 @@
ktCommentSectionNames
- 4034
+ 3673
id
- 4034
+ 3673
name
- 12
+ 11
@@ -25272,7 +25404,7 @@
1
2
- 4034
+ 3673
@@ -25286,9 +25418,9 @@
12
- 325
- 326
- 12
+ 323
+ 324
+ 11
@@ -25298,15 +25430,15 @@
ktCommentSectionSubjectNames
- 4034
+ 3673
id
- 4034
+ 3673
subjectname
- 2643
+ 2388
@@ -25320,7 +25452,7 @@
1
2
- 4034
+ 3673
@@ -25336,22 +25468,22 @@
1
2
- 2010
+ 1819
2
3
- 397
+ 341
3
- 9
- 198
+ 6
+ 181
- 10
+ 8
16
- 37
+ 45
@@ -25361,15 +25493,15 @@
ktCommentOwners
- 76609
+ 79801
id
- 74810
+ 77967
owner
- 71853
+ 74856
@@ -25383,12 +25515,12 @@
1
2
- 73186
+ 76329
2
6
- 1624
+ 1637
@@ -25404,12 +25536,12 @@
1
2
- 69697
+ 72407
2
- 5
- 2155
+ 13
+ 2448
@@ -25419,19 +25551,19 @@
ktExtensionFunctions
- 166732
+ 149983
id
- 166732
+ 149983
typeid
- 13632
+ 13755
kttypeid
- 262
+ 264
@@ -25445,7 +25577,7 @@
1
2
- 166732
+ 149983
@@ -25461,7 +25593,7 @@
1
2
- 166732
+ 149983
@@ -25477,37 +25609,42 @@
1
2
- 7864
+ 7935
2
3
- 524
+ 529
3
4
- 786
+ 793
- 5
- 6
- 1310
+ 4
+ 5
+ 1058
6
- 13
- 1048
+ 10
+ 1058
- 13
- 30
- 1048
+ 10
+ 17
+ 1058
- 35
- 227
- 1048
+ 31
+ 99
+ 1058
+
+
+ 184
+ 185
+ 264
@@ -25523,7 +25660,7 @@
1
2
- 13632
+ 13755
@@ -25537,9 +25674,9 @@
12
- 636
- 637
- 262
+ 567
+ 568
+ 264
@@ -25555,7 +25692,7 @@
52
53
- 262
+ 264
@@ -25565,15 +25702,15 @@
ktProperties
- 2989117
+ 3024536
id
- 2989117
+ 3024536
nodeName
- 1848733
+ 1863287
@@ -25587,7 +25724,7 @@
1
2
- 2989117
+ 3024536
@@ -25603,17 +25740,17 @@
1
2
- 1614626
+ 1625747
2
4
- 155721
+ 156861
4
352
- 78385
+ 80678
@@ -25623,15 +25760,15 @@
ktPropertyGetters
- 816357
+ 830861
id
- 816357
+ 830861
getter
- 816357
+ 830861
@@ -25645,7 +25782,7 @@
1
2
- 816357
+ 830861
@@ -25661,7 +25798,7 @@
1
2
- 816357
+ 830861
@@ -25671,15 +25808,15 @@
ktPropertySetters
- 53073
+ 53910
id
- 53073
+ 53910
setter
- 53073
+ 53910
@@ -25693,7 +25830,7 @@
1
2
- 53073
+ 53910
@@ -25709,7 +25846,7 @@
1
2
- 53073
+ 53910
@@ -25719,15 +25856,15 @@
ktPropertyBackingFields
- 2459964
+ 2496205
id
- 2459964
+ 2496205
backingField
- 2459964
+ 2496205
@@ -25741,7 +25878,7 @@
1
2
- 2459964
+ 2496205
@@ -25757,7 +25894,7 @@
1
2
- 2459964
+ 2496205
@@ -25767,15 +25904,15 @@
ktSyntheticBody
- 1497
+ 3319
id
- 1497
+ 3319
kind
- 124
+ 301
@@ -25789,7 +25926,7 @@
1
2
- 1497
+ 3319
@@ -25803,9 +25940,9 @@
12
- 12
- 13
- 124
+ 11
+ 12
+ 301
@@ -25815,37 +25952,37 @@
ktLocalFunction
- 1573
+ 1714
id
- 1573
+ 1714
ktInitializerAssignment
- 69820
+ 57546
id
- 69820
+ 57546
ktPropertyDelegates
- 4944
+ 6938
id
- 4944
+ 6938
variableId
- 4944
+ 6938
@@ -25859,7 +25996,7 @@
1
2
- 4944
+ 6938
@@ -25875,7 +26012,7 @@
1
2
- 4944
+ 6938
@@ -25885,15 +26022,15 @@
compiler_generated
- 268390
+ 266747
id
- 268390
+ 266747
kind
- 148
+ 136
@@ -25907,7 +26044,7 @@
1
2
- 268390
+ 266747
@@ -25921,59 +26058,59 @@
12
- 61
- 62
- 12
+ 15
+ 16
+ 11
- 84
- 85
- 24
+ 70
+ 71
+ 11
- 94
- 95
- 12
+ 86
+ 87
+ 22
- 143
- 144
- 12
+ 114
+ 115
+ 11
- 186
- 187
- 12
+ 146
+ 147
+ 11
- 203
- 204
- 12
+ 246
+ 247
+ 11
- 737
- 738
- 12
+ 588
+ 589
+ 11
- 1028
- 1029
- 12
+ 1148
+ 1149
+ 11
- 1275
- 1276
- 12
+ 1354
+ 1355
+ 11
- 5140
- 5141
- 12
+ 5444
+ 5445
+ 11
- 12589
- 12590
- 12
+ 14161
+ 14162
+ 11
@@ -25983,15 +26120,15 @@
ktFunctionOriginalNames
- 216279
+ 218494
id
- 216279
+ 218494
name
- 25167
+ 25658
@@ -26005,7 +26142,7 @@
1
2
- 216279
+ 218494
@@ -26021,22 +26158,22 @@
1
2
- 19923
+ 20368
2
4
- 1835
+ 1851
6
16
- 2097
+ 2116
22
339
- 1310
+ 1322
@@ -26046,25 +26183,14 @@
ktDataClasses
- 15467
+ 15606
id
- 15467
-
-
-
-
-
- isNullDefaultCase
- 50
-
-
- id
- 50
+ 15606
-
+
\ No newline at end of file
diff --git a/java/ql/lib/experimental/quantum/JCA.qll b/java/ql/lib/experimental/quantum/JCA.qll
index dc86c463750..108835c2c94 100644
--- a/java/ql/lib/experimental/quantum/JCA.qll
+++ b/java/ql/lib/experimental/quantum/JCA.qll
@@ -269,7 +269,7 @@ module JCAModel {
}
/**
- * Data-flow configuration modelling flow from a cipher string literal to a cipher algorithm consumer.
+ * Data-flow configuration modeling flow from a cipher string literal to a cipher algorithm consumer.
*/
private module CipherAlgorithmStringToCipherConsumerConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node src) { src.asExpr() instanceof CipherStringLiteral }
@@ -404,9 +404,7 @@ module JCAModel {
* For example, in `Cipher.getInstance(algorithm)`, this class represents `algorithm`.
*/
class CipherGetInstanceAlgorithmArg extends CipherAlgorithmValueConsumer instanceof Expr {
- CipherGetInstanceCall call;
-
- CipherGetInstanceAlgorithmArg() { this = call.getAlgorithmArg() }
+ CipherGetInstanceAlgorithmArg() { this = any(CipherGetInstanceCall call).getAlgorithmArg() }
override Crypto::ConsumerInputDataFlowNode getInputNode() { result.asExpr() = this }
@@ -1333,7 +1331,7 @@ module JCAModel {
}
/**
- * Data-flow configuration modelling flow from a key agreement string literal to a key agreement algorithm consumer.
+ * Data-flow configuration modeling flow from a key agreement string literal to a key agreement algorithm consumer.
*/
private module KeyAgreementAlgorithmStringToConsumerConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node src) { src.asExpr() instanceof KeyAgreementStringLiteral }
@@ -1539,11 +1537,9 @@ module JCAModel {
}
class MacOperationCall extends Crypto::MacOperationInstance instanceof MethodCall {
- Expr output;
-
MacOperationCall() {
super.getMethod().getDeclaringType().hasQualifiedName("javax.crypto", "Mac") and
- (
+ exists(Expr output |
super.getMethod().hasStringSignature(["doFinal()", "doFinal(byte[])"]) and this = output
or
super.getMethod().hasStringSignature("doFinal(byte[], int)") and
diff --git a/java/ql/lib/experimental/quantum/Language.qll b/java/ql/lib/experimental/quantum/Language.qll
index 975a8ad8e1f..e203d2a1587 100644
--- a/java/ql/lib/experimental/quantum/Language.qll
+++ b/java/ql/lib/experimental/quantum/Language.qll
@@ -113,7 +113,7 @@ private class ConstantDataSource extends Crypto::GenericConstantSourceInstance i
}
/**
- * An instance of random number generation, modelled as the expression
+ * An instance of random number generation, modeled as the expression
* tied to an output node (i.e., the result of the source of randomness)
*/
abstract class RandomnessInstance extends Crypto::RandomNumberGenerationInstance {
diff --git a/java/ql/lib/printAst.ql b/java/ql/lib/printAst.ql
index cd72403de90..8ea0efaed5f 100644
--- a/java/ql/lib/printAst.ql
+++ b/java/ql/lib/printAst.ql
@@ -18,8 +18,8 @@ external string selectedSourceFile();
class PrintAstConfigurationOverride extends PrintAstConfiguration {
/**
- * Holds if the location matches the selected file in the VS Code extension and
- * the element is `fromSource`.
+ * Holds if the location `l` matches the selected file in the VS Code extension and
+ * the element `e` is `fromSource`.
*/
override predicate shouldPrint(Element e, Location l) {
super.shouldPrint(e, l) and
diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml
index 93be6469202..69cadd5a6b0 100644
--- a/java/ql/lib/qlpack.yml
+++ b/java/ql/lib/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/java-all
-version: 7.6.1-dev
+version: 7.6.2-dev
groups: java
dbscheme: config/semmlecode.dbscheme
extractor: java
diff --git a/java/ql/lib/semmle/code/java/CompilationUnit.qll b/java/ql/lib/semmle/code/java/CompilationUnit.qll
index 546c3d26ea3..5b26828b47c 100644
--- a/java/ql/lib/semmle/code/java/CompilationUnit.qll
+++ b/java/ql/lib/semmle/code/java/CompilationUnit.qll
@@ -33,5 +33,13 @@ class CompilationUnit extends Element, File {
*/
Module getModule() { cumodule(this, result) }
+ /**
+ * Holds if this compilation unit represents a compact source file.
+ * A compact source file contains an implicitly declared top-level class.
+ */
+ predicate isCompactSourceFile() {
+ exists(Class c | c.getCompilationUnit() = this and c.isImplicit())
+ }
+
override string getAPrimaryQlClass() { result = "CompilationUnit" }
}
diff --git a/java/ql/lib/semmle/code/java/Concurrency.qll b/java/ql/lib/semmle/code/java/Concurrency.qll
index 0e510db3443..7322f16068c 100644
--- a/java/ql/lib/semmle/code/java/Concurrency.qll
+++ b/java/ql/lib/semmle/code/java/Concurrency.qll
@@ -26,7 +26,8 @@ predicate locallySynchronizedOnThis(Expr e, RefType thisType) {
}
/**
- * Holds if `e` is synchronized by a `synchronized` modifier on the enclosing (static) method.
+ * Holds if `e` is synchronized by a `synchronized` modifier on the enclosing (static) method
+ * declared in the type `classType`.
*/
predicate locallySynchronizedOnClass(Expr e, RefType classType) {
exists(SynchronizedCallable c | c = e.getEnclosingCallable() |
diff --git a/java/ql/lib/semmle/code/java/Conversions.qll b/java/ql/lib/semmle/code/java/Conversions.qll
index 76b74fd1eb7..779eb7620be 100644
--- a/java/ql/lib/semmle/code/java/Conversions.qll
+++ b/java/ql/lib/semmle/code/java/Conversions.qll
@@ -100,12 +100,12 @@ class InvocationConversionContext extends ConversionSite {
* See the Java Language Specification, Section 5.4.
*/
class StringConversionContext extends ConversionSite {
- AddExpr a;
-
StringConversionContext() {
- a.getAnOperand() = this and
- not this.getType() instanceof TypeString and
- a.getAnOperand().getType() instanceof TypeString
+ exists(AddExpr a |
+ a.getAnOperand() = this and
+ not this.getType() instanceof TypeString and
+ a.getAnOperand().getType() instanceof TypeString
+ )
}
override Type getConversionTarget() { result instanceof TypeString }
diff --git a/java/ql/lib/semmle/code/java/Member.qll b/java/ql/lib/semmle/code/java/Member.qll
index 7d84dbd379d..17fe696972f 100644
--- a/java/ql/lib/semmle/code/java/Member.qll
+++ b/java/ql/lib/semmle/code/java/Member.qll
@@ -848,6 +848,9 @@ class Field extends Member, ExprParent, @field, Variable {
override string getAPrimaryQlClass() { result = "Field" }
}
+overlay[local]
+private class DiscardableField extends DiscardableReferableLocatable, @field { }
+
/** An instance field. */
class InstanceField extends Field {
InstanceField() { not this.isStatic() }
diff --git a/java/ql/lib/semmle/code/java/Statement.qll b/java/ql/lib/semmle/code/java/Statement.qll
index a4872a32c91..2aea8b006ae 100644
--- a/java/ql/lib/semmle/code/java/Statement.qll
+++ b/java/ql/lib/semmle/code/java/Statement.qll
@@ -291,7 +291,7 @@ class TryStmt extends Stmt, @trystmt {
CatchClause getACatchClause() { result.getParent() = this }
/**
- * Gets the `catch` clause at the specified (zero-based) position
+ * Gets the `catch` clause at the specified (zero-based) position `index`
* in this `try` statement.
*/
CatchClause getCatchClause(int index) {
@@ -305,7 +305,7 @@ class TryStmt extends Stmt, @trystmt {
/** Gets a resource variable declaration, if any. */
LocalVariableDeclStmt getAResourceDecl() { result.getParent() = this and result.getIndex() <= -3 }
- /** Gets the resource variable declaration at the specified position in this `try` statement. */
+ /** Gets the resource variable declaration at the specified position `index` in this `try` statement. */
LocalVariableDeclStmt getResourceDecl(int index) {
result = this.getAResourceDecl() and
index = -3 - result.getIndex()
@@ -314,7 +314,7 @@ class TryStmt extends Stmt, @trystmt {
/** Gets a resource expression, if any. */
VarAccess getAResourceExpr() { result.getParent() = this and result.getIndex() <= -3 }
- /** Gets the resource expression at the specified position in this `try` statement. */
+ /** Gets the resource expression at the specified position `index` in this `try` statement. */
VarAccess getResourceExpr(int index) {
result = this.getAResourceExpr() and
index = -3 - result.getIndex()
@@ -323,7 +323,7 @@ class TryStmt extends Stmt, @trystmt {
/** Gets a resource in this `try` statement, if any. */
ExprParent getAResource() { result = this.getAResourceDecl() or result = this.getAResourceExpr() }
- /** Gets the resource at the specified position in this `try` statement. */
+ /** Gets the resource at the specified position `index` in this `try` statement. */
ExprParent getResource(int index) {
result = this.getResourceDecl(index) or result = this.getResourceExpr(index)
}
diff --git a/java/ql/lib/semmle/code/java/Type.qll b/java/ql/lib/semmle/code/java/Type.qll
index dd646e74285..ef5cc5d941c 100644
--- a/java/ql/lib/semmle/code/java/Type.qll
+++ b/java/ql/lib/semmle/code/java/Type.qll
@@ -15,6 +15,7 @@ module;
import Member
import Modifier
import JDK
+private import semmle.code.java.Overlay
/**
* Holds if reference type `t` is an immediate super-type of `sub`.
@@ -699,6 +700,15 @@ class Class extends ClassOrInterface {
/** Holds if this class is an anonymous class. */
predicate isAnonymous() { isAnonymClass(this.getSourceDeclaration(), _) }
+ /** Holds if this class is an implicit class (compact source file). */
+ predicate isImplicit() { isImplicitClass(this.getSourceDeclaration()) }
+
+ /** Holds if this is an auxiliary program element generated by the compiler. */
+ override predicate isCompilerGenerated() {
+ super.isCompilerGenerated() or
+ this.isImplicit()
+ }
+
/**
* Gets an annotation that applies to this class.
*
@@ -998,6 +1008,10 @@ class ClassOrInterface extends RefType, @classorinterface {
CompanionObject getCompanionObject() { type_companion_object(this, _, result) }
}
+overlay[local]
+private class DiscardableClassOrInterface extends DiscardableReferableLocatable, @classorinterface {
+}
+
private string getAPublicObjectMethodSignature() {
exists(Method m |
m.getDeclaringType() instanceof TypeObject and
diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll
index e974f711ec4..b08c59d4630 100644
--- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll
+++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll
@@ -7,10 +7,9 @@ module;
import java
import Dominance
private import codeql.controlflow.BasicBlock as BB
+private import codeql.controlflow.SuccessorType
private module Input implements BB::InputSig {
- import SuccessorType
-
/** Hold if `t` represents a conditional successor type. */
predicate successorTypeIsCondition(SuccessorType t) { none() }
@@ -34,7 +33,7 @@ private module Input implements BB::InputSig {
result = getASpecificSuccessor(node, t)
or
node.getASuccessor() = result and
- t instanceof NormalSuccessor and
+ t instanceof DirectSuccessor and
not result = getASpecificSuccessor(node, _)
}
@@ -96,7 +95,17 @@ class BasicBlock extends BbImpl::BasicBlock {
predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) }
/** Gets an immediate successor of this basic block of a given type, if any. */
- BasicBlock getASuccessor(Input::SuccessorType t) { result = super.getASuccessor(t) }
+ BasicBlock getASuccessor(SuccessorType t) { result = super.getASuccessor(t) }
+
+ BasicBlock getASuccessor() { result = super.getASuccessor() }
+
+ BasicBlock getImmediateDominator() { result = super.getImmediateDominator() }
+
+ predicate inDominanceFrontier(BasicBlock df) { super.inDominanceFrontier(df) }
+
+ predicate strictlyPostDominates(BasicBlock bb) { super.strictlyPostDominates(bb) }
+
+ predicate postDominates(BasicBlock bb) { super.postDominates(bb) }
/**
* DEPRECATED: Use `getASuccessor` instead.
@@ -145,3 +154,15 @@ class BasicBlock extends BbImpl::BasicBlock {
class ExitBlock extends BasicBlock {
ExitBlock() { this.getLastNode() instanceof ControlFlow::ExitNode }
}
+
+private class BasicBlockAlias = BasicBlock;
+
+module Cfg implements BB::CfgSig {
+ class ControlFlowNode = BbImpl::ControlFlowNode;
+
+ class BasicBlock = BasicBlockAlias;
+
+ class EntryBasicBlock extends BasicBlock instanceof BbImpl::EntryBasicBlock { }
+
+ predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { BbImpl::dominatingEdge(bb1, bb2) }
+}
diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll
index a3cffbae459..51d6a62f43b 100644
--- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll
+++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll
@@ -139,20 +139,13 @@ private predicate isNonFallThroughPredecessor(SwitchCase sc, ControlFlowNode pre
)
}
-private module GuardsInput implements SharedGuards::InputSig {
+private module GuardsInput implements SharedGuards::InputSig {
private import java as J
private import semmle.code.java.dataflow.internal.BaseSSA
private import semmle.code.java.dataflow.NullGuards as NullGuards
- import SuccessorType
-
- class ControlFlowNode = J::ControlFlowNode;
class NormalExitNode = ControlFlow::NormalExitNode;
- class BasicBlock = J::BasicBlock;
-
- predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { J::dominatingEdge(bb1, bb2) }
-
class AstNode = ExprParent;
class Expr = J::Expr;
@@ -382,7 +375,7 @@ private module GuardsInput implements SharedGuards::InputSig {
}
}
-private module GuardsImpl = SharedGuards::Make;
+private module GuardsImpl = SharedGuards::Make;
private module LogicInputCommon {
private import semmle.code.java.dataflow.NullGuards as NullGuards
diff --git a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll b/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll
deleted file mode 100644
index feabc47552f..00000000000
--- a/java/ql/lib/semmle/code/java/controlflow/SuccessorType.qll
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Provides different types of control flow successor types.
- */
-overlay[local?]
-module;
-
-import java
-private import codeql.util.Boolean
-
-private newtype TSuccessorType =
- TNormalSuccessor() or
- TBooleanSuccessor(Boolean branch) or
- TExceptionSuccessor()
-
-/** The type of a control flow successor. */
-class SuccessorType extends TSuccessorType {
- /** Gets a textual representation of successor type. */
- string toString() { result = "SuccessorType" }
-}
-
-/** A normal control flow successor. */
-class NormalSuccessor extends SuccessorType, TNormalSuccessor { }
-
-/**
- * An exceptional control flow successor.
- *
- * This marks control flow edges that are taken when an exception is thrown.
- */
-class ExceptionSuccessor extends SuccessorType, TExceptionSuccessor { }
-
-/**
- * A conditional control flow successor.
- *
- * This currently only includes boolean successors (`BooleanSuccessor`).
- */
-class ConditionalSuccessor extends SuccessorType, TBooleanSuccessor {
- /** Gets the Boolean value of this successor. */
- boolean getValue() { this = TBooleanSuccessor(result) }
-}
-
-/**
- * A Boolean control flow successor.
- *
- * For example, this program fragment:
- *
- * ```java
- * if (x < 0)
- * return 0;
- * else
- * return 1;
- * ```
- *
- * has a control flow graph containing Boolean successors:
- *
- * ```
- * if
- * |
- * x < 0
- * / \
- * / \
- * / \
- * true false
- * | \
- * return 0 return 1
- * ```
- */
-class BooleanSuccessor = ConditionalSuccessor;
-
-/**
- * A nullness control flow successor. This is currently unused for Java.
- */
-class NullnessSuccessor extends ConditionalSuccessor {
- NullnessSuccessor() { none() }
-}
diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll
index 5c0fbb88d66..e50581c7e14 100644
--- a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll
+++ b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll
@@ -157,17 +157,7 @@ private module BaseSsaImpl {
private import BaseSsaImpl
-private module SsaInput implements SsaImplCommon::InputSig {
- private import java as J
-
- class BasicBlock = J::BasicBlock;
-
- class ControlFlowNode = J::ControlFlowNode;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { result.immediatelyDominates(bb) }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() }
-
+private module SsaInput implements SsaImplCommon::InputSig {
class SourceVariable = BaseSsaSourceVariable;
/**
@@ -199,7 +189,7 @@ private module SsaInput implements SsaImplCommon::InputSig {
}
}
-private module Impl = SsaImplCommon::Make;
+private module Impl = SsaImplCommon::Make;
private import Cached
diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll
index f9313959226..5af24642477 100644
--- a/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll
+++ b/java/ql/lib/semmle/code/java/dataflow/internal/ContainerFlow.qll
@@ -470,7 +470,8 @@ private predicate enhancedForStmtStep(Node node1, Node node2, Type containerType
}
/**
- * Holds if the step from `node1` to `node2` reads a value from an array.
+ * Holds if the step from `node1` to `node2` reads a value from an array, where
+ * the elements are of type `elemType`.
* This covers ordinary array reads as well as array iteration through enhanced
* `for` statements.
*/
diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll
index 8b9087ecbdc..1721569e45a 100644
--- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll
+++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll
@@ -69,28 +69,10 @@ private predicate closureFlowStep(Expr e1, Expr e2) {
)
}
-private module CaptureInput implements VariableCapture::InputSig {
+private module CaptureInput implements VariableCapture::InputSig {
private import java as J
- class BasicBlock instanceof J::BasicBlock {
- string toString() { result = super.toString() }
-
- ControlFlowNode getNode(int i) { result = super.getNode(i) }
-
- int length() { result = super.length() }
-
- Callable getEnclosingCallable() { result = super.getEnclosingCallable() }
-
- Location getLocation() { result = super.getLocation() }
- }
-
- class ControlFlowNode = J::ControlFlowNode;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) {
- result.(J::BasicBlock).immediatelyDominates(bb)
- }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.(J::BasicBlock).getASuccessor() }
+ Callable basicBlockGetEnclosingCallable(BasicBlock bb) { result = bb.getEnclosingCallable() }
//TODO: support capture of `this` in lambdas
class CapturedVariable instanceof LocalScopeVariable {
@@ -165,7 +147,7 @@ class CapturedVariable = CaptureInput::CapturedVariable;
class CapturedParameter = CaptureInput::CapturedParameter;
-module CaptureFlow = VariableCapture::Flow;
+module CaptureFlow = VariableCapture::Flow;
private CaptureFlow::ClosureNode asClosureNode(Node n) {
result = n.(CaptureNode).getSynthesizedCaptureNode()
diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll
index ab2f7f89cb4..4b436edc6aa 100644
--- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll
+++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll
@@ -263,8 +263,8 @@ class Content extends TContent {
/**
* Holds if this element is at the specified location.
- * The location spans column `startcolumn` of line `startline` to
- * column `endcolumn` of line `endline` in file `filepath`.
+ * The location spans column `sc` of line `sl` to
+ * column `ec` of line `el` in file `path`.
* For more information, see
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
@@ -362,8 +362,8 @@ class ContentSet instanceof Content {
/**
* Holds if this element is at the specified location.
- * The location spans column `startcolumn` of line `startline` to
- * column `endcolumn` of line `endline` in file `filepath`.
+ * The location spans column `sc` of line `sl` to
+ * column `ec` of line `el` in file `path`.
* For more information, see
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll
index 51da69e9d64..dc2cb7e7d00 100644
--- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll
+++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll
@@ -166,17 +166,7 @@ private predicate uncertainVariableUpdate(TrackedVar v, ControlFlowNode n, Basic
uncertainVariableUpdate(v.getQualifier(), n, b, i)
}
-private module SsaInput implements SsaImplCommon::InputSig {
- private import java as J
-
- class BasicBlock = J::BasicBlock;
-
- class ControlFlowNode = J::ControlFlowNode;
-
- BasicBlock getImmediateBasicBlockDominator(BasicBlock bb) { result.immediatelyDominates(bb) }
-
- BasicBlock getABasicBlockSuccessor(BasicBlock bb) { result = bb.getASuccessor() }
-
+private module SsaInput implements SsaImplCommon::InputSig {
class SourceVariable = SsaSourceVariable;
/**
@@ -218,7 +208,7 @@ private module SsaInput implements SsaImplCommon::InputSig {
}
}
-import SsaImplCommon::Make as Impl
+import SsaImplCommon::Make as Impl
final class Definition = Impl::Definition;
diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll
index 8789661af7d..6363b8f7ed3 100644
--- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll
+++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll
@@ -204,7 +204,7 @@ private module Impl {
/** Gets the character value of expression `e`. */
string getCharValue(Expr e) { result = e.(CharacterLiteral).getValue() }
- /** Gets the constant `float` value of non-`ConstantIntegerExpr` expressions. */
+ /** Gets the constant `float` value of non-`ConstantIntegerExpr` expression `e`. */
float getNonIntegerValue(Expr e) {
result = e.(LongLiteral).getValue().toFloat() or
result = e.(FloatLiteral).getValue().toFloat() or
@@ -256,12 +256,12 @@ private module Impl {
exists(EnhancedForStmt for | def = for.getVariable())
}
- /** Returns the operand of the operation if `def` is a decrement. */
+ /** Returns the operand of the operation if `e` is a decrement. */
Expr getDecrementOperand(Element e) {
result = e.(PostDecExpr).getExpr() or result = e.(PreDecExpr).getExpr()
}
- /** Returns the operand of the operation if `def` is an increment. */
+ /** Returns the operand of the operation if `e` is an increment. */
Expr getIncrementOperand(Element e) {
result = e.(PostIncExpr).getExpr() or result = e.(PreIncExpr).getExpr()
}
diff --git a/java/ql/lib/semmle/code/java/frameworks/Mockito.qll b/java/ql/lib/semmle/code/java/frameworks/Mockito.qll
index 1a8d987a38e..a8559060d30 100644
--- a/java/ql/lib/semmle/code/java/frameworks/Mockito.qll
+++ b/java/ql/lib/semmle/code/java/frameworks/Mockito.qll
@@ -223,10 +223,10 @@ class MockitoInjectedField extends MockitoAnnotatedField {
// If there is no initializer for this field, and there is a most mockable constructor,
// then we are doing a parameterized injection of mocks into a most mockable constructor.
result = mockInjectedClass.getAMostMockableConstructor()
- else
- if this.usingPropertyInjection()
- then
- // We will call the no-arg constructor if the field wasn't initialized.
+ else (
+ this.usingPropertyInjection() and
+ // We will call the no-arg constructor if the field wasn't initialized.
+ (
not exists(this.getInitializer()) and
result = mockInjectedClass.getNoArgsConstructor()
or
@@ -241,9 +241,8 @@ class MockitoInjectedField extends MockitoAnnotatedField {
// once, but we instead assume that there are sufficient mocks to go around.
mockedField.getType().(RefType).getAnAncestor() = result.getParameterType(0)
)
- else
- // There's no instance, and no no-arg constructor we can call, so injection fails.
- none()
+ )
+ )
)
}
@@ -253,18 +252,16 @@ class MockitoInjectedField extends MockitoAnnotatedField {
* Field injection only occurs if property injection and not constructor injection is used.
*/
Field getASetField() {
- if this.usingPropertyInjection()
- then
- result = this.getMockInjectedClass().getASetField() and
- exists(MockitoMockedField mockedField |
- mockedField.getDeclaringType() = this.getDeclaringType() and
- mockedField.isValid()
- |
- // We make a simplifying assumption here - in theory, each mock can only be injected
- // once, but we instead assume that there are sufficient mocks to go around.
- mockedField.getType().(RefType).getAnAncestor() = result.getType()
- )
- else none()
+ this.usingPropertyInjection() and
+ result = this.getMockInjectedClass().getASetField() and
+ exists(MockitoMockedField mockedField |
+ mockedField.getDeclaringType() = this.getDeclaringType() and
+ mockedField.isValid()
+ |
+ // We make a simplifying assumption here - in theory, each mock can only be injected
+ // once, but we instead assume that there are sufficient mocks to go around.
+ mockedField.getType().(RefType).getAnAncestor() = result.getType()
+ )
}
}
diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll
index 2b003b3c94e..d59976c0c6c 100644
--- a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll
+++ b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJB.qll
@@ -35,14 +35,14 @@ class SessionEjb extends EJB {
// Either the EJB does not declare any business interfaces explicitly
// and implements a single interface candidate,
// which is then considered to be the business interface...
- count(this.getAnExplicitBusinessInterface()) = 0 and
+ not exists(this.getAnExplicitBusinessInterface()) and
count(this.getAnImplementedBusinessInterfaceCandidate()) = 1 and
result = this.getAnImplementedBusinessInterfaceCandidate()
or
// ...or each business interface needs to be declared explicitly.
(
count(this.getAnImplementedBusinessInterfaceCandidate()) != 1 or
- count(this.getAnExplicitBusinessInterface()) != 0
+ exists(this.getAnExplicitBusinessInterface())
) and
result = this.getAnExplicitBusinessInterface()
}
diff --git a/java/ql/lib/semmle/code/java/security/CleartextStorageAndroidFilesystemQuery.qll b/java/ql/lib/semmle/code/java/security/CleartextStorageAndroidFilesystemQuery.qll
index 98acdbc1c55..89867398148 100644
--- a/java/ql/lib/semmle/code/java/security/CleartextStorageAndroidFilesystemQuery.qll
+++ b/java/ql/lib/semmle/code/java/security/CleartextStorageAndroidFilesystemQuery.qll
@@ -55,7 +55,7 @@ private predicate isVarargs(Argument arg, DataFlow::ImplicitVarargsArray varargs
arg.isVararg() and arg.getCall() = varargs.getCall()
}
-/** Holds if `store` closes `file`. */
+/** Holds if `closeCall` closes `file`. */
private predicate closesFile(DataFlow::Node file, Call closeCall) {
closeCall.getCallee() instanceof CloseFileMethod and
if closeCall.getCallee().isStatic()
diff --git a/java/ql/lib/semmle/code/java/security/FileWritable.qll b/java/ql/lib/semmle/code/java/security/FileWritable.qll
index d1833bf64d4..a5efad31bcb 100644
--- a/java/ql/lib/semmle/code/java/security/FileWritable.qll
+++ b/java/ql/lib/semmle/code/java/security/FileWritable.qll
@@ -89,7 +89,7 @@ private VarAccess getFileForPathConversion(Expr pathExpr) {
}
/**
- * Holds if `fileAccess` is used in the `setWorldWritableExpr` to set the file to be world writable.
+ * Holds if `fileAccess` is used in the `setWorldWritable` to set the file to be world writable.
*/
private predicate fileSetWorldWritable(VarAccess fileAccess, Expr setWorldWritable) {
// Calls to `File.setWritable(.., false)`.
diff --git a/java/ql/lib/semmle/code/java/security/TempDirUtils.qll b/java/ql/lib/semmle/code/java/security/TempDirUtils.qll
index 3d1623fa334..21e289ef1ad 100644
--- a/java/ql/lib/semmle/code/java/security/TempDirUtils.qll
+++ b/java/ql/lib/semmle/code/java/security/TempDirUtils.qll
@@ -26,7 +26,8 @@ class MethodFileCreateTempFile extends Method {
}
/**
- * Holds if `expDest` is some constructor call `new java.io.File(expSource)`, where the specific `File` constructor being used has `paramCount` parameters.
+ * Holds if `expSource` is an argument to a constructor call `exprDest` (constructor from `java.io.File`), where
+ * the specific `File` constructor being used has `paramCount` parameters.
*/
predicate isFileConstructorArgument(Expr expSource, Expr exprDest, int paramCount) {
exists(ConstructorCall construtorCall |
diff --git a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll
index ce0f649eff3..f5968898adc 100644
--- a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll
+++ b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll
@@ -552,7 +552,7 @@ private DataFlow::Node getASafelyConfiguredParser() {
}
/**
- * Holds if `parseMethodQualifierExpr` is a `jodd.json.JsonParser` instance that is configured unsafely
+ * Holds if `parserExpr` is a `jodd.json.JsonParser` instance that is configured unsafely
* and which never appears to be configured safely.
*/
private predicate joddJsonParserConfiguredUnsafely(Expr parserExpr) {
diff --git a/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/old.dbscheme b/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/old.dbscheme
new file mode 100644
index 00000000000..1b8f5f4c747
--- /dev/null
+++ b/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/old.dbscheme
@@ -0,0 +1,1236 @@
+/**
+ * An invocation of the compiler. Note that more than one file may be
+ * compiled per invocation. For example, this command compiles three
+ * source files:
+ *
+ * javac A.java B.java C.java
+ *
+ * The `id` simply identifies the invocation, while `cwd` is the working
+ * directory from which the compiler was invoked.
+ */
+compilations(
+ /**
+ * An invocation of the compiler. Note that more than one file may
+ * be compiled per invocation. For example, this command compiles
+ * three source files:
+ *
+ * javac A.java B.java C.java
+ */
+ unique int id : @compilation,
+ int kind: int ref,
+ string cwd : string ref,
+ string name : string ref
+);
+
+case @compilation.kind of
+ 1 = @javacompilation
+| 2 = @kotlincompilation
+;
+
+compilation_started(
+ int id : @compilation ref
+)
+
+compilation_info(
+ int id : @compilation ref,
+ string info_key: string ref,
+ string info_value: string ref
+)
+
+/**
+ * The arguments that were passed to the extractor for a compiler
+ * invocation. If `id` is for the compiler invocation
+ *
+ * javac A.java B.java C.java
+ *
+ * then typically there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | *path to extractor*
+ * 1 | `--javac-args`
+ * 2 | A.java
+ * 3 | B.java
+ * 4 | C.java
+ */
+#keyset[id, num]
+compilation_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The expanded arguments that were passed to the extractor for a
+ * compiler invocation. This is similar to `compilation_args`, but
+ * for a `@@@someFile` argument, it includes the arguments from that
+ * file, rather than just taking the argument literally.
+ */
+#keyset[id, num]
+compilation_expanded_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The source files that are compiled by a compiler invocation.
+ * If `id` is for the compiler invocation
+ *
+ * javac A.java B.java C.java
+ *
+ * then there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | A.java
+ * 1 | B.java
+ * 2 | C.java
+ */
+#keyset[id, num]
+compilation_compiling_files(
+ int id : @compilation ref,
+ int num : int ref,
+ int file : @file ref
+);
+
+/**
+ * For each file recorded in `compilation_compiling_files`,
+ * there will be a corresponding row in
+ * `compilation_compiling_files_completed` once extraction
+ * of that file is complete. The `result` will indicate the
+ * extraction result:
+ *
+ * 0: Successfully extracted
+ * 1: Errors were encountered, but extraction recovered
+ * 2: Errors were encountered, and extraction could not recover
+ */
+#keyset[id, num]
+compilation_compiling_files_completed(
+ int id : @compilation ref,
+ int num : int ref,
+ int result : int ref
+);
+
+/**
+ * The time taken by the extractor for a compiler invocation.
+ *
+ * For each file `num`, there will be rows for
+ *
+ * kind | seconds
+ * ---- | ---
+ * 1 | CPU seconds used by the extractor frontend
+ * 2 | Elapsed seconds during the extractor frontend
+ * 3 | CPU seconds used by the extractor backend
+ * 4 | Elapsed seconds during the extractor backend
+ */
+#keyset[id, num, kind]
+compilation_time(
+ int id : @compilation ref,
+ int num : int ref,
+ /* kind:
+ 1 = frontend_cpu_seconds
+ 2 = frontend_elapsed_seconds
+ 3 = extractor_cpu_seconds
+ 4 = extractor_elapsed_seconds
+ */
+ int kind : int ref,
+ float seconds : float ref
+);
+
+/**
+ * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed
+ * time (respectively) that the original compilation (not the extraction)
+ * took for compiler invocation `id`.
+ */
+compilation_compiler_times(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref
+);
+
+/**
+ * If extraction was successful, then `cpu_seconds` and
+ * `elapsed_seconds` are the CPU time and elapsed time (respectively)
+ * that extraction took for compiler invocation `id`.
+ * The `result` will indicate the extraction result:
+ *
+ * 0: Successfully extracted
+ * 1: Errors were encountered, but extraction recovered
+ * 2: Errors were encountered, and extraction could not recover
+ */
+compilation_finished(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref,
+ int result : int ref
+);
+
+diagnostics(
+ unique int id: @diagnostic,
+ string generated_by: string ref, // TODO: Sync this with the other languages?
+ int severity: int ref,
+ string error_tag: string ref,
+ string error_message: string ref,
+ string full_error_message: string ref,
+ int location: @location_default ref
+);
+
+/**
+ * An error or warning generated by the extractor.
+ * The diagnostic message `diagnostic` was generated during compiler
+ * invocation `compilation`, and is the `file_number_diagnostic_number`th
+ * message generated while extracting the `file_number`th file of that
+ * invocation.
+ */
+#keyset[compilation, file_number, file_number_diagnostic_number]
+diagnostic_for(
+ unique int diagnostic : @diagnostic ref,
+ int compilation : @compilation ref,
+ int file_number : int ref,
+ int file_number_diagnostic_number : int ref
+);
+
+/*
+ * External artifacts
+ */
+
+externalData(
+ int id : @externalDataElement,
+ string path : string ref,
+ int column: int ref,
+ string value : string ref
+);
+
+sourceLocationPrefix(
+ string prefix : string ref
+);
+
+databaseMetadata(
+ string metadataKey : string ref,
+ string value : string ref
+);
+
+overlayChangedFiles(
+ string path: string ref
+);
+
+/*
+ * SMAP
+ */
+
+smap_header(
+ int outputFileId: @file ref,
+ string outputFilename: string ref,
+ string defaultStratum: string ref
+);
+
+smap_files(
+ int outputFileId: @file ref,
+ string stratum: string ref,
+ int inputFileNum: int ref,
+ string inputFileName: string ref,
+ int inputFileId: @file ref
+);
+
+smap_lines(
+ int outputFileId: @file ref,
+ string stratum: string ref,
+ int inputFileNum: int ref,
+ int inputStartLine: int ref,
+ int inputLineCount: int ref,
+ int outputStartLine: int ref,
+ int outputLineIncrement: int ref
+);
+
+/*
+ * Locations and files
+ */
+
+@location = @location_default ;
+
+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
+);
+
+hasLocation(
+ int locatableid: @locatable ref,
+ int id: @location ref
+);
+
+@sourceline = @locatable ;
+
+#keyset[element_id]
+numlines(
+ int element_id: @sourceline ref,
+ int num_lines: int ref,
+ int num_code: int ref,
+ int num_comment: int ref
+);
+
+files(
+ unique int id: @file,
+ string name: string ref
+);
+
+folders(
+ unique int id: @folder,
+ string name: string ref
+);
+
+@container = @folder | @file
+
+containerparent(
+ int parent: @container ref,
+ unique int child: @container ref
+);
+
+/*
+ * Java
+ */
+
+cupackage(
+ unique int id: @file ref,
+ int packageid: @package ref
+);
+
+#keyset[fileid,keyName]
+jarManifestMain(
+ int fileid: @file ref,
+ string keyName: string ref,
+ string value: string ref
+);
+
+#keyset[fileid,entryName,keyName]
+jarManifestEntries(
+ int fileid: @file ref,
+ string entryName: string ref,
+ string keyName: string ref,
+ string value: string ref
+);
+
+packages(
+ unique int id: @package,
+ string nodeName: string ref
+);
+
+primitives(
+ unique int id: @primitive,
+ string nodeName: string ref
+);
+
+modifiers(
+ unique int id: @modifier,
+ string nodeName: string ref
+);
+
+/**
+ * An errortype is used when the extractor is unable to extract a type
+ * correctly for some reason.
+ */
+error_type(
+ unique int id: @errortype
+);
+
+classes_or_interfaces(
+ unique int id: @classorinterface,
+ string nodeName: string ref,
+ int parentid: @package ref,
+ int sourceid: @classorinterface ref
+);
+
+file_class(
+ int id: @classorinterface ref
+);
+
+class_object(
+ unique int id: @classorinterface ref,
+ unique int instance: @field ref
+);
+
+type_companion_object(
+ unique int id: @classorinterface ref,
+ unique int instance: @field ref,
+ unique int companion_object: @classorinterface ref
+);
+
+kt_nullable_types(
+ unique int id: @kt_nullable_type,
+ int classid: @reftype ref
+)
+
+kt_notnull_types(
+ unique int id: @kt_notnull_type,
+ int classid: @reftype ref
+)
+
+kt_type_alias(
+ unique int id: @kt_type_alias,
+ string name: string ref,
+ int kttypeid: @kt_type ref
+)
+
+@kt_type = @kt_nullable_type | @kt_notnull_type
+
+isInterface(
+ unique int id: @classorinterface ref
+);
+
+isRecord(
+ unique int id: @classorinterface ref
+);
+
+fielddecls(
+ unique int id: @fielddecl,
+ int parentid: @reftype ref
+);
+
+#keyset[fieldId] #keyset[fieldDeclId,pos]
+fieldDeclaredIn(
+ int fieldId: @field ref,
+ int fieldDeclId: @fielddecl ref,
+ int pos: int ref
+);
+
+fields(
+ unique int id: @field,
+ string nodeName: string ref,
+ int typeid: @type ref,
+ int parentid: @reftype ref
+);
+
+fieldsKotlinType(
+ unique int id: @field ref,
+ int kttypeid: @kt_type ref
+);
+
+constrs(
+ unique int id: @constructor,
+ string nodeName: string ref,
+ string signature: string ref,
+ int typeid: @type ref,
+ int parentid: @reftype ref,
+ int sourceid: @constructor ref
+);
+
+constrsKotlinType(
+ unique int id: @constructor ref,
+ int kttypeid: @kt_type ref
+);
+
+methods(
+ unique int id: @method,
+ string nodeName: string ref,
+ string signature: string ref,
+ int typeid: @type ref,
+ int parentid: @reftype ref,
+ int sourceid: @method ref
+);
+
+methodsKotlinType(
+ unique int id: @method ref,
+ int kttypeid: @kt_type ref
+);
+
+#keyset[parentid,pos]
+params(
+ unique int id: @param,
+ int typeid: @type ref,
+ int pos: int ref,
+ int parentid: @callable ref,
+ int sourceid: @param ref
+);
+
+paramsKotlinType(
+ unique int id: @param ref,
+ int kttypeid: @kt_type ref
+);
+
+paramName(
+ unique int id: @param ref,
+ string nodeName: string ref
+);
+
+isVarargsParam(
+ int param: @param ref
+);
+
+exceptions(
+ unique int id: @exception,
+ int typeid: @type ref,
+ int parentid: @callable ref
+);
+
+isAnnotType(
+ int interfaceid: @classorinterface ref
+);
+
+isAnnotElem(
+ int methodid: @method ref
+);
+
+annotValue(
+ int parentid: @annotation ref,
+ int id2: @method ref,
+ unique int value: @expr ref
+);
+
+isEnumType(
+ int classid: @classorinterface ref
+);
+
+isEnumConst(
+ int fieldid: @field ref
+);
+
+#keyset[parentid,pos]
+typeVars(
+ unique int id: @typevariable,
+ string nodeName: string ref,
+ int pos: int ref,
+ int parentid: @classorinterfaceorcallable ref
+);
+
+wildcards(
+ unique int id: @wildcard,
+ string nodeName: string ref,
+ int kind: int ref
+);
+
+#keyset[parentid,pos]
+typeBounds(
+ unique int id: @typebound,
+ int typeid: @reftype ref,
+ int pos: int ref,
+ int parentid: @boundedtype ref
+);
+
+#keyset[parentid,pos]
+typeArgs(
+ int argumentid: @reftype ref,
+ int pos: int ref,
+ int parentid: @classorinterfaceorcallable ref
+);
+
+isParameterized(
+ int memberid: @member ref
+);
+
+isRaw(
+ int memberid: @member ref
+);
+
+#keyset[classid] #keyset[parent]
+isAnonymClass(
+ int classid: @classorinterface ref,
+ int parent: @classinstancexpr ref
+);
+
+#keyset[typeid] #keyset[parent]
+isLocalClassOrInterface(
+ int typeid: @classorinterface ref,
+ int parent: @localtypedeclstmt ref
+);
+
+isDefConstr(
+ int constructorid: @constructor ref
+);
+
+#keyset[exprId]
+lambdaKind(
+ int exprId: @lambdaexpr ref,
+ int bodyKind: int ref
+);
+
+isCanonicalConstr(
+ int constructorid: @constructor ref
+);
+
+arrays(
+ unique int id: @array,
+ string nodeName: string ref,
+ int elementtypeid: @type ref,
+ int dimension: int ref,
+ int componenttypeid: @type ref
+);
+
+enclInReftype(
+ unique int child: @reftype ref,
+ int parent: @reftype ref
+);
+
+extendsReftype(
+ int id1: @reftype ref,
+ int id2: @classorinterface ref
+);
+
+implInterface(
+ int id1: @classorarray ref,
+ int id2: @classorinterface ref
+);
+
+permits(
+ int id1: @classorinterface ref,
+ int id2: @classorinterface ref
+);
+
+hasModifier(
+ int id1: @modifiable ref,
+ int id2: @modifier ref
+);
+
+imports(
+ unique int id: @import,
+ int holder: @classorinterfaceorpackage ref,
+ string name: string ref,
+ int kind: int ref
+);
+
+#keyset[parent,idx]
+stmts(
+ unique int id: @stmt,
+ int kind: int ref,
+ int parent: @stmtparent ref,
+ int idx: int ref,
+ int bodydecl: @callable ref
+);
+
+@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr;
+
+case @stmt.kind of
+ 0 = @block
+| 1 = @ifstmt
+| 2 = @forstmt
+| 3 = @enhancedforstmt
+| 4 = @whilestmt
+| 5 = @dostmt
+| 6 = @trystmt
+| 7 = @switchstmt
+| 8 = @synchronizedstmt
+| 9 = @returnstmt
+| 10 = @throwstmt
+| 11 = @breakstmt
+| 12 = @continuestmt
+| 13 = @emptystmt
+| 14 = @exprstmt
+| 15 = @labeledstmt
+| 16 = @assertstmt
+| 17 = @localvariabledeclstmt
+| 18 = @localtypedeclstmt
+| 19 = @constructorinvocationstmt
+| 20 = @superconstructorinvocationstmt
+| 21 = @case
+| 22 = @catchclause
+| 23 = @yieldstmt
+| 24 = @errorstmt
+| 25 = @whenbranch
+;
+
+#keyset[parent,idx]
+exprs(
+ unique int id: @expr,
+ int kind: int ref,
+ int typeid: @type ref,
+ int parent: @exprparent ref,
+ int idx: int ref
+);
+
+exprsKotlinType(
+ unique int id: @expr ref,
+ int kttypeid: @kt_type ref
+);
+
+callableEnclosingExpr(
+ unique int id: @expr ref,
+ int callable_id: @callable ref
+);
+
+statementEnclosingExpr(
+ unique int id: @expr ref,
+ int statement_id: @stmt ref
+);
+
+isParenthesized(
+ unique int id: @expr ref,
+ int parentheses: int ref
+);
+
+case @expr.kind of
+ 1 = @arrayaccess
+| 2 = @arraycreationexpr
+| 3 = @arrayinit
+| 4 = @assignexpr
+| 5 = @assignaddexpr
+| 6 = @assignsubexpr
+| 7 = @assignmulexpr
+| 8 = @assigndivexpr
+| 9 = @assignremexpr
+| 10 = @assignandexpr
+| 11 = @assignorexpr
+| 12 = @assignxorexpr
+| 13 = @assignlshiftexpr
+| 14 = @assignrshiftexpr
+| 15 = @assignurshiftexpr
+| 16 = @booleanliteral
+| 17 = @integerliteral
+| 18 = @longliteral
+| 19 = @floatingpointliteral
+| 20 = @doubleliteral
+| 21 = @characterliteral
+| 22 = @stringliteral
+| 23 = @nullliteral
+| 24 = @mulexpr
+| 25 = @divexpr
+| 26 = @remexpr
+| 27 = @addexpr
+| 28 = @subexpr
+| 29 = @lshiftexpr
+| 30 = @rshiftexpr
+| 31 = @urshiftexpr
+| 32 = @andbitexpr
+| 33 = @orbitexpr
+| 34 = @xorbitexpr
+| 35 = @andlogicalexpr
+| 36 = @orlogicalexpr
+| 37 = @ltexpr
+| 38 = @gtexpr
+| 39 = @leexpr
+| 40 = @geexpr
+| 41 = @eqexpr
+| 42 = @neexpr
+| 43 = @postincexpr
+| 44 = @postdecexpr
+| 45 = @preincexpr
+| 46 = @predecexpr
+| 47 = @minusexpr
+| 48 = @plusexpr
+| 49 = @bitnotexpr
+| 50 = @lognotexpr
+| 51 = @castexpr
+| 52 = @newexpr
+| 53 = @conditionalexpr
+| 54 = @parexpr // deprecated
+| 55 = @instanceofexpr
+| 56 = @localvariabledeclexpr
+| 57 = @typeliteral
+| 58 = @thisaccess
+| 59 = @superaccess
+| 60 = @varaccess
+| 61 = @methodaccess
+| 62 = @unannotatedtypeaccess
+| 63 = @arraytypeaccess
+| 64 = @packageaccess
+| 65 = @wildcardtypeaccess
+| 66 = @declannotation
+| 67 = @uniontypeaccess
+| 68 = @lambdaexpr
+| 69 = @memberref
+| 70 = @annotatedtypeaccess
+| 71 = @typeannotation
+| 72 = @intersectiontypeaccess
+| 73 = @switchexpr
+| 74 = @errorexpr
+| 75 = @whenexpr
+| 76 = @getclassexpr
+| 77 = @safecastexpr
+| 78 = @implicitcastexpr
+| 79 = @implicitnotnullexpr
+| 80 = @implicitcoerciontounitexpr
+| 81 = @notinstanceofexpr
+| 82 = @stmtexpr
+| 83 = @stringtemplateexpr
+| 84 = @notnullexpr
+| 85 = @unsafecoerceexpr
+| 86 = @valueeqexpr
+| 87 = @valueneexpr
+| 88 = @propertyref
+| 89 = @recordpatternexpr
+;
+
+/** Holds if this `when` expression was written as an `if` expression. */
+when_if(unique int id: @whenexpr ref);
+
+/** Holds if this `when` branch was written as an `else` branch. */
+when_branch_else(unique int id: @whenbranch ref);
+
+@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref
+
+@annotation = @declannotation | @typeannotation
+@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess
+
+@assignment = @assignexpr
+ | @assignop;
+
+@unaryassignment = @postincexpr
+ | @postdecexpr
+ | @preincexpr
+ | @predecexpr;
+
+@assignop = @assignaddexpr
+ | @assignsubexpr
+ | @assignmulexpr
+ | @assigndivexpr
+ | @assignremexpr
+ | @assignandexpr
+ | @assignorexpr
+ | @assignxorexpr
+ | @assignlshiftexpr
+ | @assignrshiftexpr
+ | @assignurshiftexpr;
+
+@literal = @booleanliteral
+ | @integerliteral
+ | @longliteral
+ | @floatingpointliteral
+ | @doubleliteral
+ | @characterliteral
+ | @stringliteral
+ | @nullliteral;
+
+@binaryexpr = @mulexpr
+ | @divexpr
+ | @remexpr
+ | @addexpr
+ | @subexpr
+ | @lshiftexpr
+ | @rshiftexpr
+ | @urshiftexpr
+ | @andbitexpr
+ | @orbitexpr
+ | @xorbitexpr
+ | @andlogicalexpr
+ | @orlogicalexpr
+ | @ltexpr
+ | @gtexpr
+ | @leexpr
+ | @geexpr
+ | @eqexpr
+ | @neexpr
+ | @valueeqexpr
+ | @valueneexpr;
+
+@unaryexpr = @postincexpr
+ | @postdecexpr
+ | @preincexpr
+ | @predecexpr
+ | @minusexpr
+ | @plusexpr
+ | @bitnotexpr
+ | @lognotexpr
+ | @notnullexpr;
+
+@caller = @classinstancexpr
+ | @methodaccess
+ | @constructorinvocationstmt
+ | @superconstructorinvocationstmt;
+
+callableBinding(
+ unique int callerid: @caller ref,
+ int callee: @callable ref
+);
+
+memberRefBinding(
+ unique int id: @expr ref,
+ int callable: @callable ref
+);
+
+propertyRefGetBinding(
+ unique int id: @expr ref,
+ int getter: @callable ref
+);
+
+propertyRefFieldBinding(
+ unique int id: @expr ref,
+ int field: @field ref
+);
+
+propertyRefSetBinding(
+ unique int id: @expr ref,
+ int setter: @callable ref
+);
+
+@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @classorinterface | @param | @localvar | @typevariable;
+
+variableBinding(
+ unique int expr: @varaccess ref,
+ int variable: @variable ref
+);
+
+@variable = @localscopevariable | @field;
+
+@localscopevariable = @localvar | @param;
+
+localvars(
+ unique int id: @localvar,
+ string nodeName: string ref,
+ int typeid: @type ref,
+ int parentid: @localvariabledeclexpr ref
+);
+
+localvarsKotlinType(
+ unique int id: @localvar ref,
+ int kttypeid: @kt_type ref
+);
+
+@namedexprorstmt = @breakstmt
+ | @continuestmt
+ | @labeledstmt
+ | @literal;
+
+namestrings(
+ string name: string ref,
+ string value: string ref,
+ unique int parent: @namedexprorstmt ref
+);
+
+/*
+ * Modules
+ */
+
+#keyset[name]
+modules(
+ unique int id: @module,
+ string name: string ref
+);
+
+isOpen(
+ int id: @module ref
+);
+
+#keyset[fileId]
+cumodule(
+ int fileId: @file ref,
+ int moduleId: @module ref
+);
+
+@directive = @requires
+ | @exports
+ | @opens
+ | @uses
+ | @provides
+
+#keyset[directive]
+directives(
+ int id: @module ref,
+ int directive: @directive ref
+);
+
+requires(
+ unique int id: @requires,
+ int target: @module ref
+);
+
+isTransitive(
+ int id: @requires ref
+);
+
+isStatic(
+ int id: @requires ref
+);
+
+exports(
+ unique int id: @exports,
+ int target: @package ref
+);
+
+exportsTo(
+ int id: @exports ref,
+ int target: @module ref
+);
+
+opens(
+ unique int id: @opens,
+ int target: @package ref
+);
+
+opensTo(
+ int id: @opens ref,
+ int target: @module ref
+);
+
+uses(
+ unique int id: @uses,
+ string serviceInterface: string ref
+);
+
+provides(
+ unique int id: @provides,
+ string serviceInterface: string ref
+);
+
+providesWith(
+ int id: @provides ref,
+ string serviceImpl: string ref
+);
+
+isNullDefaultCase(
+ int id: @case ref
+);
+
+/*
+ * Javadoc
+ */
+
+javadoc(
+ unique int id: @javadoc
+);
+
+isNormalComment(
+ int commentid : @javadoc ref
+);
+
+isEolComment(
+ int commentid : @javadoc ref
+);
+
+hasJavadoc(
+ int documentableid: @member ref,
+ int javadocid: @javadoc ref
+);
+
+#keyset[parentid,idx]
+javadocTag(
+ unique int id: @javadocTag,
+ string name: string ref,
+ int parentid: @javadocParent ref,
+ int idx: int ref
+);
+
+#keyset[parentid,idx]
+javadocText(
+ unique int id: @javadocText,
+ string text: string ref,
+ int parentid: @javadocParent ref,
+ int idx: int ref
+);
+
+@javadocParent = @javadoc | @javadocTag;
+@javadocElement = @javadocTag | @javadocText;
+
+@classorinterfaceorpackage = @classorinterface | @package;
+@classorinterfaceorcallable = @classorinterface | @callable;
+@boundedtype = @typevariable | @wildcard;
+@reftype = @classorinterface | @array | @boundedtype | @errortype;
+@classorarray = @classorinterface | @array;
+@type = @primitive | @reftype;
+@callable = @method | @constructor;
+
+/** A program element that has a name. */
+@element = @package | @modifier | @annotation | @errortype |
+ @locatableElement;
+
+@locatableElement = @file | @primitive | @classorinterface | @method | @constructor | @param | @exception | @field |
+ @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias |
+ @kt_property;
+
+@modifiable = @member_modifiable| @param | @localvar | @typevariable;
+
+@member_modifiable = @classorinterface | @method | @constructor | @field | @kt_property;
+
+@member = @method | @constructor | @field | @reftype ;
+
+/** A program element that has a location. */
+@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment |
+ @locatableElement;
+
+@top = @element | @locatable | @folder;
+
+/*
+ * 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;
+
+/*
+ * configuration files with key value pairs
+ */
+
+configs(
+ unique int id: @config
+);
+
+configNames(
+ unique int id: @configName,
+ int config: @config ref,
+ string name: string ref
+);
+
+configValues(
+ unique int id: @configValue,
+ int config: @config ref,
+ string value: string ref
+);
+
+configLocations(
+ int locatable: @configLocatable ref,
+ int location: @location_default ref
+);
+
+@configLocatable = @config | @configName | @configValue;
+
+ktComments(
+ unique int id: @ktcomment,
+ int kind: int ref,
+ string text : string ref
+)
+
+ktCommentSections(
+ unique int id: @ktcommentsection,
+ int comment: @ktcomment ref,
+ string content : string ref
+)
+
+ktCommentSectionNames(
+ unique int id: @ktcommentsection ref,
+ string name : string ref
+)
+
+ktCommentSectionSubjectNames(
+ unique int id: @ktcommentsection ref,
+ string subjectname : string ref
+)
+
+#keyset[id, owner]
+ktCommentOwners(
+ int id: @ktcomment ref,
+ int owner: @top ref
+)
+
+ktExtensionFunctions(
+ unique int id: @method ref,
+ int typeid: @type ref,
+ int kttypeid: @kt_type ref
+)
+
+ktProperties(
+ unique int id: @kt_property,
+ string nodeName: string ref
+)
+
+ktPropertyGetters(
+ unique int id: @kt_property ref,
+ int getter: @method ref
+)
+
+ktPropertySetters(
+ unique int id: @kt_property ref,
+ int setter: @method ref
+)
+
+ktPropertyBackingFields(
+ unique int id: @kt_property ref,
+ int backingField: @field ref
+)
+
+ktSyntheticBody(
+ unique int id: @callable ref,
+ int kind: int ref
+ // 1: ENUM_VALUES
+ // 2: ENUM_VALUEOF
+ // 3: ENUM_ENTRIES
+)
+
+ktLocalFunction(
+ unique int id: @method ref
+)
+
+ktInitializerAssignment(
+ unique int id: @assignexpr ref
+)
+
+ktPropertyDelegates(
+ unique int id: @kt_property ref,
+ unique int variableId: @variable ref
+)
+
+/**
+ * If `id` is a compiler generated element, then the kind indicates the
+ * reason that the compiler generated it.
+ * See `Element.compilerGeneratedReason()` for an explanation of what
+ * each `kind` means.
+ */
+compiler_generated(
+ unique int id: @element ref,
+ int kind: int ref
+)
+
+ktFunctionOriginalNames(
+ unique int id: @method ref,
+ string name: string ref
+)
+
+ktDataClasses(
+ unique int id: @classorinterface ref
+)
diff --git a/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/semmlecode.dbscheme b/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/semmlecode.dbscheme
new file mode 100644
index 00000000000..9f6026c4009
--- /dev/null
+++ b/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/semmlecode.dbscheme
@@ -0,0 +1,1240 @@
+/**
+ * An invocation of the compiler. Note that more than one file may be
+ * compiled per invocation. For example, this command compiles three
+ * source files:
+ *
+ * javac A.java B.java C.java
+ *
+ * The `id` simply identifies the invocation, while `cwd` is the working
+ * directory from which the compiler was invoked.
+ */
+compilations(
+ /**
+ * An invocation of the compiler. Note that more than one file may
+ * be compiled per invocation. For example, this command compiles
+ * three source files:
+ *
+ * javac A.java B.java C.java
+ */
+ unique int id : @compilation,
+ int kind: int ref,
+ string cwd : string ref,
+ string name : string ref
+);
+
+case @compilation.kind of
+ 1 = @javacompilation
+| 2 = @kotlincompilation
+;
+
+compilation_started(
+ int id : @compilation ref
+)
+
+compilation_info(
+ int id : @compilation ref,
+ string info_key: string ref,
+ string info_value: string ref
+)
+
+/**
+ * The arguments that were passed to the extractor for a compiler
+ * invocation. If `id` is for the compiler invocation
+ *
+ * javac A.java B.java C.java
+ *
+ * then typically there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | *path to extractor*
+ * 1 | `--javac-args`
+ * 2 | A.java
+ * 3 | B.java
+ * 4 | C.java
+ */
+#keyset[id, num]
+compilation_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The expanded arguments that were passed to the extractor for a
+ * compiler invocation. This is similar to `compilation_args`, but
+ * for a `@@@someFile` argument, it includes the arguments from that
+ * file, rather than just taking the argument literally.
+ */
+#keyset[id, num]
+compilation_expanded_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The source files that are compiled by a compiler invocation.
+ * If `id` is for the compiler invocation
+ *
+ * javac A.java B.java C.java
+ *
+ * then there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | A.java
+ * 1 | B.java
+ * 2 | C.java
+ */
+#keyset[id, num]
+compilation_compiling_files(
+ int id : @compilation ref,
+ int num : int ref,
+ int file : @file ref
+);
+
+/**
+ * For each file recorded in `compilation_compiling_files`,
+ * there will be a corresponding row in
+ * `compilation_compiling_files_completed` once extraction
+ * of that file is complete. The `result` will indicate the
+ * extraction result:
+ *
+ * 0: Successfully extracted
+ * 1: Errors were encountered, but extraction recovered
+ * 2: Errors were encountered, and extraction could not recover
+ */
+#keyset[id, num]
+compilation_compiling_files_completed(
+ int id : @compilation ref,
+ int num : int ref,
+ int result : int ref
+);
+
+/**
+ * The time taken by the extractor for a compiler invocation.
+ *
+ * For each file `num`, there will be rows for
+ *
+ * kind | seconds
+ * ---- | ---
+ * 1 | CPU seconds used by the extractor frontend
+ * 2 | Elapsed seconds during the extractor frontend
+ * 3 | CPU seconds used by the extractor backend
+ * 4 | Elapsed seconds during the extractor backend
+ */
+#keyset[id, num, kind]
+compilation_time(
+ int id : @compilation ref,
+ int num : int ref,
+ /* kind:
+ 1 = frontend_cpu_seconds
+ 2 = frontend_elapsed_seconds
+ 3 = extractor_cpu_seconds
+ 4 = extractor_elapsed_seconds
+ */
+ int kind : int ref,
+ float seconds : float ref
+);
+
+/**
+ * The `cpu_seconds` and `elapsed_seconds` are the CPU time and elapsed
+ * time (respectively) that the original compilation (not the extraction)
+ * took for compiler invocation `id`.
+ */
+compilation_compiler_times(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref
+);
+
+/**
+ * If extraction was successful, then `cpu_seconds` and
+ * `elapsed_seconds` are the CPU time and elapsed time (respectively)
+ * that extraction took for compiler invocation `id`.
+ * The `result` will indicate the extraction result:
+ *
+ * 0: Successfully extracted
+ * 1: Errors were encountered, but extraction recovered
+ * 2: Errors were encountered, and extraction could not recover
+ */
+compilation_finished(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref,
+ int result : int ref
+);
+
+diagnostics(
+ unique int id: @diagnostic,
+ string generated_by: string ref, // TODO: Sync this with the other languages?
+ int severity: int ref,
+ string error_tag: string ref,
+ string error_message: string ref,
+ string full_error_message: string ref,
+ int location: @location_default ref
+);
+
+/**
+ * An error or warning generated by the extractor.
+ * The diagnostic message `diagnostic` was generated during compiler
+ * invocation `compilation`, and is the `file_number_diagnostic_number`th
+ * message generated while extracting the `file_number`th file of that
+ * invocation.
+ */
+#keyset[compilation, file_number, file_number_diagnostic_number]
+diagnostic_for(
+ unique int diagnostic : @diagnostic ref,
+ int compilation : @compilation ref,
+ int file_number : int ref,
+ int file_number_diagnostic_number : int ref
+);
+
+/*
+ * External artifacts
+ */
+
+externalData(
+ int id : @externalDataElement,
+ string path : string ref,
+ int column: int ref,
+ string value : string ref
+);
+
+sourceLocationPrefix(
+ string prefix : string ref
+);
+
+databaseMetadata(
+ string metadataKey : string ref,
+ string value : string ref
+);
+
+overlayChangedFiles(
+ string path: string ref
+);
+
+/*
+ * SMAP
+ */
+
+smap_header(
+ int outputFileId: @file ref,
+ string outputFilename: string ref,
+ string defaultStratum: string ref
+);
+
+smap_files(
+ int outputFileId: @file ref,
+ string stratum: string ref,
+ int inputFileNum: int ref,
+ string inputFileName: string ref,
+ int inputFileId: @file ref
+);
+
+smap_lines(
+ int outputFileId: @file ref,
+ string stratum: string ref,
+ int inputFileNum: int ref,
+ int inputStartLine: int ref,
+ int inputLineCount: int ref,
+ int outputStartLine: int ref,
+ int outputLineIncrement: int ref
+);
+
+/*
+ * Locations and files
+ */
+
+@location = @location_default ;
+
+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
+);
+
+hasLocation(
+ int locatableid: @locatable ref,
+ int id: @location ref
+);
+
+@sourceline = @locatable ;
+
+#keyset[element_id]
+numlines(
+ int element_id: @sourceline ref,
+ int num_lines: int ref,
+ int num_code: int ref,
+ int num_comment: int ref
+);
+
+files(
+ unique int id: @file,
+ string name: string ref
+);
+
+folders(
+ unique int id: @folder,
+ string name: string ref
+);
+
+@container = @folder | @file
+
+containerparent(
+ int parent: @container ref,
+ unique int child: @container ref
+);
+
+/*
+ * Java
+ */
+
+cupackage(
+ unique int id: @file ref,
+ int packageid: @package ref
+);
+
+#keyset[fileid,keyName]
+jarManifestMain(
+ int fileid: @file ref,
+ string keyName: string ref,
+ string value: string ref
+);
+
+#keyset[fileid,entryName,keyName]
+jarManifestEntries(
+ int fileid: @file ref,
+ string entryName: string ref,
+ string keyName: string ref,
+ string value: string ref
+);
+
+packages(
+ unique int id: @package,
+ string nodeName: string ref
+);
+
+primitives(
+ unique int id: @primitive,
+ string nodeName: string ref
+);
+
+modifiers(
+ unique int id: @modifier,
+ string nodeName: string ref
+);
+
+/**
+ * An errortype is used when the extractor is unable to extract a type
+ * correctly for some reason.
+ */
+error_type(
+ unique int id: @errortype
+);
+
+classes_or_interfaces(
+ unique int id: @classorinterface,
+ string nodeName: string ref,
+ int parentid: @package ref,
+ int sourceid: @classorinterface ref
+);
+
+file_class(
+ int id: @classorinterface ref
+);
+
+class_object(
+ unique int id: @classorinterface ref,
+ unique int instance: @field ref
+);
+
+type_companion_object(
+ unique int id: @classorinterface ref,
+ unique int instance: @field ref,
+ unique int companion_object: @classorinterface ref
+);
+
+kt_nullable_types(
+ unique int id: @kt_nullable_type,
+ int classid: @reftype ref
+)
+
+kt_notnull_types(
+ unique int id: @kt_notnull_type,
+ int classid: @reftype ref
+)
+
+kt_type_alias(
+ unique int id: @kt_type_alias,
+ string name: string ref,
+ int kttypeid: @kt_type ref
+)
+
+@kt_type = @kt_nullable_type | @kt_notnull_type
+
+isInterface(
+ unique int id: @classorinterface ref
+);
+
+isRecord(
+ unique int id: @classorinterface ref
+);
+
+fielddecls(
+ unique int id: @fielddecl,
+ int parentid: @reftype ref
+);
+
+#keyset[fieldId] #keyset[fieldDeclId,pos]
+fieldDeclaredIn(
+ int fieldId: @field ref,
+ int fieldDeclId: @fielddecl ref,
+ int pos: int ref
+);
+
+fields(
+ unique int id: @field,
+ string nodeName: string ref,
+ int typeid: @type ref,
+ int parentid: @reftype ref
+);
+
+fieldsKotlinType(
+ unique int id: @field ref,
+ int kttypeid: @kt_type ref
+);
+
+constrs(
+ unique int id: @constructor,
+ string nodeName: string ref,
+ string signature: string ref,
+ int typeid: @type ref,
+ int parentid: @reftype ref,
+ int sourceid: @constructor ref
+);
+
+constrsKotlinType(
+ unique int id: @constructor ref,
+ int kttypeid: @kt_type ref
+);
+
+methods(
+ unique int id: @method,
+ string nodeName: string ref,
+ string signature: string ref,
+ int typeid: @type ref,
+ int parentid: @reftype ref,
+ int sourceid: @method ref
+);
+
+methodsKotlinType(
+ unique int id: @method ref,
+ int kttypeid: @kt_type ref
+);
+
+#keyset[parentid,pos]
+params(
+ unique int id: @param,
+ int typeid: @type ref,
+ int pos: int ref,
+ int parentid: @callable ref,
+ int sourceid: @param ref
+);
+
+paramsKotlinType(
+ unique int id: @param ref,
+ int kttypeid: @kt_type ref
+);
+
+paramName(
+ unique int id: @param ref,
+ string nodeName: string ref
+);
+
+isVarargsParam(
+ int param: @param ref
+);
+
+exceptions(
+ unique int id: @exception,
+ int typeid: @type ref,
+ int parentid: @callable ref
+);
+
+isAnnotType(
+ int interfaceid: @classorinterface ref
+);
+
+isAnnotElem(
+ int methodid: @method ref
+);
+
+annotValue(
+ int parentid: @annotation ref,
+ int id2: @method ref,
+ unique int value: @expr ref
+);
+
+isEnumType(
+ int classid: @classorinterface ref
+);
+
+isEnumConst(
+ int fieldid: @field ref
+);
+
+#keyset[parentid,pos]
+typeVars(
+ unique int id: @typevariable,
+ string nodeName: string ref,
+ int pos: int ref,
+ int parentid: @classorinterfaceorcallable ref
+);
+
+wildcards(
+ unique int id: @wildcard,
+ string nodeName: string ref,
+ int kind: int ref
+);
+
+#keyset[parentid,pos]
+typeBounds(
+ unique int id: @typebound,
+ int typeid: @reftype ref,
+ int pos: int ref,
+ int parentid: @boundedtype ref
+);
+
+#keyset[parentid,pos]
+typeArgs(
+ int argumentid: @reftype ref,
+ int pos: int ref,
+ int parentid: @classorinterfaceorcallable ref
+);
+
+isParameterized(
+ int memberid: @member ref
+);
+
+isRaw(
+ int memberid: @member ref
+);
+
+#keyset[classid] #keyset[parent]
+isAnonymClass(
+ int classid: @classorinterface ref,
+ int parent: @classinstancexpr ref
+);
+
+#keyset[typeid] #keyset[parent]
+isLocalClassOrInterface(
+ int typeid: @classorinterface ref,
+ int parent: @localtypedeclstmt ref
+);
+
+isImplicitClass(
+ unique int classid: @classorinterface ref
+);
+
+isDefConstr(
+ int constructorid: @constructor ref
+);
+
+#keyset[exprId]
+lambdaKind(
+ int exprId: @lambdaexpr ref,
+ int bodyKind: int ref
+);
+
+isCanonicalConstr(
+ int constructorid: @constructor ref
+);
+
+arrays(
+ unique int id: @array,
+ string nodeName: string ref,
+ int elementtypeid: @type ref,
+ int dimension: int ref,
+ int componenttypeid: @type ref
+);
+
+enclInReftype(
+ unique int child: @reftype ref,
+ int parent: @reftype ref
+);
+
+extendsReftype(
+ int id1: @reftype ref,
+ int id2: @classorinterface ref
+);
+
+implInterface(
+ int id1: @classorarray ref,
+ int id2: @classorinterface ref
+);
+
+permits(
+ int id1: @classorinterface ref,
+ int id2: @classorinterface ref
+);
+
+hasModifier(
+ int id1: @modifiable ref,
+ int id2: @modifier ref
+);
+
+imports(
+ unique int id: @import,
+ int holder: @classorinterfaceorpackage ref,
+ string name: string ref,
+ int kind: int ref
+);
+
+#keyset[parent,idx]
+stmts(
+ unique int id: @stmt,
+ int kind: int ref,
+ int parent: @stmtparent ref,
+ int idx: int ref,
+ int bodydecl: @callable ref
+);
+
+@stmtparent = @callable | @stmt | @switchexpr | @whenexpr| @stmtexpr;
+
+case @stmt.kind of
+ 0 = @block
+| 1 = @ifstmt
+| 2 = @forstmt
+| 3 = @enhancedforstmt
+| 4 = @whilestmt
+| 5 = @dostmt
+| 6 = @trystmt
+| 7 = @switchstmt
+| 8 = @synchronizedstmt
+| 9 = @returnstmt
+| 10 = @throwstmt
+| 11 = @breakstmt
+| 12 = @continuestmt
+| 13 = @emptystmt
+| 14 = @exprstmt
+| 15 = @labeledstmt
+| 16 = @assertstmt
+| 17 = @localvariabledeclstmt
+| 18 = @localtypedeclstmt
+| 19 = @constructorinvocationstmt
+| 20 = @superconstructorinvocationstmt
+| 21 = @case
+| 22 = @catchclause
+| 23 = @yieldstmt
+| 24 = @errorstmt
+| 25 = @whenbranch
+;
+
+#keyset[parent,idx]
+exprs(
+ unique int id: @expr,
+ int kind: int ref,
+ int typeid: @type ref,
+ int parent: @exprparent ref,
+ int idx: int ref
+);
+
+exprsKotlinType(
+ unique int id: @expr ref,
+ int kttypeid: @kt_type ref
+);
+
+callableEnclosingExpr(
+ unique int id: @expr ref,
+ int callable_id: @callable ref
+);
+
+statementEnclosingExpr(
+ unique int id: @expr ref,
+ int statement_id: @stmt ref
+);
+
+isParenthesized(
+ unique int id: @expr ref,
+ int parentheses: int ref
+);
+
+case @expr.kind of
+ 1 = @arrayaccess
+| 2 = @arraycreationexpr
+| 3 = @arrayinit
+| 4 = @assignexpr
+| 5 = @assignaddexpr
+| 6 = @assignsubexpr
+| 7 = @assignmulexpr
+| 8 = @assigndivexpr
+| 9 = @assignremexpr
+| 10 = @assignandexpr
+| 11 = @assignorexpr
+| 12 = @assignxorexpr
+| 13 = @assignlshiftexpr
+| 14 = @assignrshiftexpr
+| 15 = @assignurshiftexpr
+| 16 = @booleanliteral
+| 17 = @integerliteral
+| 18 = @longliteral
+| 19 = @floatingpointliteral
+| 20 = @doubleliteral
+| 21 = @characterliteral
+| 22 = @stringliteral
+| 23 = @nullliteral
+| 24 = @mulexpr
+| 25 = @divexpr
+| 26 = @remexpr
+| 27 = @addexpr
+| 28 = @subexpr
+| 29 = @lshiftexpr
+| 30 = @rshiftexpr
+| 31 = @urshiftexpr
+| 32 = @andbitexpr
+| 33 = @orbitexpr
+| 34 = @xorbitexpr
+| 35 = @andlogicalexpr
+| 36 = @orlogicalexpr
+| 37 = @ltexpr
+| 38 = @gtexpr
+| 39 = @leexpr
+| 40 = @geexpr
+| 41 = @eqexpr
+| 42 = @neexpr
+| 43 = @postincexpr
+| 44 = @postdecexpr
+| 45 = @preincexpr
+| 46 = @predecexpr
+| 47 = @minusexpr
+| 48 = @plusexpr
+| 49 = @bitnotexpr
+| 50 = @lognotexpr
+| 51 = @castexpr
+| 52 = @newexpr
+| 53 = @conditionalexpr
+| 54 = @parexpr // deprecated
+| 55 = @instanceofexpr
+| 56 = @localvariabledeclexpr
+| 57 = @typeliteral
+| 58 = @thisaccess
+| 59 = @superaccess
+| 60 = @varaccess
+| 61 = @methodaccess
+| 62 = @unannotatedtypeaccess
+| 63 = @arraytypeaccess
+| 64 = @packageaccess
+| 65 = @wildcardtypeaccess
+| 66 = @declannotation
+| 67 = @uniontypeaccess
+| 68 = @lambdaexpr
+| 69 = @memberref
+| 70 = @annotatedtypeaccess
+| 71 = @typeannotation
+| 72 = @intersectiontypeaccess
+| 73 = @switchexpr
+| 74 = @errorexpr
+| 75 = @whenexpr
+| 76 = @getclassexpr
+| 77 = @safecastexpr
+| 78 = @implicitcastexpr
+| 79 = @implicitnotnullexpr
+| 80 = @implicitcoerciontounitexpr
+| 81 = @notinstanceofexpr
+| 82 = @stmtexpr
+| 83 = @stringtemplateexpr
+| 84 = @notnullexpr
+| 85 = @unsafecoerceexpr
+| 86 = @valueeqexpr
+| 87 = @valueneexpr
+| 88 = @propertyref
+| 89 = @recordpatternexpr
+;
+
+/** Holds if this `when` expression was written as an `if` expression. */
+when_if(unique int id: @whenexpr ref);
+
+/** Holds if this `when` branch was written as an `else` branch. */
+when_branch_else(unique int id: @whenbranch ref);
+
+@classinstancexpr = @newexpr | @lambdaexpr | @memberref | @propertyref
+
+@annotation = @declannotation | @typeannotation
+@typeaccess = @unannotatedtypeaccess | @annotatedtypeaccess
+
+@assignment = @assignexpr
+ | @assignop;
+
+@unaryassignment = @postincexpr
+ | @postdecexpr
+ | @preincexpr
+ | @predecexpr;
+
+@assignop = @assignaddexpr
+ | @assignsubexpr
+ | @assignmulexpr
+ | @assigndivexpr
+ | @assignremexpr
+ | @assignandexpr
+ | @assignorexpr
+ | @assignxorexpr
+ | @assignlshiftexpr
+ | @assignrshiftexpr
+ | @assignurshiftexpr;
+
+@literal = @booleanliteral
+ | @integerliteral
+ | @longliteral
+ | @floatingpointliteral
+ | @doubleliteral
+ | @characterliteral
+ | @stringliteral
+ | @nullliteral;
+
+@binaryexpr = @mulexpr
+ | @divexpr
+ | @remexpr
+ | @addexpr
+ | @subexpr
+ | @lshiftexpr
+ | @rshiftexpr
+ | @urshiftexpr
+ | @andbitexpr
+ | @orbitexpr
+ | @xorbitexpr
+ | @andlogicalexpr
+ | @orlogicalexpr
+ | @ltexpr
+ | @gtexpr
+ | @leexpr
+ | @geexpr
+ | @eqexpr
+ | @neexpr
+ | @valueeqexpr
+ | @valueneexpr;
+
+@unaryexpr = @postincexpr
+ | @postdecexpr
+ | @preincexpr
+ | @predecexpr
+ | @minusexpr
+ | @plusexpr
+ | @bitnotexpr
+ | @lognotexpr
+ | @notnullexpr;
+
+@caller = @classinstancexpr
+ | @methodaccess
+ | @constructorinvocationstmt
+ | @superconstructorinvocationstmt;
+
+callableBinding(
+ unique int callerid: @caller ref,
+ int callee: @callable ref
+);
+
+memberRefBinding(
+ unique int id: @expr ref,
+ int callable: @callable ref
+);
+
+propertyRefGetBinding(
+ unique int id: @expr ref,
+ int getter: @callable ref
+);
+
+propertyRefFieldBinding(
+ unique int id: @expr ref,
+ int field: @field ref
+);
+
+propertyRefSetBinding(
+ unique int id: @expr ref,
+ int setter: @callable ref
+);
+
+@exprparent = @stmt | @expr | @whenbranch | @callable | @field | @fielddecl | @classorinterface | @param | @localvar | @typevariable;
+
+variableBinding(
+ unique int expr: @varaccess ref,
+ int variable: @variable ref
+);
+
+@variable = @localscopevariable | @field;
+
+@localscopevariable = @localvar | @param;
+
+localvars(
+ unique int id: @localvar,
+ string nodeName: string ref,
+ int typeid: @type ref,
+ int parentid: @localvariabledeclexpr ref
+);
+
+localvarsKotlinType(
+ unique int id: @localvar ref,
+ int kttypeid: @kt_type ref
+);
+
+@namedexprorstmt = @breakstmt
+ | @continuestmt
+ | @labeledstmt
+ | @literal;
+
+namestrings(
+ string name: string ref,
+ string value: string ref,
+ unique int parent: @namedexprorstmt ref
+);
+
+/*
+ * Modules
+ */
+
+#keyset[name]
+modules(
+ unique int id: @module,
+ string name: string ref
+);
+
+isOpen(
+ int id: @module ref
+);
+
+#keyset[fileId]
+cumodule(
+ int fileId: @file ref,
+ int moduleId: @module ref
+);
+
+@directive = @requires
+ | @exports
+ | @opens
+ | @uses
+ | @provides
+
+#keyset[directive]
+directives(
+ int id: @module ref,
+ int directive: @directive ref
+);
+
+requires(
+ unique int id: @requires,
+ int target: @module ref
+);
+
+isTransitive(
+ int id: @requires ref
+);
+
+isStatic(
+ int id: @requires ref
+);
+
+exports(
+ unique int id: @exports,
+ int target: @package ref
+);
+
+exportsTo(
+ int id: @exports ref,
+ int target: @module ref
+);
+
+opens(
+ unique int id: @opens,
+ int target: @package ref
+);
+
+opensTo(
+ int id: @opens ref,
+ int target: @module ref
+);
+
+uses(
+ unique int id: @uses,
+ string serviceInterface: string ref
+);
+
+provides(
+ unique int id: @provides,
+ string serviceInterface: string ref
+);
+
+providesWith(
+ int id: @provides ref,
+ string serviceImpl: string ref
+);
+
+isNullDefaultCase(
+ int id: @case ref
+);
+
+/*
+ * Javadoc
+ */
+
+javadoc(
+ unique int id: @javadoc
+);
+
+isNormalComment(
+ int commentid : @javadoc ref
+);
+
+isEolComment(
+ int commentid : @javadoc ref
+);
+
+hasJavadoc(
+ int documentableid: @member ref,
+ int javadocid: @javadoc ref
+);
+
+#keyset[parentid,idx]
+javadocTag(
+ unique int id: @javadocTag,
+ string name: string ref,
+ int parentid: @javadocParent ref,
+ int idx: int ref
+);
+
+#keyset[parentid,idx]
+javadocText(
+ unique int id: @javadocText,
+ string text: string ref,
+ int parentid: @javadocParent ref,
+ int idx: int ref
+);
+
+@javadocParent = @javadoc | @javadocTag;
+@javadocElement = @javadocTag | @javadocText;
+
+@classorinterfaceorpackage = @classorinterface | @package;
+@classorinterfaceorcallable = @classorinterface | @callable;
+@boundedtype = @typevariable | @wildcard;
+@reftype = @classorinterface | @array | @boundedtype | @errortype;
+@classorarray = @classorinterface | @array;
+@type = @primitive | @reftype;
+@callable = @method | @constructor;
+
+/** A program element that has a name. */
+@element = @package | @modifier | @annotation | @errortype |
+ @locatableElement;
+
+@locatableElement = @file | @primitive | @classorinterface | @method | @constructor | @param | @exception | @field |
+ @boundedtype | @array | @localvar | @expr | @stmt | @import | @fielddecl | @kt_type | @kt_type_alias |
+ @kt_property;
+
+@modifiable = @member_modifiable| @param | @localvar | @typevariable;
+
+@member_modifiable = @classorinterface | @method | @constructor | @field | @kt_property;
+
+@member = @method | @constructor | @field | @reftype ;
+
+/** A program element that has a location. */
+@locatable = @typebound | @javadoc | @javadocTag | @javadocText | @xmllocatable | @ktcomment |
+ @locatableElement;
+
+@top = @element | @locatable | @folder;
+
+/*
+ * 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;
+
+/*
+ * configuration files with key value pairs
+ */
+
+configs(
+ unique int id: @config
+);
+
+configNames(
+ unique int id: @configName,
+ int config: @config ref,
+ string name: string ref
+);
+
+configValues(
+ unique int id: @configValue,
+ int config: @config ref,
+ string value: string ref
+);
+
+configLocations(
+ int locatable: @configLocatable ref,
+ int location: @location_default ref
+);
+
+@configLocatable = @config | @configName | @configValue;
+
+ktComments(
+ unique int id: @ktcomment,
+ int kind: int ref,
+ string text : string ref
+)
+
+ktCommentSections(
+ unique int id: @ktcommentsection,
+ int comment: @ktcomment ref,
+ string content : string ref
+)
+
+ktCommentSectionNames(
+ unique int id: @ktcommentsection ref,
+ string name : string ref
+)
+
+ktCommentSectionSubjectNames(
+ unique int id: @ktcommentsection ref,
+ string subjectname : string ref
+)
+
+#keyset[id, owner]
+ktCommentOwners(
+ int id: @ktcomment ref,
+ int owner: @top ref
+)
+
+ktExtensionFunctions(
+ unique int id: @method ref,
+ int typeid: @type ref,
+ int kttypeid: @kt_type ref
+)
+
+ktProperties(
+ unique int id: @kt_property,
+ string nodeName: string ref
+)
+
+ktPropertyGetters(
+ unique int id: @kt_property ref,
+ int getter: @method ref
+)
+
+ktPropertySetters(
+ unique int id: @kt_property ref,
+ int setter: @method ref
+)
+
+ktPropertyBackingFields(
+ unique int id: @kt_property ref,
+ int backingField: @field ref
+)
+
+ktSyntheticBody(
+ unique int id: @callable ref,
+ int kind: int ref
+ // 1: ENUM_VALUES
+ // 2: ENUM_VALUEOF
+ // 3: ENUM_ENTRIES
+)
+
+ktLocalFunction(
+ unique int id: @method ref
+)
+
+ktInitializerAssignment(
+ unique int id: @assignexpr ref
+)
+
+ktPropertyDelegates(
+ unique int id: @kt_property ref,
+ unique int variableId: @variable ref
+)
+
+/**
+ * If `id` is a compiler generated element, then the kind indicates the
+ * reason that the compiler generated it.
+ * See `Element.compilerGeneratedReason()` for an explanation of what
+ * each `kind` means.
+ */
+compiler_generated(
+ unique int id: @element ref,
+ int kind: int ref
+)
+
+ktFunctionOriginalNames(
+ unique int id: @method ref,
+ string name: string ref
+)
+
+ktDataClasses(
+ unique int id: @classorinterface ref
+)
diff --git a/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/upgrade.properties b/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/upgrade.properties
new file mode 100644
index 00000000000..3ecad4ebaa4
--- /dev/null
+++ b/java/ql/lib/upgrades/1b8f5f4c747e4249f4731796ccaa0661c7434d8a/upgrade.properties
@@ -0,0 +1,2 @@
+description: Add support for Java 25 compact source files by introducing isImplicitClass table
+compatibility: full
diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md
index 81ce9022d91..ffd5648cddf 100644
--- a/java/ql/src/CHANGELOG.md
+++ b/java/ql/src/CHANGELOG.md
@@ -1,3 +1,19 @@
+## 1.7.0
+
+### New Queries
+
+* The query `java/insecure-spring-actuator-config` has been promoted from experimental to the main query pack as `java/spring-boot-exposed-actuators-config`. Its results will now appear by default. This query detects exposure of Spring Boot actuators through configuration files. It was originally submitted as an experimental query [by @luchua-bc](https://github.com/github/codeql/pull/5384).
+
+### Query Metadata Changes
+
+* The tag `maintainability` has been removed from `java/run-finalizers-on-exit` and the tags `quality`, `correctness`, and `performance` have been added.
+* The tag `maintainability` has been removed from `java/garbage-collection` and the tags `quality` and `correctness` have been added.
+
+### Minor Analysis Improvements
+
+* Fixed a bug that was causing false negatives in rare cases in the query `java/dereferenced-value-may-be-null`.
+* Removed the `java/empty-statement` query that was subsumed by the `java/empty-block` query.
+
## 1.6.3
No user-facing changes.
diff --git a/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql b/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql
index f8b1cd85552..bb370bead3b 100644
--- a/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql
+++ b/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql
@@ -14,7 +14,7 @@
import java
import Equality
-/** A class that defines an `equals` method but no `hashCode` method. */
+/** Holds if `c` defines an `equals` method but no `hashCode` method. */
predicate eqNoHash(Class c) {
exists(Method m | m = c.getAMethod() |
m instanceof EqualsMethod and
diff --git a/java/ql/src/Likely Bugs/Concurrency/NotifyWithoutSynch.ql b/java/ql/src/Likely Bugs/Concurrency/NotifyWithoutSynch.ql
index 89dbedd0253..48f547575ee 100644
--- a/java/ql/src/Likely Bugs/Concurrency/NotifyWithoutSynch.ql
+++ b/java/ql/src/Likely Bugs/Concurrency/NotifyWithoutSynch.ql
@@ -78,7 +78,7 @@ private predicate synchronizedThisAccess(MethodCall ma, Type thisType) {
/**
* Auxiliary predicate for `unsynchronizedVarAccess`. Holds if
- * there is an enclosing `synchronized` statement on the variable.
+ * there is an enclosing `synchronized` statement on the variable access `x`.
*/
predicate synchronizedVarAccess(VarAccess x) {
exists(SynchronizedStmt s, VarAccess y |
diff --git a/java/ql/src/Likely Bugs/Termination/SpinOnField.ql b/java/ql/src/Likely Bugs/Termination/SpinOnField.ql
index 8675bbd418b..d1a7d49db55 100644
--- a/java/ql/src/Likely Bugs/Termination/SpinOnField.ql
+++ b/java/ql/src/Likely Bugs/Termination/SpinOnField.ql
@@ -33,8 +33,8 @@ class Empty extends Stmt {
class EmptyLoop extends Stmt {
EmptyLoop() {
exists(ForStmt stmt | stmt = this |
- count(stmt.getAnInit()) = 0 and
- count(stmt.getAnUpdate()) = 0 and
+ not exists(stmt.getAnInit()) and
+ not exists(stmt.getAnUpdate()) and
stmt.getStmt() instanceof Empty
)
or
diff --git a/java/ql/src/Violations of Best Practice/Magic Constants/MagicConstants.qll b/java/ql/src/Violations of Best Practice/Magic Constants/MagicConstants.qll
index dc5b4eada8d..c94a4fb58bf 100644
--- a/java/ql/src/Violations of Best Practice/Magic Constants/MagicConstants.qll
+++ b/java/ql/src/Violations of Best Practice/Magic Constants/MagicConstants.qll
@@ -105,7 +105,7 @@ private predicate valueOccurrenceCount(string value, int n, string context) {
n > 20
}
-private predicate occurenceCount(Literal lit, string value, int n, string context) {
+private predicate occurrenceCount(Literal lit, string value, int n, string context) {
valueOccurrenceCount(value, n, context) and
value = lit.getValue() and
nonTrivialValue(_, lit, context)
@@ -119,7 +119,7 @@ private predicate check(Literal lit, string value, int n, string context, Compil
// Check that the literal is nontrivial
not trivial(lit) and
// Check that it is repeated a number of times
- occurenceCount(lit, value, n, context) and
+ occurrenceCount(lit, value, n, context) and
n > 20 and
f = lit.getCompilationUnit()
}
diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql
index ca002fc654a..ed492e5b6a1 100644
--- a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql
+++ b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql
@@ -48,7 +48,7 @@ private predicate overloadedMethodsMostSpecific(Method n, Method m) {
private predicate whitelist(string name) { name = "visit" }
/**
- * Method `m` has name `name`, number of parameters `numParams`
+ * Method `m` has name `name`, number of parameters `numParam`
* and is declared in `t` or inherited from a supertype of `t`.
*/
pragma[nomagic]
diff --git a/java/ql/src/change-notes/2024-10-03-remove-java-query.md b/java/ql/src/change-notes/2024-10-03-remove-java-query.md
deleted file mode 100644
index e9f3e4910cb..00000000000
--- a/java/ql/src/change-notes/2024-10-03-remove-java-query.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: minorAnalysis
----
-* Removed the `java/empty-statement` query that was subsumed by the `java/empty-block` query.
\ No newline at end of file
diff --git a/java/ql/src/change-notes/2025-07-17-spring-actuators-config-promo.md b/java/ql/src/change-notes/2025-07-17-spring-actuators-config-promo.md
deleted file mode 100644
index 733017f7131..00000000000
--- a/java/ql/src/change-notes/2025-07-17-spring-actuators-config-promo.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: newQuery
----
-* The query `java/insecure-spring-actuator-config` has been promoted from experimental to the main query pack as `java/spring-boot-exposed-actuators-config`. Its results will now appear by default. This query detects exposure of Spring Boot actuators through configuration files. It was originally submitted as an experimental query [by @luchua-bc](https://github.com/github/codeql/pull/5384).
diff --git a/java/ql/src/change-notes/2025-07-19-adjust-tags.md b/java/ql/src/change-notes/2025-07-19-adjust-tags.md
deleted file mode 100644
index 0067adebdaf..00000000000
--- a/java/ql/src/change-notes/2025-07-19-adjust-tags.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-category: queryMetadata
----
-* The tag `maintainability` has been removed from `java/run-finalizers-on-exit` and the tags `quality`, `correctness`, and `performance` have been added.
-* The tag `maintainability` has been removed from `java/garbage-collection` and the tags `quality` and `correctness` have been added.
diff --git a/java/ql/src/change-notes/2025-08-22-nullness-fn.md b/java/ql/src/change-notes/2025-08-22-nullness-fn.md
deleted file mode 100644
index d8d77a470f6..00000000000
--- a/java/ql/src/change-notes/2025-08-22-nullness-fn.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-category: minorAnalysis
----
-* Fixed a bug that was causing false negatives in rare cases in the query `java/dereferenced-value-may-be-null`.
diff --git a/java/ql/src/change-notes/released/1.7.0.md b/java/ql/src/change-notes/released/1.7.0.md
new file mode 100644
index 00000000000..f0485614fc3
--- /dev/null
+++ b/java/ql/src/change-notes/released/1.7.0.md
@@ -0,0 +1,15 @@
+## 1.7.0
+
+### New Queries
+
+* The query `java/insecure-spring-actuator-config` has been promoted from experimental to the main query pack as `java/spring-boot-exposed-actuators-config`. Its results will now appear by default. This query detects exposure of Spring Boot actuators through configuration files. It was originally submitted as an experimental query [by @luchua-bc](https://github.com/github/codeql/pull/5384).
+
+### Query Metadata Changes
+
+* The tag `maintainability` has been removed from `java/run-finalizers-on-exit` and the tags `quality`, `correctness`, and `performance` have been added.
+* The tag `maintainability` has been removed from `java/garbage-collection` and the tags `quality` and `correctness` have been added.
+
+### Minor Analysis Improvements
+
+* Fixed a bug that was causing false negatives in rare cases in the query `java/dereferenced-value-may-be-null`.
+* Removed the `java/empty-statement` query that was subsumed by the `java/empty-block` query.
diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml
index 00b51441d88..d1184cc6750 100644
--- a/java/ql/src/codeql-pack.release.yml
+++ b/java/ql/src/codeql-pack.release.yml
@@ -1,2 +1,2 @@
---
-lastReleaseVersion: 1.6.3
+lastReleaseVersion: 1.7.0
diff --git a/java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll b/java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll
index 88598e61589..0e28d9ffe5e 100644
--- a/java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll
+++ b/java/ql/src/experimental/quantum/Analysis/ArtifactReuse.qll
@@ -10,15 +10,11 @@ import experimental.quantum.Language
*/
private module WrapperConfig implements DataFlow::ConfigSig {
predicate isSource(DataFlow::Node source) {
- exists(Call c |
- c = source.asExpr()
- // not handling references yet, I think we want to flat say references are only ok
- // if I know the source, otherwise, it has to be through an additional flow step, which
- // we filter as a source, i.e., references are only allowed as sources only,
- // no inferrece? Not sure if that would work
- //or
- // source.(DataFlow::PostUpdateNode).getPreUpdateNode().asExpr() = c.getAnArgument()
- ) and
+ source.asExpr() instanceof Call and
+ // not handling references yet, I think we want to flat say references are only ok
+ // if I know the source, otherwise, it has to be through an additional flow step, which
+ // we filter as a source, i.e., references are only allowed as sources only,
+ // no inferrece? Not sure if that would work
// Filter out sources that are known additional flow steps, as these are likely not the
// kind of wrapper source we are looking for.
not exists(AdditionalFlowInputStep s | s.getOutput() = source)
diff --git a/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql b/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql
index 7291ea554a5..1aee9515232 100644
--- a/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql
+++ b/java/ql/src/experimental/quantum/Examples/BrokenCrypto.ql
@@ -12,7 +12,7 @@
*/
//THIS QUERY IS A REPLICA OF: https://github.com/github/codeql/blob/main/java/ql/src/Security/CWE/CWE-327/BrokenCryptoAlgorithm.ql
-//but uses the **NEW MODELLING**
+//but uses the **NEW MODELING**
import experimental.quantum.Language
/**
diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml
index ec081681c2b..8e1ae28dd6f 100644
--- a/java/ql/src/qlpack.yml
+++ b/java/ql/src/qlpack.yml
@@ -1,5 +1,5 @@
name: codeql/java-queries
-version: 1.6.4-dev
+version: 1.7.1-dev
groups:
- java
- queries
diff --git a/java/ql/src/utils/flowtestcasegenerator/FlowTestCase.qll b/java/ql/src/utils/flowtestcasegenerator/FlowTestCase.qll
index af0f501621a..5ab1584f866 100644
--- a/java/ql/src/utils/flowtestcasegenerator/FlowTestCase.qll
+++ b/java/ql/src/utils/flowtestcasegenerator/FlowTestCase.qll
@@ -253,7 +253,7 @@ class TestCase extends TTestCase {
/**
* Returns a call to `source()` wrapped in `newWith` methods as needed according to `input`.
- * For example, if the input specification is `ArrayElement of MapValue of Argument[0]`, this
+ * For example, if the `stack` is `Argument[0].MapValue.ArrayElement`, this
* will return `newWithMapValue(newWithArrayElement(source()))`.
*/
string getInput(SummaryComponentStack stack) {
@@ -269,7 +269,7 @@ class TestCase extends TTestCase {
/**
* Returns `out` wrapped in `get` methods as needed according to `output`.
- * For example, if the output specification is `ArrayElement of MapValue of Argument[0]`, this
+ * For example, if the `componentStack` is `Argument[0].MapValue.ArrayElement`, this
* will return `getArrayElement(getMapValue(out))`.
*/
string getOutput(SummaryComponentStack componentStack) {
diff --git a/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected b/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected
index b901340b964..a56980d10ac 100644
--- a/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected
+++ b/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected
@@ -16,30 +16,6 @@ methodWithDuplicate
| AbstractCollection | removeAll | Collection> |
| AbstractCollection | retainAll | Collection> |
| AbstractCollection | toArray | T[] |
-| AbstractCollection> | add | Entry |
-| AbstractCollection> | addAll | Collection extends Entry> |
-| AbstractCollection> | contains | Object |
-| AbstractCollection> | containsAll | Collection> |
-| AbstractCollection> | remove | Object |
-| AbstractCollection> | removeAll | Collection> |
-| AbstractCollection> | retainAll | Collection> |
-| AbstractCollection> | toArray | T[] |
-| AbstractCollection | add | K |
-| AbstractCollection | addAll | Collection extends K> |
-| AbstractCollection | contains | Object |
-| AbstractCollection | containsAll | Collection> |
-| AbstractCollection | remove | Object |
-| AbstractCollection | removeAll | Collection> |
-| AbstractCollection | retainAll | Collection> |
-| AbstractCollection | toArray | T[] |
-| AbstractCollection | add | Runnable |
-| AbstractCollection | addAll | Collection extends Runnable> |
-| AbstractCollection | contains | Object |
-| AbstractCollection | containsAll | Collection> |
-| AbstractCollection | remove | Object |
-| AbstractCollection | removeAll | Collection> |
-| AbstractCollection | retainAll | Collection> |
-| AbstractCollection | toArray | T[] |
| AbstractCollection | add | String |
| AbstractCollection | addAll | Collection extends String> |
| AbstractCollection | contains | Object |
@@ -56,14 +32,6 @@ methodWithDuplicate
| AbstractCollection | removeAll | Collection> |
| AbstractCollection | retainAll | Collection> |
| AbstractCollection | toArray | T[] |
-| AbstractCollection | add | V |
-| AbstractCollection | addAll | Collection extends V> |
-| AbstractCollection | contains | Object |
-| AbstractCollection | containsAll | Collection> |
-| AbstractCollection | remove | Object |
-| AbstractCollection | removeAll | Collection> |
-| AbstractCollection | retainAll | Collection> |
-| AbstractCollection | toArray | T[] |
| AbstractList | add | E |
| AbstractList | add | int |
| AbstractList | addAll | Collection extends E> |
@@ -103,14 +71,14 @@ methodWithDuplicate
| AbstractMap | put | V |
| AbstractMap | putAll | Map extends K,? extends V> |
| AbstractMap | remove | Object |
-| AbstractMap> | containsKey | Object |
-| AbstractMap> | containsValue | Object |
-| AbstractMap> | equals | Object |
-| AbstractMap> | get | Object |
-| AbstractMap> | put | Entry> |
-| AbstractMap> | put | Identity |
-| AbstractMap> | putAll | Map extends Identity,? extends Entry>> |
-| AbstractMap> | remove | Object |
+| AbstractMap | containsKey | Object |
+| AbstractMap | containsValue | Object |
+| AbstractMap | equals | Object |
+| AbstractMap | get | Object |
+| AbstractMap | put | Identity |
+| AbstractMap | put | Object |
+| AbstractMap | putAll | Map extends Identity,? extends Object> |
+| AbstractMap | remove | Object |
| AbstractMap | containsKey | Object |
| AbstractMap | containsValue | Object |
| AbstractMap | equals | Object |
@@ -179,17 +147,6 @@ methodWithDuplicate
| Collection | retainAll | Collection> |
| Collection | toArray | IntFunction |
| Collection | toArray | T[] |
-| Collection | add | Runnable |
-| Collection | addAll | Collection extends Runnable> |
-| Collection | contains | Object |
-| Collection | containsAll | Collection> |
-| Collection | equals | Object |
-| Collection | remove | Object |
-| Collection | removeAll | Collection> |
-| Collection | removeIf | Predicate super Runnable> |
-| Collection | retainAll | Collection> |
-| Collection | toArray | IntFunction |
-| Collection | toArray | T[] |
| Collection | add | String |
| Collection | addAll | Collection extends String> |
| Collection | contains | Object |
@@ -332,37 +289,36 @@ methodWithDuplicate
| Map | replace | K |
| Map | replace | V |
| Map | replaceAll | BiFunction super K,? super V,? extends V> |
-| Map> | compute | BiFunction super Identity,? super Entry>,? extends Entry>> |
-| Map> | compute | Identity |
-| Map> | computeIfAbsent | Function super Identity,? extends Entry>> |
-| Map> | computeIfAbsent | Identity |
-| Map> | computeIfPresent | BiFunction super Identity,? super Entry>,? extends Entry>> |
-| Map> | computeIfPresent | Identity |
-| Map> | containsKey | Object |
-| Map> | containsValue | Object |
-| Map> | copyOf | Map extends K,? extends V> |
-| Map> | entry | K |
-| Map> | entry | V |
-| Map> | equals | Object |
-| Map> | forEach | BiConsumer super Identity,? super Entry>> |
-| Map> | get | Object |
-| Map> | getOrDefault | Entry> |
-| Map> | getOrDefault | Object |
-| Map> | merge | BiFunction super Entry>,? super Entry>,? extends Entry>> |
-| Map> | merge | Entry> |
-| Map> | merge | Identity |
-| Map> | of | K |
-| Map> | of | V |
-| Map> | ofEntries | Entry extends K,? extends V>[] |
-| Map> | put | Entry> |
-| Map> | put | Identity |
-| Map> | putAll | Map extends Identity,? extends Entry>> |
-| Map> | putIfAbsent | Entry> |
-| Map> | putIfAbsent | Identity |
-| Map> | remove | Object |
-| Map> | replace | Entry> |
-| Map> | replace | Identity |
-| Map> | replaceAll | BiFunction super Identity,? super Entry>,? extends Entry>> |
+| Map | compute | BiFunction super Identity,? super Object,? extends Object> |
+| Map | compute | Identity |
+| Map | computeIfAbsent | Function super Identity,? extends Object> |
+| Map | computeIfAbsent | Identity |
+| Map | computeIfPresent | BiFunction super Identity,? super Object,? extends Object> |
+| Map | computeIfPresent | Identity |
+| Map | containsKey | Object |
+| Map | containsValue | Object |
+| Map | copyOf | Map extends K,? extends V> |
+| Map | entry | K |
+| Map | entry | V |
+| Map | equals | Object |
+| Map | forEach | BiConsumer super Identity,? super Object> |
+| Map | get | Object |
+| Map | getOrDefault | Object |
+| Map | merge | BiFunction super Object,? super Object,? extends Object> |
+| Map | merge | Identity |
+| Map | merge | Object |
+| Map | of | K |
+| Map | of | V |
+| Map | ofEntries | Entry extends K,? extends V>[] |
+| Map | put | Identity |
+| Map | put | Object |
+| Map | putAll | Map extends Identity,? extends Object> |
+| Map | putIfAbsent | Identity |
+| Map | putIfAbsent | Object |
+| Map | remove | Object |
+| Map | replace | Identity |
+| Map | replace | Object |
+| Map | replaceAll | BiFunction super Identity,? super Object,? extends Object> |
| Map | compute | BiFunction super K,? super V,? extends V> |
| Map | compute | K |
| Map | computeIfAbsent | Function super K,? extends V> |
diff --git a/java/ql/test-kotlin1/library-tests/reflection/reflection.expected b/java/ql/test-kotlin1/library-tests/reflection/reflection.expected
index 7ce456cdcbb..3bc2f9ce67d 100644
--- a/java/ql/test-kotlin1/library-tests/reflection/reflection.expected
+++ b/java/ql/test-kotlin1/library-tests/reflection/reflection.expected
@@ -289,6 +289,7 @@ compGenerated
| file:///LongProgression.class:0:0:0:0 | spliterator | Forwarder for a Kotlin class inheriting an interface default method |
| file:///LongRange.class:0:0:0:0 | forEach | Forwarder for a Kotlin class inheriting an interface default method |
| file:///LongRange.class:0:0:0:0 | spliterator | Forwarder for a Kotlin class inheriting an interface default method |
+| file:///String.class:0:0:0:0 | getChars | Forwarder for a Kotlin class inheriting an interface default method |
| file:///String.class:0:0:0:0 | isEmpty | Forwarder for a Kotlin class inheriting an interface default method |
| reflection.kt:7:49:7:54 | new Function2(...) { ... } | The class around a local function, a lambda, or a function reference |
| reflection.kt:10:38:10:42 | new KProperty1(...) { ... } | The class around a local function, a lambda, or a function reference |
diff --git a/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected b/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected
index 03e86e2d2a1..2495c1fc157 100644
--- a/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected
+++ b/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected
@@ -16,30 +16,6 @@ methodWithDuplicate
| AbstractCollection | removeAll | Collection> |
| AbstractCollection | retainAll | Collection> |
| AbstractCollection | toArray | T[] |
-| AbstractCollection> | add | Entry |
-| AbstractCollection> | addAll | Collection extends Entry> |
-| AbstractCollection> | contains | Object |
-| AbstractCollection> | containsAll | Collection> |
-| AbstractCollection> | remove | Object |
-| AbstractCollection> | removeAll | Collection> |
-| AbstractCollection> | retainAll | Collection> |
-| AbstractCollection> | toArray | T[] |
-| AbstractCollection | add | K |
-| AbstractCollection | addAll | Collection extends K> |
-| AbstractCollection | contains | Object |
-| AbstractCollection | containsAll | Collection> |
-| AbstractCollection | remove | Object |
-| AbstractCollection | removeAll | Collection> |
-| AbstractCollection | retainAll | Collection> |
-| AbstractCollection | toArray | T[] |
-| AbstractCollection | add | Runnable |
-| AbstractCollection | addAll | Collection extends Runnable> |
-| AbstractCollection | contains | Object |
-| AbstractCollection | containsAll | Collection> |
-| AbstractCollection | remove | Object |
-| AbstractCollection | removeAll | Collection> |
-| AbstractCollection | retainAll | Collection> |
-| AbstractCollection | toArray | T[] |
| AbstractCollection | add | String |
| AbstractCollection | addAll | Collection extends String> |
| AbstractCollection | contains | Object |
@@ -56,14 +32,6 @@ methodWithDuplicate
| AbstractCollection | removeAll | Collection> |
| AbstractCollection | retainAll | Collection> |
| AbstractCollection | toArray | T[] |
-| AbstractCollection | add | V |
-| AbstractCollection | addAll | Collection extends V> |
-| AbstractCollection | contains | Object |
-| AbstractCollection | containsAll | Collection> |
-| AbstractCollection | remove | Object |
-| AbstractCollection | removeAll | Collection> |
-| AbstractCollection | retainAll | Collection> |
-| AbstractCollection | toArray | T[] |
| AbstractList | add | E |
| AbstractList | add | int |
| AbstractList | addAll | Collection extends E> |
@@ -103,14 +71,14 @@ methodWithDuplicate
| AbstractMap | put | V |
| AbstractMap | putAll | Map extends K,? extends V> |
| AbstractMap | remove | Object |
-| AbstractMap> | containsKey | Object |
-| AbstractMap> | containsValue | Object |
-| AbstractMap> | equals | Object |
-| AbstractMap> | get | Object |
-| AbstractMap> | put | Entry> |
-| AbstractMap> | put | Identity |
-| AbstractMap> | putAll | Map extends Identity,? extends Entry>> |
-| AbstractMap> | remove | Object |
+| AbstractMap | containsKey | Object |
+| AbstractMap | containsValue | Object |
+| AbstractMap | equals | Object |
+| AbstractMap | get | Object |
+| AbstractMap | put | Identity |
+| AbstractMap | put | Object |
+| AbstractMap | putAll | Map extends Identity,? extends Object> |
+| AbstractMap | remove | Object |
| AbstractMap | containsKey | Object |
| AbstractMap | containsValue | Object |
| AbstractMap | equals | Object |
@@ -176,16 +144,6 @@ methodWithDuplicate
| Collection | retainAll | Collection> |
| Collection | toArray | IntFunction |
| Collection | toArray | T[] |
-| Collection | add | Runnable |
-| Collection | addAll | Collection extends Runnable> |
-| Collection | contains | Object |
-| Collection | containsAll | Collection> |
-| Collection | remove | Object |
-| Collection | removeAll | Collection> |
-| Collection | removeIf | Predicate super Runnable> |
-| Collection | retainAll | Collection> |
-| Collection | toArray | IntFunction |
-| Collection | toArray | T[] |
| Collection | add | String |
| Collection